http://www.psdevwiki.com/ps4/api.php?action=feedcontributions&user=162.199.155.139&feedformat=atom PS4 Developer wiki - User contributions [en] 2024-03-29T05:17:38Z User contributions MediaWiki 1.39.6 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=287173 PS2 Classics Emulator Compatibility List 2022-12-01T13:20:06Z <p>162.199.155.139: /* N */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator freezes after PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || {{notavailable}} || ? || --vu1=jit-sync allows game to boot past PS2 logo (known in Japan as &quot;''Tsukiyo ni Saraba&quot; [ツキヨニサラバ]'').<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{playable}} || ? || Works perfectly with Star Ocean emu &amp; Jak 3 v2.<br /> |-<br /> | 7 Sins || {{playable}} || ? || ? || <br /> |-<br /> | FCEUmm PS2 (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} ||<br /> |-<br /> | GameShark 2: Video Game Enhancer (Homebrew) || {{notavailable}} || {{unplayable}} || {{notavailable}} || Il gioco va in crash dopo il logo del BIOS PS2.<br /> |-<br /> | Gran Turismo 2000 (PlayStation Festival 2000 [Taikenban]) || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Karat Pro Action Replay: Best Price Soku Kouryaku PS2-you Vol. 2&lt;br&gt;&lt;small&gt;KARAT プロアクションリプレイ BEST PRICE! 速攻略 [PS2用] Vol.2)&lt;/small&gt; || {{notavailable}} || {{notavailable}} || {{unplayable}} || Il gioco lancia un errore di pagina non gestito dopo l'introduzione del BIOS PS2. Ho provato tutte le configurazioni. Ancora totalmente ingiocabile. Tuttavia, viene visualizzato nella versione GBA di Pro Action Replay con emulatore GBA (mGBA) sulla tua console Old2DS, quindi abbastanza.<br /> |-<br /> | Karat PS2-you Pro Action Replay 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Il gioco lancia un errore di pagina non gestito dopo l'introduzione del BIOS PS2. Ho provato tutte le configurazioni. Ancora totalmente ingiocabile. Tuttavia, viene visualizzato nella versione GBA di Pro Action Replay con emulatore GBA (mGBA) sulla tua console Old2DS, quindi abbastanza.<br /> |-<br /> | &lt;abbr title=&quot;See ''KRTCDX2'' http://redump.org/disc/51205/&quot;&gt;Karat PS PS2-you Pro Action Replay CDX2&lt;/abbr&gt;&lt;br&gt;&lt;small&gt;KARAT PS/PS2用 プロアクションリプレイ CDX2&lt;/small&gt; || {{notavailable}} || {{notavailable}} || {{unplayable}} || Il gioco lancia un errore di pagina non gestito dopo l'introduzione del BIOS PS2. Ho provato tutte le configurazioni. Ancora totalmente ingiocabile. Tuttavia, viene visualizzato nella versione GBA di Pro Action Replay con emulatore GBA (mGBA) sulla tua console Old2DS, quindi abbastanza.<br /> |-<br /> | POPStarter (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu fails to load past title screen.&lt;/span&gt;<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || {{unplayable}} || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J Version how are unable to reach the Title screen.&lt;/span&gt;<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Lightning || ? || ? || {{playable}} || Works with both several Emulators. Memory card saved files only with Rogue Emulator. SLES-51503 tested on PS4 FW 6.xx.<br /> |-<br /> | Activision Anthology || {{playable}} || {{playable}} || ? || works. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator runs very slow.&lt;/span&gt;<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Adventure of Tokyo Disney Sea || ? || ? || {{playable}} || Works.<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{playable}} || ? || Game locks up on the users first serve. '''Update: emu used=fatal fury battle archives vol2 to make it playable.'''<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details. With Jak, the game works very well on Original PS4.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || {{playable}} || {{playable}} || {{notavailable}} || Config Available. Full Fix. Config will say what emu to use.<br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark || ? || ? || {{playable}} || Fully works. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator doesn't load past Atari logo.&lt;/span&gt;<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || {{unplayable}} || No noticeable issues, plays great. Saving and Loading works. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version hangs when trying to check the memory card with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Altered Beast || {{playable}}|| ? || ? || Works with King of Fighters 98 emu. <br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || works.<br /> |-<br /> | American Idol (Pop Idol) || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Angelique Étoile || ? || ? || {{minorissues}} || Il gioco si carica bene. Piccoli problemi audio.<br /> |-<br /> | Angelique Trois || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || Has Broken audio in Emus other than Rogue v1 but otherwise working perfectly<br /> |-<br /> | Ape Escape: Pumped &amp; Primed || {{notavailable}} || {{minorissues}} || ? || Config Available [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Ape_Escape:_Pumped_.26_Primed] - fixes game speed, graphic corruption, no sound effects play. <br /> |-<br /> | Aqua Aqua || ? || {{playable}} || ? || <br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Arctic Thunder || ? || {{majorissues}} || {{notavailable}} || Game starts up fine. Many upon many graphical issues. Main menu, on screen displays, and levels do not look as intended. Audio when tested is ok, &lt;span style=&quot;background:#FFAA00&quot;&gt;HOWEVER the graphical issues make the game very difficult to play.&lt;/span&gt;<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{minorissues}} || {{minorissues}} || ? || Glitchy pause screen. That's all. Game FULLY playable. KOF98 emu works perfectly. Jakv2 emu freezes when the game starting up. <br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.Accessing the arena will crash the game, so will certain missions including the last few.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues. &lt;span style=&quot;color:white; background:#FF1000&gt;The game crashed after the 3DO Logo with Jakv2 emulator.&lt;/span&gt;<br /> |-<br /> | Army Men: RTS || ? || {{playable}} || ? || Works Perfectly. Use psychonauts v2 emu. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Army Men: Sarge's Heroes 2 || {{playable}} || {{playable}} || ? || Works. Config Available.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Rogue emulator, the screen goes black after you reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{playable}} || {{minorissues}} || {{playable}} || Everything is perfect on JakEMU V2, the game looks great and there are no slowdowns or glitches. Just remap accelerate to triggers or the car would have accelerating issues. US version with minor texture errors on menus and some tracks<br /> |-<br /> | Avatar - The Last Airbender || {{playable}} || {{playable}} || ? || Freezes at loading screen after starting a new game, Use This [[Talk:PS2_Classics_Emulator_Compatibility_List#Avatar_The_last_airbender|Config]]<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Backyard Wrestling : Don't Try This At Home || ? || {{Unplayable}} || ? || Freezes after Ps2 load screen<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{minorissues}} || {{minorissues}} || {{notavailable}} || Remaster is available natively on PS4. Converted PS2 version runs with some graphical glitches and occasional slowdown with many enemies and water effects on screen. Emu used = eternal ring v2 or KOF2000<br /> |-<br /> | Baldur's Gate : Dark Alliance II || {{playable}} || {{playable}}|| {{notavailable}} || Converted PS2 version runs with some graphical glitches and occasional slowdown with many enemies and water effects on screen. '''Emu used = eternal ring v2 or KOF2000. Config =[https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Baldur.27s_Gate:_Dark_Alliance_II]<br /> |-<br /> | Baroque || ? || {{playable}} || ? || Config Available<br /> |-<br /> | Batman - Rise of Sin || {{unplayable}} || {{unplayable}} || ? || gets stuck on the screen, Made With Same engine as Rayman 3, Which is also facing a similar issue, Config for prototype build: [[Talk:PS2_Classics_Emulator_Compatibility_List#Batman_-_Rise_of_Sin_Tzu|Config]]<br /> |-<br /> | Batman - Vengeance || {{minorissues}} || {{minorissues}} || ? || '''Config = psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-122#post-319710'''<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets. Before you can load the title screen, the game freezes with KOF98 Emulator.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||{{unplayable}}|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts, and japanese version still not working on both Rogue and Jak Emulators as well.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{playable}} || ? ||Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners, use [[Talk:PS2 Classics Emulator Compatibility List#Battle Engine Aquila|config]].<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || Works perfectly with Jak v2 emu.<br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{Playable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'') '''Update: Emu used=parappa v1. Use Config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-172#post-337644'''<br /> |-<br /> | Bee The Movie Game || ? || ? || {{notavailable}} ||<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | BEN 10: ALIEN FORCE || ? || {{playable}} || ? || Excellent and runs just like it does on PS2. Use jak v2 emu. Jakv2 emu works very well.<br /> |-<br /> | Ben 10 Alien Force: Vilgax Attacks || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game starts and launches perfectly into the main menu, but then immediately crashes when trying to play a new game on the first level, although the textures and everything was looking nice... maybe needs a custom config. PS2 Classics GUI used.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? || PAL version runs perfectly, no issues noticed. Used PS2 Classics GUI for conversion (Default emu).<br /> |-<br /> | Ben 10 Ultimate Alien: Cosmic Destruction || ? || ? || {{notavailable}} || <br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{minorissues}} || Has English patch. Game might crash if bombs subweapons hits too many enemies on-screen.<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Big Mutha Truckers || {{majorissues}} || {{majorissues}} || ? || Constrant video 'bounce', everything seems to judder up and down 1-2px a time. Happens on menu and during gameplay.<br /> |-<br /> | Big Mutha Truckers 2 || {{unplayable}} || {{majorissues}} || ? || USA region works indefinitely. Game freezes as soon as starting campaign gameplay. Menus etc seem to work fine. Europe region runs, but doesn't seem to work.<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{playable}} || ? || Freezes at the start of first level fixed with config here<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blitz - The League || ? || {{unplayable}} || ? || Crashes after you pick the arena<br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{playable}} || ? || Full fix Available @PSX-Place<br /> |-<br /> | BloodRayne || ? || {{playable}} || ? || Works perfectly with the ADK emu.<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bomber Man Land 2 || ? || ? || {{playable}} ||<br /> |-<br /> | Bouncer, The || ? || {{playable}} || {{playable}} || NTSC-U, NTSC-J tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Britney's Dance Beat || ? || {{playable}} || ? || Game plays perfectly fine no issues at all.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{minorissues}} || {{minorissues}} || ? || '''Rogue emu used. Use Config = www.psx-place.com/attachments/sles-52584_config-rar.36695/'''<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{minorissues}} || {{minorissues}} || ? || Game crashes at first but next time onwards runs perfectly in full speed. Little pink/blue line appears left side of the screen but it won't bother gameplay. Used Rogue Emu while compiling. (Tested by xamtra on FW 9.00). '''Update: Rogue emu used. Use config = www.psx-place.com/attachments/sles-53507_config-rar.36715/'''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 || {{playable}} || {{available}} || {{available}} || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{majorissues}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog. '''Update: Config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-143#post-323147'''<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog.<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || {{available}} || {{playable}} || {{notavailable}} || No known issues (NTSC U/C version).<br /> |-<br /> | Cars: Mater-National Championship || {{playable}} || ? || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Cartoon Network Racing || ? || {{minorissues}} || ? || Boots, infinite loading loop when starting a race. Tested using JakV2 and RougueV1 emu. '''Update: Use config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-74#post-284581'''<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || {{available}} || Lots of graphics issues with stretched polygons appearing across the screen when the camera is near walls. In PCSX2 fix is no clamping for vu0/1 and cop2, but it won't help on PS4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || Works perfectly with Jakv2.<br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen is almost completely black. It is very hard to see whats going on.&lt;/span&gt;<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Chaos Legion || ? || {{playable}} || ? || No known issues works perfectly fine.<br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} || High Language Barrier.<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Champions: Return to Arms || ? || {{majorissues}} || ? || Working with Rouge V1 but has mayjor graphical glitches. Otherwise stable FPS<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || {{minorissues}} || {{playable}} || ? || Does not work with JAK emulator. Works well with rogue emulator. Very minor graphic glitch on the bottom of the screen when Alyssa is on panic mode.<br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues. Used Jak v2 (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_53158 Crashes after ps2 logo&lt;br&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable.<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Use Rogue v1 emu. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door - Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 3 || {{minorissues}} || {{playable}} || {{notavailable}} || No issues noticed on NTSC U/C version. Menu and loading screens flicker on PAL version.<br /> |-<br /> | Colin McRae Rally 04 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_51523 Crashes on game loading screen&lt;br&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect.<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issues with squad nothing that really affects gameplay, audio stutters here and there. Use PS2 FPKG v0.6 go to emulator settings tab and tick fix graphical glitches, do not use uprender 2x2 otherwise it lags. Jak v2 emu used. First stage has a glitch where the controls become inverted after activating the cell switch where movement becomes inverted for both the player and cpu, save the game and reload to fix this.<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed. Works perfectly with Jakv2<br /> |-<br /> | Coraline || {{minorissues}} || ? || ? || Game freezes on first scene. '''Update: Use config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-161#post-334444'''<br /> |-<br /> | Corvette || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{playable}} || {{minorissues}} || {{notavailable}} || Character models are flickering, bad/weird looking, and the map flickers sometimes. Else works fine. '''EDIT:''' Game now works perfectly.<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || {{playable}} || {{minorissues}} || {{unplayable}} || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{playable}} || {{playable}} || ? || Require config to boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Crash_Nitro_Kart|Emulator config]]. Emu used=JakX v2<br /> |- <br /> | Crash of the Titans || {{playable}} || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds. PAL version works perfectly.<br /> |-<br /> | Crash Twinsanity || {{playable}} || {{playable}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches. Use this config [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Crash_Twinsanity]<br /> |-<br /> | Crash Tag Team Racing || {{minorissues}} || {{minorissues}} || ? || Game runs at incredibly slow framerate, use this config [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Crash_Tag_Team_Racing]<br /> |-<br /> | Crazy Taxi || {{available}} || {{playable}} || {{available}} || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || Works perfectly with Jakv2 emu. Uprender 2x2 works.<br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || {{playable}} || ? || No issues noticed. '''Use config for best presentation = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-144#post-323327'''<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background. High Language Barrier. With Jakv1 emu, the game crashed after the PS2 bios intro.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 6thMix DDRMAX || ? || {{unplayable}} || ? || Boots fine, but on the song selection screen, the X and Up/Down directional inputs fail to register, making song selection and difficulty change impossible.<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution DDR Festival || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS. Rogue Emu crashes Console.<br /> |-<br /> | Dance Dance Revolution Extreme || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme 2 || ? || {{unplayable}} || ? || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Party Collection || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution SuperNOVA || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution SuperNOVA 2 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dance Dance Revolution X2 || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{playable}} || ? || Require config file [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283079 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] JakX emu used.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{minorissues}} || {{unplayable}} || NTSC - Shadow Model Is Glitchy. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before starts.&lt;/span&gt;<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Def Jam - Vendetta || {{playable}} || {{playable}} || ? || Some graphical issues with stages and character models fixed by adding --vu-xgkick-delay=0.58 as a config<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms, because used '''edgesmooth''' upscale in '''PS2-FPKG_v0.6'''.<br /> ''Edited:'' broblems disappears if you set '''Upscale''' value on '''none''' or '''gpu''' in '''PS2-FPKG_v0.6'''.&lt;br&gt;<br /> If you want '''Force 60hz PAL mode''' in the game and '''force bilinear filtering''', write in the config:<br /> --gs-force-bilinear=1<br /> --force-pal-60hz=1<br /> May be useful for other games too =)<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry || {{available}} || {{unplayable}} || {{unplayable}} || When you start the game in new game appears black screen (NTSC U/C and NTSC J versions). PS4 version available.<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering. There is a black bar at the bottom of the screen - doesn't affect gameplay at all.<br /> |-<br /> | Di Gi Charat Fantasy Excellent (Di Gi Charat Fantasy Nyo) || {{notavailable}} || {{notavailable}} || {{playable}} || High Language Barrier. Tries to check the memory card.<br /> |-<br /> | Digimon Rumble Arena 2 || {{playable}} || {{playable}} || {{playable}} || Use --fpu-no-clamping=1 to fix menu screen. &lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{playable}} || {{playable}} || ? || both versions stuck after ps2 logo, This Config Fixes the issue [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Digimon_World_4]<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || {{playable}} || ? || The game works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || {{playable}} || ? || JAKv2 with config fixes missing textures, vertices, and characters<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || {{unplayable}} || Low frame rate. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs fine but ingame skips completely heavily with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || {{available}} || {{playable}} || {{available}} || No issues noticed (NTSC U/C version).<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 (Collector's Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Game freeze randomly during combat.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || {{playable}} || Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches[https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{majorissues}} || {{majorissues}} || {{majorissues}} || Tested with Jak v2 emulator, still random freezes like budokai 3, it seems like if u only play the map &quot; Hyperbolic Time Chamber &quot; u dont get any freeze, so I think it has something to do with the maps, because u cant get kicked out of this map like in others.<br /> |-<br /> | Dragon Ball Z: Sagas || {{notavailable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{playable}} || {{playable}} || ? || Config @PSX-Place. Works fine<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches. With GBA Emulator (mGBA 3DS), it does work perfect for me on O2DS console so enough.<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv1 emulator, the game won´t boot after the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{playable}} || ? || use Config [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Dreamworks:_Shrek_the_third]<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not seem to reset after you complete the final Mission.&lt;/span&gt; &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version still loads perfect but Atari logo, and loading screen skips very heavily, and has glitches than US and PAL versions. GTA 3 v1 Emulator stops to the Atari logo due to few beggining.&lt;/span&gt;<br /> |-<br /> | Driver - Parallel Lines (AKA. Driver 4 - Parallel Lines in Japan by UbiSoft) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:#FF1000;&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dual Hearts || ? || {{playable}} || ? || Works perfectly with emu GTA 3 v1<br /> |-<br /> | Duel Masters || ? || {{playable}} || ? || Runs fine in Jak v2<br /> |-<br /> | Dukes of Hazzard (The): Return of the General Lee || ? || {{unplayable}} || ? || Main menu and gameplay does not render and runs at about one frame per second<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |-<br /> | Dynasty warriors 3 Extreme legends || {{playable}} || ? || ? || runs perfect with jakv2<br /> |-<br /> | Dynasty warriors 4 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 || {{minorissues}} || {{minorissues}} || ? || flickering on menu screen only<br /> |-<br /> | Dynasty warriors 5 Extreme legends || {{minorissues}} || {{minorissues}} || ? || flickering on menu screen only<br /> |-<br /> | Dynasty warriors 5 Empires || {{minorissues}} || {{minorissues}} || ? || Constant flickering in battle, without GFC Enchancement Enabled, and Screen Freezes instantly upon combat with GFX Enhancements (Render upscaling/smoothing), Game Works Using Kof2000 Emu but the flickering is yet to be resolved<br /> |-<br /> | Dynasty warriors 6 || ? || {{minorissues}} || ? || flickering<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | ESPN-NBA2K5 || ? || {{unplayable}} || ? || crashes error CE-34878-0. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || {{playable}} || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])'' Usa Undub works great with Rogue v2 emu.<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 used. Don't use uprender <br /> 2x2 otherwise it causes crashes.<br /> |-<br /> | Enthusia: Professional Racing || {{minorissues}} || {{playable}} || ? || No issues noticed. PAL version screen constantly bouncing up and down on menu and during gameplay. Gameplay itself is fine so putting as minor issue. Might be tolerable to some.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent. Most likely it is --vu1=jit-sync <br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{playable}} || ? || To boot past PS2 logo, and fix severe graphical issues, use config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Eternal_Poison|[1]]]<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues. High Language Barrier.<br /> |-<br /> | Everblue 2 || {{playable}} || {{playable}} || ? || To fix geometry/terrain pop-in at edges of screen, use config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Everblue_2|[1]]]. Note: SLES config work also for SLUS version of game.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues. Jak v2 emu used.<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues. Use Bully v2 to fix desynced sounds.<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Extreme-G 3 || {{available}} || {{available}} || {{notavailable}} |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise. The game boots with jakv2 emulator.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 2001 || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | F1 2002 || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | F1 Career Challenge || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | F1 Championship Season 2000 || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | F1 Racing Championship || {{notavailable}} || {{available}} || {{available}} ||<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{playable}} || {{playable}} || ? || config @psx-place<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || JakV2 gives a black screen after the first cutscene. Really bad slowdown, graphics appear to render perfectly. Requires RogueV1<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || {{minorissues}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan] Game very few times freezes when picking up items or going into Finder mode, very bad on last boss.<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan] UNDUB causes crashes.<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak v2 emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan] UNDUB USA version works fine.<br /> |-<br /> | Fate/Unlimited Codes || ? || ? || {{playable}} || Seemingly perfect using Jak emu<br /> |-<br /> | FIFA 06 &lt;br&gt;&lt;small&gt;''FIFA Soccer 06''&lt;/small&gt; || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | FIFA 07 || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | FIFA 08 &lt;br&gt;&lt;small&gt;''FIFA Soccer 08''&lt;/small&gt; || {{available}} || {{minorissues}} || {{available}} || plays really good usa version minor sound issues<br /> |-<br /> | FIFA 09 &lt;br&gt;&lt;small&gt;''FIFA Soccer 09''&lt;/small&gt; || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | FIFA 10 &lt;br&gt;&lt;small&gt;''FIFA Soccer 10''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | FIFA 11 &lt;br&gt;&lt;small&gt;''FIFA Soccer 11''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | FIFA 12 || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | FIFA 13 || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | FIFA 14 || {{available}} || {{available}} || {{notavailable}} || PS4 version available.<br /> |-<br /> | FIFA 2001 &lt;br&gt;&lt;small&gt;''FIFA 2001: Major League Soccer''&lt;/small&gt; &lt;br&gt;&lt;small&gt;''FIFA 2001: World Championship''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | FIFA Football 2002 || {{majorissues}} || {{available}} || {{available}} || Loads up fine, players missing, changed kits etc no frame issues (PAL Version).<br /> |-<br /> | FIFA Football 2003 &lt;br&gt;&lt;small&gt;''FIFA Soccer 2003''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | FIFA Football 2004 &lt;br&gt;&lt;small&gt;''FIFA Soccer 2004''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | FIFA Football 2005 &lt;br&gt;&lt;small&gt;''FIFA Soccer 2005''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | FIFA Street || {{playable}} || {{playable}} || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || {{minorissues}} || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fighter Maker 2 || {{notavailable}} || {{playable}} || {{playable}} || Works with no issues with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;Game immediately crashes on boot-up with Rogue emu.&lt;/span&gt;<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{minorissues}} || ? || sometimes gives errors when finishing a match.<br /> |-<br /> | Final Fantasy X || {{available}} || {{playable}} || {{available}} || No issues noticed (NTSC U/C).<br /> |-<br /> | Final Fantasy XI || {{notavailable}} || {{available}} || {{available}} ||<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in PAL and NTSC U/C regions, plays fine from JPN although the English patched version require additional steps to boot [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-47#post-240636]).<br /> |-<br /> | Final Fantasy X-2 || {{available}} || {{playable}} || {{available}} || No issues noticed (NTSC U/C version).<br /> |-<br /> | Final Fight: Streetwise || {{majorissues}} || {{majorissues}} || ? || PAL &amp; NTSC: Huge FPS drop during introducing characters and exploring city, needs a fix.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | Flame of Recca: Final Burning (Rekka no Honō: FINAL BURNING)&lt;br&gt;&lt;small&gt;Anime Battle Rekka no Honō: FINAL BURNING (アニメバトル 烈火の炎 FINAL BURNING)&lt;/small&gt; || {{notavailable}} || {{notavailable}} || {{minorissues}} || Il gioco funziona perfettamente. La musica non viene riprodotta. Ho provato tutte le configurazioni. Nella versione GBA di &quot;Rekka no Honoo - THE GAME&quot; Con l'emulatore GBA (mGBA), sì, offre una velocità migliore e un audio molto buono e funziona per me su una console Old2DS.<br /> |-<br /> | FlatOut || {{playable}} || {{playable}} || ? || Config Available<br /> |-<br /> | FlatOut 2|| {{playable}} || {{playable}} || ? || config available @PSX-Place<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Formula One 04 || {{available}} || {{notavailable}} || {{available}} ||<br /> |-<br /> | Formula One 05 || {{available}} || {{notavailable}} || {{available}} ||<br /> |-<br /> | Formula One 06 || {{playable}} || {{notavailable}} || {{available}} || Work at full speed, without any issues.<br /> |-<br /> | Formula One 2001 || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | Formula One 2002 || {{available}} || {{notavailable}} || {{available}} ||<br /> |-<br /> | Formula One 2003 || {{available}} || {{notavailable}} || {{available}} ||<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || SLES_51467 Crashes after PS2 logo.&lt;br&gt;SLUS_20658 Works with no issues.<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |- <br /> | Fullmetal Alchemist 2 Curse of the Crimson Elixir || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Prequel to Broken Angel.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || {{unplayable}} || ? || SLUS-20225 doesn't boot on Jakv2, page faults after intro video on Roguev1<br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{playable}} || ? || Custom Config required to fix missing characters &amp; textures. Check Emulator Configuration for additional details.<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Doesn't work with Jak emu. Rogue v2 and Bully emulators fixes the floor textures. Pretty much flawless.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{playable}} || ? || Config Available ''(where?)''<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || {{playable}} || {{unplayable}} || ? || PAL Version works perfectly with the GTA3 v1 emu<br /> |-<br /> | The Getaway || {{playable}} || {{minorissues}} || {{available}} || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || {{available}} ||Fix for crash in the Chapter 5 (PAL version) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{unplayable}} || {{playable}} || ? || NTSC Version Has fix Available<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (all versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{minorissues}} || ? || ? || European version can run the game, but loading screens have a weird overlay on top. Tested on PS4 9.00 Jak V2<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{playable}} || {{playable}} || Requires vu1=jit-sync .<br /> |- <br /> | Grandia III || ? || {{unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Gran Turismo Concept (2002 Tokyo-Geneva) || {{minorissues}} || {{notavailable}} || {{available}} || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || {{available}} || Ghost cars are solid and not transparent on Rogue V1 emu. Major graphical issues occur on Special Stage Route 11 and the B-6 License Test on Rogue V1 emu which can only be fixed by restarting the game however they can still be completed regardless.<br /> |-<br /> | Gran Turismo 4 Prologue|| {{minorissues}} || {{notavailable}} || {{available}} || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || {{available}} || Minor graphical glitches but good FPS. For NTSC U/C go for 480p resolution, it's great. The NTSC J version is mentioned lower on this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || {{available}} || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || {{available}} || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || {{available}} || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || {{available}} || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || {{playable}} || {{playable}} || {{available}} || Lags on 9.00 Tested NTSC U/C / Fix Available<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{playable}} || {{playable}} || {{available}} || Lags on 9.00 Tested PAL / Fix Available<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in PCSX2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the game hangs at the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || {{unplayable}} || the game stop at black screen after the loading of the title screen ends. NTSC-J Version does not boot.<br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. --vu1=jit-sync is PS2emu equivalent.<br /> |-<br /> | Gungrave || {{minorissues}} || {{minorissues}} ||? || Works fine, config available for graphical glitches. (If anyone can fix glitches please add fix)<br /> |-<br /> | Gungrave Overdose|| ? || {{playable}} ||? || Works fine used kinetica v2 emu to fix missing title screen and other graphical glitches<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life || {{playable}} || {{minorissues}} || {{notavailable}} || Frame drops into the 20s, might be due to emulation (NTSC U/C version). PAL version (with a few compatibility tweaks) runs perfectly. Use Kof2000 emu<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || {{Unplayable}} || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Hello Kitty: Roller Rescue || ? || ? || {{playable}} || <br /> |-<br /> | Headhunter || {{minorissues}} || {{playable}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. use emu Jakx v2 for NTSC version<br /> |-<br /> | Headhunter Redemption || {{playable}} || {{minorissues}} || ? || Works fine. NTSC version works fine but seems to have a shadow double image issue.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions. '''HD Remaster available on PS4 natively.'''<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu. '''HD Remaster available on PS4 natively.'''<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star<br /> |-<br /> | Hot Wheels: World Race || ? || {{playable}} || ? || '''Use config = psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-149#post-330059''' <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{minorissues}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. '''UPDATE: Use config = psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-164#post-335547'''<br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped. With Jakv2 emu, the game throws an unhandled pagefault error screen.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{playable}} || {{playable}} || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons can be fixed using config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Hunter_the_Reckoning_Wayward|[1]]].<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ice Age 2: Meltdown || ? || {{playable}} || ? || Use config to fix hang on logo. [[Talk:PS2_Classics_Emulator_Compatibility_List#Ice_Age_2_Meltdown]] <br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || {{playable}} ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{playable}} || ? || Config @PSX-Place<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{playable}} || ? || fully works<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Initial D Special Stage || ? || {{unplayable}} || ? || Game crashes after the PS2. This behavior also happens on PS2 slims/later models so cant be fixed with a patch<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || {{playable}} || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || {{playable}} || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue. NTSC-J works perfect. No problems with lip movement. There is occasional flickering, but from my memory, it's not a bug but a feature, it had it on PS2 too.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues. PLayed on 9.00 Firmware &amp; works well.<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{playable}} || {{notavailable}} || {{notavailable}} || the game hangs on the loading screen. Use RECVX Emu with this [[Talk:PS2_Classics_Emulator_Compatibility_List#Jackie_Chan_Adventures|Config]] (NTSC-U/C Version got cancelled).<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background:#ff1000; color:white;&quot; | PAL Custom Image doesn't boot past the PS2 logo<br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || {{unplayable}} || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in. Similar issue to Driver 3 JP except it hangs after logo with PAL.<br /> |-<br /> | James Bond 007: Agent Under Fire || {{majorissues}} || {{majorissues}} || {{available}} || '''--vu1=jit-sync''' allows game to boot past PS2 logo for NTSC-PAL versions. '''Use Config = /www. psx-place. com /threads/research-ps2-emulator-configuration-on-ps4.16131/page-159#post-333160. Emu used=Psychonauts v2.''' Heavy slowdownds and sound crackling in FPS levels with complex geometry (uses problematic ID Tech 3 engine). Driving levels work good with above config with some minor slowdown when effects like fire, steam, big explosions on screen.<br /> |-<br /> | James Bond 007: Everything or Nothing || {{unplayable}} || {{majorissues}} || {{available}} || Low framerate. PAL version doesn't work.<br /> |-<br /> | James Bond 007: From Russia with Love || {{minorissues}} || {{minorissues}} || {{unplayable}} || '''Use config = www. psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-137#post-321452. Emu used=eternal ring v2.''' &lt;span style=&quot;color:white; background:#FF1000&gt;JAP ver runs fullspeed but freezes a lot and has gfx glitches. Did not carry on.&lt;/span&gt;<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{majorissues}} || {{available}} || Completed prelude/tutorial doesn't load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section. &lt;span style=&quot;color:white; background:#FF1000&gt;Major graphics corruption in FPS levels.&lt;/span&gt;<br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || {{available}} || Both emus Rogue v1 and Jak v2 work.<br /> |-<br /> | Jaws Unleashed || ? || {{playable}} || ? || Use config file to fix freeze at loading screen before main menu. [[Talk:PS2_Classics_Emulator_Compatibility_List#Jaws_Unleashed|[1]]]<br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Juiced || {{available}} || {{minorissues}} || {{available}} || '''Config = www. psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-109#post-316562. Emu used = JakX v2.'''<br /> |-<br /> | Juiced 2: Hot Import Nights || {{available}} || {{available}} || {{available}} || <br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |-<br /> | Jurassic park: Operation genesis || ? || {{unplayable}} || ? || my english is a little short, have a several graphics issues, I play in PC with PCSX2 emulator and with software emulation and mipmaping activated and run fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kaena || ? || ? || ? || <br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kamen Rider 555 || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |- <br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Kappa no Kai-kata: How to Breed Kappas || ? || ? || {{playable}} || Very High Language Barrier. Couldn´t figure out if i try to check the memory card.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{playable}} || ? || Items sticked to the Katamari are invisible, but this is fixed with Jakv2 and config settings, --vu0-di-bits=0 --vu1-di-bits=0 --iop-cycle-scalar=2.0<br /> |-<br /> | Kelly Slater's Pro Surfer (Kelly Slater's Pro Surfer 2003) || {{playable}} || ? || {{unplayable}} || Works fine. Bully emu used. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J emulator runs fine but ingame skips very heavily.&lt;/span&gt;<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Kengo 3 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Works great Story Mode and VS Mode, some enemies heads appear as black or white in extra modes but nothing game-breaking. <br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{playable}} || {{notavailable}} || PAL works with Bully emu. NTSC works perfectly with Psychonauts v2 emu<br /> |-<br /> | Killzone || {{unplayable}} || {{unplayable}} || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || {{playable}} || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | King of Colloseum 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor glitches appear in the ring mat.<br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue emulator runs perfect but ingame skips too heavily when trying to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match || {{notavailable}} || {{notavailable}} || ? || PS4 version released 9/2/2021 (d/m/y) seems to not be PS2 version despite using PS2 game ID in title_id.<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{playable}} || Use Lua, and Txt config from that post to fix all issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-45#post-238835 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] '''Jak v2 emulator used'''<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || {{unplayable}} || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version works but ingame skips very heavily when trying to access the memory card.&lt;/span&gt; <br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before you can try to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv1 emu, the screen goes black before you can try to check the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || {{available}} || {{available}} || PAL version plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || Use config file from that post to fix gameplay issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-77#post-285124 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Kingdom Hearts: Re:Chain of Memories || ? || ? || ? || <br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{minorissues}} || {{minorissues}} || {{unplayable}} || Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]''). &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs well but ingame skips too heavily.&lt;/span&gt;<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2001 || {{unplayable}} || {{unplayable}} || {{unplayable}} || Random freezes during gameplay even with multiple patches to get pass loading screens. Very bad port to PS2. <br /> |-<br /> | Knockout Kings 2002 || {{available}} || {{playable}} || {{available}} || Playable config = www. psx-place. com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-101#post-311477<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || {{minorissues}} || {{playable}} || {{minorissues}} || Use [[Talk:PS2_Classics_Emulator_Compatibility_List#Kuon|Config]] to fix freezing. Game additionally require fix for Sugoroku minigame, that is only availble for NTSC-U version Fix Also included below. Pal/Ntsc-J still have that minor bug.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Le Avventure di Lupin III - Lupin la Morte, Zenigata l'Amore || {{unplayable}} || ? || ? || Black Screen when you try and load on PS2.<br /> |-<br /> | Le Avventure di &quot;Lupin III&quot; - Il tesoro del Re Stregone || {{unplayable}} || ? || ? || All cut scenes are perfect, however when in game some assets don't load.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay), Made with the openspace Engine. Which is causing a similar issue in Rayman 3<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lego Batman: The Videogame || {{minorissues}} || {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable. PAL version has graphical issues with the game looking like a bad attempt at raytracing and weird reflections all over the place.<br /> |-<br /> | Lego Racers 2 || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Leisure Suit Larry: Magna Cum Laude || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Le Mans 24 Hours (2000) || {{playable}} || {{playable}} || {{unplayable}} || No known issues. &lt;span style=&quot;color:white; background:red&gt;Japan version runs horribly slow, but in-game skips heavily.&lt;/span&gt;<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || {{majorissues}} || {{majorissues}} || ? || Playable, but game does not reset after death. EU version has less than US version.<br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || {{playable}} || ? || No known issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;With KOF98 Emulator, this game doesn't reset after pressing start.&lt;/span&gt;<br /> |-<br /> | Looney Tunes: Sheep Raider || ? || {{playable}} || ? || No known issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;&lt;/span&gt;<br /> |-<br /> | Looney Tunes: Space Race || {{majorissues}} || {{playable}} || ? || Playable, with minor graphic issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;PAL-E has less than US version.&lt;/span&gt; '''Update: Use config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-147#post-328351'''<br /> |-<br /> | Lord of the Rings: Aragorn's Quest, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lord of the Rings: The Fellowship of the Ring, The || {{minorissues}} || {{minorissues}} || {{notavailable}} || Small FPS drops in level with smoke or fog.<br /> |-<br /> | Lord of the Rings: The Third Age || {{minorissues}} || ? || ? || fps slowdowns and audio stutter and horizontal lines appear on screen during gameplay using Jakv2 emu<br /> |-<br /> | Lord of the Rings: The Return of the King, The || {{playable}} || ? || {{unplayable}} || No known issues. NTSC-J version does not work. Jak v2 emu used.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 2002 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Madden NFL 2003 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2004 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2005 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2006 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2007 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2008 || {{playable}} || ? || ? || PAL version is stable.<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{majorissues}} || ? || Game does boot but graphics are dark and broken. Tested with Jak V2. Probably needs a proper patch.<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{playable}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282586 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{minorissues}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282620 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] There are still audio issues, and some framerate issues. <br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{minorissues}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]].Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{playable}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{majorissues}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || {{playable}} || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues. Works perfectly with Jak v2 emu. Uprender 2x2 for a crisp look. (Does not slow down gameplay.)<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues. Jakv2 emu used.<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || {{minorissues}} || {{minorissues}} || {{available}} || PAL and NTSC U/C play fine with no patching needed but Substance VR freezes EE error while trying to save also feels like an earthquake happening during the cutscenes.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || {{unplayable}} || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue/limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging... &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has less than USA/Europe versions.&lt;/span&gt;<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Mercury Meltdown Remix || ? || {{playable}} || ? || Runs flawlessly. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{minorissues}} || ? || ? || cars do not load properly if you enable Try to fix graphics in PS2FPKG V0.6 and sometimes slow fps<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || {{playable}} || {{minorissues}} || ? || No noticeable issues, seems to work perfect.<br /> |-<br /> | Midway Arcade Treasures || ? || {{minorissues}} || ? || Intro FMV and interviews(in History section of some games) run slow with choppy audio, but all games tested run perfectly<br /> |-<br /> | Midway Arcade Treasures 3 || ? || {{unplayable}} || ? || Freezes on startup. Black screen.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Lab || {{unplayable}} || ? || ? || Black screen.<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || {{playable}} || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. Practise mode indicates input working fine on PAL.<br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || {{majorissues}} || {{playable}} || ? || PAL version, bad graphics, very branded - ntcs Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Mortal_Kombat_-_Shaolin_Monks|[1]]]<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | MotoGP 2 || {{?}} || {{?}} || {{?}} ||<br /> |-<br /> | MotoGP 3 || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || {{minorissues}} || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | mr Golf || {{playable}} || ? || ? || <br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Musashi: Samurai Legend (Musashiden II: Blade Master) || {{playable}} || {{playable}} || ? || seems to run fine at native.<br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MVP Baseball 2005 || ? || {{playable}} || ? || No known issues<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || {{playable}} || {{playable}} || {{playable}} || <br /> |-<br /> | Namco Museum - 50th Anniversary || {{playable}} || {{playable}} || {{playable}} || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || {{playable}} || {{playable}} || ? || Didn't notice or encounter any issues. UNDUB doesn't work with multiple emulators.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 emu used. Uprender 2x2 to fix blurry graphics. (Does not slow gameplay speed.)<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu), also tested with NeoGeo+(v2) and no issues.<br /> |-<br /> | Naruto: Ultimate Ninja 3 || {{playable}} || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || {{minorissues}} || Flickering issues.<br /> |-<br /> | NASCAR 06: Total Team Control || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | NASCAR 07 || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | NASCAR 08 || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | NASCAR 09 || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | NASCAR 2001 || {{notavailable}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | NASCAR 2005: Chase for the Cup || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | NASCAR: Dirt to Daytona || {{notavailable}} || {{playable}} || {{notavailable}} || Works great.<br /> |-<br /> | NASCAR Heat 2002 || {{notavailable}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | NASCAR Thunder 2002 || {{notavailable}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | NASCAR Thunder 2003 || {{notavailable}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | NASCAR Thunder 2004 || {{notavailable}} || {{minorissues}} || {{notavailable}} || Very playable but some minor graphical issues and some flickering during gameplay (NTSC U/C version).<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{playable}} || {{unplayable}} || {{available}} || Works Fine using Kinetica emu and associated config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283081 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] <br /> |-<br /> | Need for Speed: Most Wanted || {{majorissues}} || {{majorissues}} || {{majorissues}} || Major reflections glitches with minor sound stuttering.<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || {{playable}} || {{available}} || Broken reflections, stripes around car model (PAL version). no known issues (USA Version FW 9.00)<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || {{available}} || {{available}} || 1 FPS in main menu (PAL version).<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || {{unplayable}} || {{available}} || 1 FPS in main menu (PAL and NTSC U/C).<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || {{available}} || Graphical glitches, but gameplay works (PAL version). NTSC U/C version works with no flaws.<br /> |-<br /> | Need for Speed: Underground 2 || {{playable}} || {{playable}} || {{playable}} || Require config file to fix framerate. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277075 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277174 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Neo Contra || {{available}} || {{playable}} || {{available}} ||<br /> |-<br /> | NeoGeo Battle Coliseum || {{available}} || {{playable}} || {{available}} || Not a single issue of note (NTSC U/C version).<br /> |-<br /> | Neopets: The Darkest Faerie || {{notavailable}} || {{unplayable}} || {{notavailable}} || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Blitz 2003 || ? || {{playable}} || ? || Plays amazingly, Jakv2 used. <br /> |-<br /> | NFL Head Coach || ? || {{minorissues}} || ? || All the menus work great, minus some minor graphical issues. Going onto the field there are some more graphical issues, small amounts of lag, and very noticeable audio lag. Jakv2 used. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? ||<br /> |-<br /> | NHL 04 || ? || {{majorissues}} || ? || NTSC version is playable, saving does not work, there are minor slowdowns and choppy cutscenes on the base PS4. Due to the game not saving, its not possible to complete it. Needs a patch or a save from pcsx2<br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{majorissues}} || {{majorissues}} || ? || PAL AND US version works using kof98 emu, but the game still has major graphical issues ( in main menu and during gameplay) and runs slow. a patch to fix the graphical issues would make the game playable with some minor frame drops<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{playable}} || {{playable}} || {{unplayable}} || Total fix available for NTSC/PAL @PSX-Place forums. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version loads Full speed, but has many glitches than US/EU versions with both KOF98 and Jakv1 emulators.&lt;/span&gt;<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jak emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues. Jakv2 used.<br /> |-<br /> | Odin Sphere || ? || ? || ? ||<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || Has Minor graphical glitch while using celestial brush fixed with this config [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Okami]<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak). UNDUB works great.<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || wont boot with jakv2 use rogue1 or v2. UNDUB works great.<br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen. Rogue v2 works.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || Remaster is available natively on PS4. <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || {{minorissues}} || {{minorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements. Use config from this post to fix most issues in US &amp; JP versions: [https://psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-76#post-285056]<br /> <br /> Ps2-fpkg doesn't seem to work with this game. Tested with PAL and JP english-patched iso and both stuck at the memory card screen.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{playable}} || ? || Working perfectly with the okage v2 emu<br /> |-<br /> | Pac-Man World 2 || {{minorissues}} || {{minorissues}} || {{majorissues}} || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level. &lt;span style=&quot;color:black; background:#FFAA00&gt;JAP has gfx glitches than the US version.&lt;/span&gt;<br /> |-<br /> | Pac-Man World 3 || {{playable}} || {{playable}} || ? || Game is fully working using config [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Pac_Man_World_3] NTSC Version also works but the addresses need to be ported from PAL Version into NTSC<br /> |-<br /> | Pac-Man World Rally || {{unplayable}} || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Power Rangers: Super Legends || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || {{majorissues}} || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || {{majorissues}} || Full speed yet severe graphics corruption and shadow casting issues. NTSC-J works, but with same problems, also time rewinding doesnt work, it starts, but cannot continue for whatever reason. The game is still clearable, I cleared it, and it was kinda fun without the main mechanic, Config [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Prince_of_Persia_-_The_Two_Thrones]<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Pro Evolution Soccer &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 5''&lt;/small&gt; || {{available}} || {{notavailable}} || {{available}} ||<br /> |-<br /> | Pro Evolution Soccer 2 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 6''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | Pro Evolution Soccer 3 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 7''&lt;/small&gt; &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 7 International''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | Pro Evolution Soccer 4 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 8''&lt;/small&gt; &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 8 International''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | Pro Evolution Soccer 5 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 9''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | Pro Evolution Soccer 6 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 10''&lt;/small&gt; &lt;br&gt;&lt;small&gt;''Winning Eleven: Pro Evolution Soccer 2007''&lt;/small&gt; || {{available}} || {{playable}} || {{available}} || No issues detected (NTSC U/C version / Winning Eleven: Pro Evolution Soccer 2007).<br /> |-<br /> | Pro Evolution Soccer 2008 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 2008''&lt;/small&gt; &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 11''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | Pro Evolution Soccer 2009 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 2009''&lt;/small&gt; || {{available}} || {{playable}} || {{unplayable}} || Absolutely fine. No issues noted for the NTSC U/C Version. However, the NTSC J version (World Soccer: Winning Eleven 2009) won't even start.<br /> |-<br /> | Pro Evolution Soccer 2010 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 2010''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | Pro Evolution Soccer 2011 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 2011''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | Pro Evolution Soccer 2012 &lt;br&gt;&lt;small&gt;''World Soccer: Winning Eleven 2012''&lt;/small&gt; || {{available}} || {{available}} || {{available}} ||<br /> |-<br /> | Pro Evolution Soccer 2013 || {{available}} || {{available}} || {{notavailable}} ||<br /> |-<br /> | Pro Evolution Soccer 2014 || {{available}} || {{notavailable}} || {{notavailable}} ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || {{playable}} || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. JAP works fine. Known in Japan as Puyo Puyo Fever. &lt;span style=&quot;color:white; background:#FF1000&gt;KOR98 Emulator you're unable to press start on title screen.&lt;/span&gt;<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. High Language Barrier.<br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake III Revolution || {{playable}} || {{playable}} || ? || '''Use Config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-155#post-331587'''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || {{notavailable}} || {{minorissues}} || ? || Fully playable at full speed with no graphical issues. But Cheats are required to accomplish it. First, use [[Talk:PS2 Classics Emulator Compatibility List#Radiata Stories|Emulator Configuration]]. The game was affected by slowdown and screen tearing if many characters were in the same screen, also shadows weren't correctly displayed. You can use this extensive [ patch by Maori-Jigglypuff] to fix all that, just use &lt;strong&gt;ps2 patch engine&lt;/strong&gt; to patch the ISO (only for SLUS-21262). Lastly hold down triangle and cross before the PS2 logo disappears to enable progressive scan. This eliminates the screen shaking. The game is marked as minor issues because there's a minor glitch that happens after a battle during the results screen: the camera rarely points to the characters during that screen.<br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Rampage: Total Destruction || {{playable}} || ? || ? || EU version works fine. Emu used Jak v2.<br /> |-<br /> | Ratchet &amp; Clank || {{unplayable}} || {{unplayable}} || {{unplayable}} || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{unplayable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20011 does not work &amp; freezes on the level loader (ship sequence).<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after First fmv, May require a patch or a more accurate emulation setting<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) [Ratchet &amp; Clank 4] || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Size Matters (Ratchet &amp; Clank 5) || {{unplayable}} || {{playable}} || {{playable}} || SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M aka Rayman Arena (NTSC)|| {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after starting a new game or loading. main menu screen fmv Crashes game if left without clicking start button. Korean version doesn't boot up after PS2 logo. issue is that VU0 is not running in sync with the EE, in fact, VU0 is running thousands of cycles ahead of EE, ps3 config fixed that with 0x12, but that command is not supported by the ps4's emulator, The closest we got to resolving this issue was setting ee cycle scalar to 5.0 on the fatal fury emulator.<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || {{playable}} || ? || USA version runs fine. &lt;span style=&quot;color:white; background:#FF1000&gt;GTA3 v1 emulator runs very slow.&lt;/span&gt;<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Ready 2 Rumble Boxing: Round 2 || ? || {{playable}} || {{notavailable}} || Works using KOF98/Jak Emulator. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator freeze before starts.&lt;/span&gt;<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? ||<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja End of Honor, The || ? || {{playable}} || {{playable}} || NTSC-J works perfect. '''Update: Config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-102#post-312953'''<br /> |-<br /> | Red Star, The || {{playable}} || {{unplayable}} || ? || PAL: No issues noticed. NTSC-U/C: Crashes at the start of the second stage as Makita, unsure about as Kyuzo but assuming the same. <br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{playable}}||{{playable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen. '''Update: Config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-154#post-331328'''<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || {{playable}} || {{playable}} || Very poor performance. USA version works perfect. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator fails before the game starts.&lt;/span&gt;<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed USA version works fine.<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable}} || {{playable}} || Works Fine. No issues found. &lt;span style=&quot;color:black; background:90ff90&gt;NTSC-J version works well.&lt;/span&gt;<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || {{available}} || {{majorissues}} || {{available}} || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortable (NTSC U/C version). (Game is actually worse on the Jak emulator, it no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Rocky Legends || ? || {{minorissues}} || ? || small graphical error on main menu doesn't affect anything <br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || {{playable}} || {{minorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance. The audio stuttering on FMVs doesn't happen if using Rogue emulator.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | S.L.A.I. Steel Lancer Arena International ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator. Game takes a little to start.<br /> |-<br /> | S.C.A.R Squadra Corse Alfa Romeo || {{playable}} || {{playable}} || ? || Works perfect using jakv2.<br /> |-<br /> | Sakura Taisen: Atsuki Chishio ni || ? || ? || {{unplayable}} || Hangs during one of the first scenes, during transition to map selection.<br /> |-<br /> | Sakura Taisen 3: Paris wa Moeteiru ka || ? || ? || {{minorissues}} || Works fine, map loads and works. Has strange visual bug during battles, where everything is too dark, but becoming normal when the player's cursor is on an enemy. It's quite playable, but I wouldn't call it perfect.<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || {{unplayable}}|| Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. NTSC-J hangs in the same place.<br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Champloo: Sidetracked || ? || {{playable}} || ? || Works perfectly with Jakv2 emu. DUB works flawlessy. Uprender 2x2 with edge smooth, works for a crisp look.<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> | Samurai Warriors || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2|| {{playable}} || {{playable}} || ? || Fully tested with jakv2 emu Without any issues<br /> |-<br /> | Samurai Warriors 2 Extreme legends || {{minorissues}} || {{playable}} || ? || Fully tested USA with jakv2 emu Without any issues<br /> |-<br /> | Samurai Warriors 2 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Western || ? || {{playable}} || ? || Works perfectly with Jakv2 emu.<br /> |-<br /> | SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Saint Seiya: The Hades || {{available}} || {{notavailable}} || {{available}} ||<br /> |-<br /> | Saint Seiya: The Sanctuary || {{available}} || {{notavailable}} || {{available}} ||<br /> |-<br /> | Scaler || {{playable}} || ? || ? || Fully Playable. Has Extremely Minor Graphical glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Scaler | Use this config]]<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || {{playable}} || ? || Fix for distorted audio (PAL). Seems to work for the NTSC-U version as well. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Mystery Mayhem|| ? || {{playable}} || ? || (Massive visual glitches, cinematics are completely fine) '''Update: Use Config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-148#post-329939.''' Link includes configs for all scooby games.<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{playable}} || {{playable}} || ? || Require config file to fix hang at boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Second_Sight|[1]]]<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20: Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22: Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || {{available}} || {{playable}} || {{notavailable}} || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || {{notavailable}} || {{notavailable}} || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || {{notavailable}} || {{notavailable}} || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sega Soccer Slam || {{Unplayable}} || ? || ? || Stops before loading the menu.<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Serious Sam: Next Encounter || {{unplayable}} || {{unplayable}} || {{notavailable}} || Runs fine but freezes on second level. Maybe fixable?<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{playable}} || ? || {{unplayable}} || Works perfectly. Use RECVX emu for full speed gameplay. NTSC-J has lots of strange issues like character model disappearing during the first fight and never appearing again. Marking as unplayable because I think it's hard to play when you can't even see your character.<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{minorissues}} || {{minorissues}} || ? || Both PAL and NTSC versions run fine with JakEMU V2. Minor slowdows in combat on the base ps4<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun Palmer's Pro Snowboarder || {{minorissues}} || {{minorissues}} || {{unplayable}} || Working fine. Minor graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has many glitches than US and PAL versions.&lt;/span&gt;<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{playable}} || ? || Works great with KOF98 emu.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{playable}} || ? || Works great with KOF98 emu.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{minorissues}} || ? || Runs fine with KOF98 emu, only has minor graphical glitches.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga 2 || ? || {{minorissues}} || ? || Runs fine with KOF98 emu, only has minor graphical glitches.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background:#FF1000; color:white;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || {{playable}} || {{minorissues}} || {{playable}} || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable. NTSC-J - aside from minor interlacing(about the same as in PCSX2, to note) in FMVs, works perfect.<br /> On second thought, not so perfect. The menu of dropping a persona when you have full stock and get one from shuffle time is not shown. It works, but you can't see it. Not a critical error, otherwise perfect, cleared from start till end+Episode Aegis.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{playable}} || ? || Tested the USA version, Game working perfectly on jakv2, Only extremely minor graphical glitches, for instance when fusing personas the new persona is transparent, only its eyes and weapons appearing, Fixed with Txt config [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#Shin_Megami_Tensei:_Persona_4]<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shining Wind || ? || ? || {{minorissues}} || There's an artifact line on all the 2D arts when the characters change expressions. Otherwise perfect. Cleared the whole game twice, unlocked Zero, watched all the scenes with extra Heart Feelings. It's probably the engine, but I have no idea how to fix it. Apparently if you don't stretch the screen to 16:9 there's no bug.<br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || {{Playable}} || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || {{minorissues}} || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899.Pal version sometimes freezes at first loadingscreen<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Road Rage || {{minorissues}} || {{minorissues}} || ? || EU &amp; US Ver = Playable with Rogue Emu, but has audio and graphics distortion<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{minorissues}} || {{minorissues}} || {{notavailable}} || NTSC version Playable, but has audio distortion, PAL version has some shadow glitches and some FPS drops but is playable from start to finish<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims 2 Pets || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims 2: Castaway || ? || {{playable}} || ? || works.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{unplayable}} || Black screen. Didn't have this game work on PS4 Pro?<br /> |-<br /> | Simple 2000 Series Vol. 105 - The Maid-fuku to Kikanjuu || ? || ? || {{minorissues}} || The game works almost perfectly, but the sniper rifle scope doesn't work properly in stage 3. Getting an S rank there on PS4 is near impossible, and that's required to get all the weapons, thus all the costumes. On PCSX2 easy-peasy.<br /> |-<br /> | Simple 2000 Series Vol. 113: The Tairyou Jigoku || ? || ? || {{unplayable}} || Black screen after playstation 2 logo.<br /> |-<br /> | Simple 2000 Series Vol. 114 - The Onna Okappichi Torimonochou - Oharu-chan GoGoGo! || ? || ? || {{unplayable}} || The game boots, first screen is normal, some menus don't show up, first room of the stage is ok, second is blackscreen, even though the gameplay continues. I don't think that can be called playable.<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | Sitting ducks || ? || {{playable}} || ? || Works.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{playable}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)'' [[Talk:PS2_Classics_Emulator_Compatibility_List#Sly_Cooper_1.2C_2.2C_3|Config]]<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? ||<br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now<br /> |-<br /> | Smuggler's Run 2 || ? || {{unplayable}} || ? || Doesn't work, just crashes. Rogue Emulator hangs on a Black screen.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No sounds while shooting some guns on th dlps version.<br /> |-<br /> | Sonic Gems Collection || {{minorissues}} || {{notavailable}} || {{available}} || Some graphical glitches when running Sonic R, but otherwise it works fine with the jak emu.<br /> |-<br /> | Sonic Heroes || {{minorissues}} || {{minorissues}} || {{available}} || &lt;s&gt;The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken&lt;/s&gt; (I don't know who wrote this but it's not true) The cannon works as intended and I've since beaten all of the story modes. Other than a few texture glitches, you can beat the game).<br /> |-<br /> | Sonic Mega Collection Plus || {{available}} || {{playable}} || {{available}} || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too. (NTSC U/C version)<br /> |-<br /> | Sonic Riders || {{available}} || {{minorissues}} || {{available}} || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect. Image with Widescreen Patch does not boot on either emulator.<br /> |-<br /> | Sonic Riders: Zero Gravity || {{available}} || {{playable}} || {{notavailable}} || For the small amount of time I played, it was fine (NTSC U/C).<br /> |-<br /> | Sonic Unleashed || {{Playable}} || {{available}} || {{available}} ||<br /> |-<br /> | SoulCalibur II || {{minorissues}} || {{minorissues}} || {{minorissues}} || Minor graphical issues, but playable. Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_2|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-60#post-280195 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | SoulCalibur III || {{majorissues}} || {{majorissues}} || {{majorissues}} || Require config file. Crashes on certain stages. Story mode and Chronicles of The sword unplayable because of this. JakX V2 used. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_3|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-61#post-280864 [2]]<br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu. game doesn't start when using JakV2.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || {{unplayable}} || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult. &lt;span style=&quot;color:white; background:#FF1000&gt;JP version will freeze after ps2 logo.&lt;/span&gt;<br /> |-<br /> | Spider-Man 3 || {{unplayable}} || {{unplayable}} || ? || Freezes on loading screen after the first level. Require config file to fix framerate, and graphical issues. [[Talk:PS2_Classics_Emulator_Compatibility_List#Spider-Man_3|[1]]]<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{unplayable}} || {{unplayable}} || ? || Game is running smooth; however, there is a bug with the combat system which makes it impossible to progress the game.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on the water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Atlantis Squarepantis || ? || {{unplayable}} || ? || Freezes on title screen. Jakv2 Used.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. It may be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || {{playable}} || ? || Some graphical glitches &lt;span style=&quot;background:#90FF90&quot;&gt;USA Version with Jakv2 seems to run great with no graphical glitches&lt;/span&gt;<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || {{available}} || {{majorissues}} || ? || Runs amazing But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and more confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{unplayable}} || {{unplayable}} || ? || Game crashes at the copyright screen.<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || {{minorissues}} || {{unplayable}} || ? || Freezes after PS2 logo. EU version runs With Framerate issues fixed With [[Talk:PS2_Classics_Emulator_Compatibility_List#Spyro:_Enter_The_Dragonfly|Config]] But Otherwise Fully Playable (EU version tested on PS4 Slim 9.00).<br /> |-<br /> | Spyro Dawn of The Dragon || {{playable}} || {{unplayable}} || ? || Game will not boot Past XMB Splash Screen on NTSC Version. EU Version works flawlessly Used new PS2 Classics GUI With default Emulator selected.<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || {{playable}} || {{unplayable}} || ? || NTSC: Game constantly stalls for several seconds during play. / PAL: use Racer Revenge emu. Tested with PS4 Pro 9.00<br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{playable}} || {{unplayable}} || ? || PAL Version runs perfectly with Redfaction emu, add PS3 config file to fix graphic, tested with PS4 Pro 9.00<br /> |-<br /> | Steambot Chronicles || ? || {{minorissues}} || ? || Minor performance issues. Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-278758 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Street Hoops || ? || {{playable}} || ? || runs with no problems<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{majorissues}} || {{majorissues}} || {{unplayable}} || NTSC version works using KOF98/JAK/ROGUE emulators. This game hangs a bit in the main menu. Also it working fine with GTA3 Emulator, as well with Europe. &lt;span style=&quot;color:white; background:#FF1000&gt;JAP version doesn't boot past PS2 logo.&lt;/span&gt;<br /> |-<br /> | Stuntman 2: Ignition || {{unplayable}} || {{unplayable}} || ? || Doesn't work, just crashes. Jakv1 emulator shows a black screen, through you can hear the sound.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{notavailable}} || {{minorissues}} || ? || Check [[Talk:PS2 Classics Emulator Compatibility List#Suikoden_III|Emulator Configuration]] (PAL Version saw a &quot;PS2 Classics&quot; Version only available for the PlayStation 3 [EP0101-NPED00294_00-GSUIKODEN3000001]).<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{playable}} || ? || (Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.) '''Update: Works good with Primal Emu'''<br /> |-<br /> | Summoner 2 || ? || {{minorissues}} || ? || (Game loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.) '''Update: Use Config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-103#post-314180'''<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || {{playable}} || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball Adventure || ? || {{minorissues}} || ? || Apart from some minute graphic artifacts here and there (there are light reflections that look like arcs on the walls), the game plays totally fine with no disruptions whatsoever. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | Super Robot Wars Z || {{notavailable}} || {{notavailable}} || {{Playable}} || No issues detected. <br /> |-<br /> | Surf's up || {{available}} || {{notavailable}} || {{notavailable}} ||<br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{unplayable}} || ? || ? || Crashes at first stage, Pal Mode Has less graphical glitches than NTSC, Might possibly become playable with config<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Sword of Samurai || {{minorissues}} || ? || ? || extreme flickering but playable <br /> |-<br /> | Syberia || {{playable}} || {{notavailable}} || {{notavailable}} || '''Use Confing = psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-140#post-322419'''<br /> |-<br /> | Syberia II || {{playable}} || {{notavailable}} || {{notavailable}} || '''Use Confing = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-140#post-322429'''<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || {{available}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | Taito Legends 2 || {{available}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || {{available}} || {{notavailable}} || <br /> |-<br /> | Tales Of Destiny Directors Cut || {{notavailable}} || {{notavailable}} || {{playable}} || Config: '''--fpu-accurate-mul-fast=1''' &amp; '''--ee-cycle-scalar=1.74''' to fix all slowdowns. '''--gs-use-clut-merge=1, --gs-kernel-cl=&quot;clutmerge&quot;,--gs-kernel-cl-up=&quot;clutmerge2x2&quot;''' for graphics. '''--fpu-accurate-range=0x1C7B50,0x1C7C00''' to fix control after exiting the menu. Game not fully tested, save often.<br /> '''Emu used=Jakv2.''' Fully playable with right config mentioned above plus '''--force-frame-blend=1''' #fix for shaking menu ui and lua file for game-breaking bug for getting stuck in the room before Irene in Helraios. [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Updated config]]<br /> |-<br /> | Tales of Destiny 2 || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Tales of Legendia || {{notavailable}} || {{unplayable}} || {{available}} || Framerate 5-10 FPS (NTSC U/C)<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; '''--gs-use-clut-merge=1, --gs-kernel-cl=&quot;clutmerge&quot;,--gs-kernel-cl-up=&quot;clutmerge2x2&quot;''' which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || {{available}} || Use custom config to fix some texture glitching/disappearing. A strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub work okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || {{notavailable}} || Black screen after first level loading screen. PAL Version has wrong textures but works. With jakv2 emu, the screen goes black after the Infogrames logo.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || {{available}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || {{playable}} || {{playable}} || {{notavailable}} || Works great with Jakv2 emu.<br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || {{available}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | Teenage Mutant Ninja Turtles: Mutant Melee || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emu.<br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || {{available}} || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{available}} || {{available}} || {{available}} || Enable Progressive Scan in the Options menu for much clearer image quality. Game works Well using Rogue v1. Minor graphics corruption on certain stages, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires the Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; NTSC U/C versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || {{available}} || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || {{available}} || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3: Rise Of The Machines || {{notavailable}} || {{minorissues}} || {{notavailable}} || Minor graphical issues. All allies and enemy are invisible. Probably from textures not rendering correctly.<br /> |-<br /> | Terminator 3: The Redemption || {{available}} || {{playable}} || {{available}} || No issues of note (NTSC U/C version).<br /> |-<br /> | Test Drive (AKA TD Overdrive: The Brotherhood of Speed) || {{minorissues}} || {{minorissues}} || {{notavailable}} || '''Use config = www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-150#post-330392'''<br /> |-<br /> | Test Drive: Eve of Destruction (Driven to Destruction) || ? || {{minorissues}} || {{notavailable}} || Slight frame drop during heavy particle effects, otherwise fine.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu, choppy sound and video.<br /> |-<br /> | Tetris Worlds || {{playable}} || {{playable}} || {{majorissues}} || NTSC-U and PAL versions are working fine. NTSC-J version has been glitched skyboxs and other things.<br /> |-<br /> | SuperLite 2000 Vol. 13: Tetris: Kiwame Michi || {{notavailable}} || {{notavailable}} || {{unplayable}} || Gives an unhandled pagefault error message after PS2 BIOS logo.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | The Godfather || {{playable}} || {{available}} || {{available}} || No known issues (PAL version).<br /> |-<br /> | The Italian Job || {{available}} || {{playable}} || {{notavailable}} || '''Use config = psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-148#post-330050'''<br /> |-<br /> | The Simpsons: Road Rage || {{available}} || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Suffering || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#90FF90&quot;&gt;Sometimes an inverted '''white player model appears''' on the screen, it only appears on the '''first level''', game '''playable''' good enough!&lt;/span&gt;<br /> I used [https://www.psx-place.com/threads/release-ps2-fpkg-0-6-by-jabu-new-tool-to-convert-ps2-games-for-ps4.30350 PS2-FPKG_v0.6] converter with the [https://github.com/Zarh/ManaGunZ/tree/master/pkgfiles/USRDIR/sys/CONFIG config] for PS3 game, it's already present in converter. When converting, check the box '''Auto-Add PS3 Config''', and '''uncheck''' the rest, then choose '''Destroy All Humans V2 emu''', just put [https://mega.nz/folder/tFgjFApL#F8XIfrGKQwsL9ebgm1FLzw this] '''Destroy All Humans V2 emu''' folder into '''PS2-FPKG_v0.6\emus\''' and just select it in the program. Use ''The suffering 2'' [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator configuration]] inside ''config-emu-ps4.txt''.<br /> |-<br /> | The Terminator: Dawn of Fate || {{notavailable}} || {{minorissues}} || {{notavailable}} || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | The Thing || {{playable}} || {{playable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested (PAL and NTSC U/C versions).<br /> &lt;span style=&quot;background:#90FF90&quot;&gt;'''''Update:''' Use config = '''--vu0-const-prop=0 #to get past the loading freeze''', '''--vu1-const-prop=0 #to get past the loading freeze #emu used=jakx v2'''. Widescreen and 60fps codes can be added. www. psx-place. com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-138#post-321894''&lt;/span&gt;<br /> |-<br /> | Thrillville || {{available}} || {{unplayable}} || {{notavailable}} || Slight errors with bloom and extremely low FPS. No texture issues however (NTSC U/C version).<br /> |-<br /> | Thrillville: Off the Rails || {{available}} || {{unplayable}} || {{notavailable}} || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured (NTSC U/C version).<br /> |-<br /> | Thunder Force VI || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Tiger Woods PGA Tour 2004 || {{available}} || {{minorissues}} || {{notavailable}} || Character models have texture issues. Golf ball goes invisble at times (NTSC U/C version). (Possible draw distance problem?)<br /> |-<br /> | Tiger Woods PGA Tour 2005 || {{available}} || {{minorissues}} || {{notavailable}} || Character models have texture issues. Golf ball goes invisible when hit making it hard to see where it is (NTSC U/C version).<br /> |-<br /> | Time Crisis 3 || {{available}} || {{unplayable}} || {{available}} || Freezes at the Namco screen (NTSC U/C version).<br /> |-<br /> | TimeSplitters || {{minorissues}} || {{minorissues}} || {{notavailable}} || Black screen after PS2 logo screen can be fixed with '''—vu1=jit-sync''', '''Emu used = JakXv2'''. Tested with Jak v2 emu, some graphical glitches in the intro, in-game it works fine, but with code for no interlacing the game would be cleaner.<br /> |-<br /> | TimeSplitters 2 || {{playable}} || {{playable}} || ? || '''Full Config = psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-177#post-343027'''<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || {{notavailable}} || Cant play due to low framerate (PAL and (probably) NTSC U/C versions)<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || {{available}} || {{minorissues}} || {{notavailable}} || Some graphical glitches (NTSC U/C version).<br /> |-<br /> | TNA iMPACT! || {{playable}} || {{available}} || {{notavailable}} || PAL version works.<br /> |-<br /> | Tokimeki Memorial 3 ~Yakusoku no Ano Basho de~ || {{notavailable}}|| {{notavailable}} || {{playable}} || Works well with no particular graphical glitches(unlike on PS3)<br /> |-<br /> | TOCA Race Driver&lt;br&gt;&lt;small&gt;DTM Race Driver&lt;br&gt;Pro Race Driver&lt;br&gt;V8 Supercars: Race Driver&lt;/small&gt; || {{unplayable}} || {{available}} || {{notavailable}} || Access to menu, freeze when loading a race (PAL version).<br /> |-<br /> | TOCA Race Driver 2: The Ultimate Racing Simulator&lt;br&gt;&lt;small&gt;DTM Race Driver 2&lt;br&gt;V8 Supercars Australia 2&lt;/small&gt; || {{unplayable}} || {{available}} || {{available}} || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3&lt;br&gt;&lt;small&gt;DTM Race Driver 3&lt;br&gt;V8 Supercars: Race Driver 3&lt;/small&gt; || {{unplayable}} || {{available}} || {{available}} || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokobot Plus - Mysteries of the Karakuri || {{playable}} || ? || ? || Game working.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tokyo Xtreme Racer 3 || ? || {{playable}} || ? || Perfect, the game can be finished from start to finish with 0 issues. Just remap the accelerate to triggers since the same issue as in Auto Moddelista<br /> |-<br /> | Tokyo Xtreme Racer: Drift 2 || ? || {{unplayable}} || ? || Menu works almost perfectly with only pop-ups like tooltips and confirmation info text not showing up. In game presents a black screen with only the UI loaded in.<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || {{playable}} || Only works with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before the game starts in this either Japan version.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || {{unplayable}} || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || {{unplayable}} || ? || Black screen after first cutscene, can't go in-menu.<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || {{majorissues}} || Minor frame rate issues on first level, else works fine. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not reset after pressing start on the titlescreen in JAP version.&lt;/span&gt;<br /> |-<br /> | Tom Clancy's Ghost Recon 2 || {{unplayable}} || ? || ? || Tested with Roguev2 emu. Campaign causes EE related crash. <br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Pro Skater 4 || {{Playable}} || {{Playable}} || {{Unplayable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 4|Emulator Configuration]] for additional details. JAP is totally broken (black screen).<br /> |-<br /> | Tony Hawk's Underground || {{playable}} || {{playable}} || ? || Freezes on first loading screen. Use Redfaction v1 EMU <br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen. Pcsx2 fixed that with turning off MTVU, ps4's equivalent is --vu1=jit-sync but it isn't fixing it for some reason<br /> |-<br /> | Tony Hawk's Proving Ground || {{playable}} || {{playable}} || ? || Freezes at first intro splash screen. Use Redfaction v1 EMU<br /> |-<br /> | Tony Hawk's Project 8|| {{playable}} || {{playable}} || ? || Freezes at first loading screen. Use Redfaction v1 EMU<br /> |-<br /> | Torrente 3 - The Protector || {{playable}} || ? || ? || Works fine, no noticeable issues.<br /> |-<br /> | Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> | Total Immersion Racing ||{{unplayable}}||?||?|| Stuck at loading screen<br /> |-<br /> | Tourist Trophy || {{minorissues}} || {{minorissues}} || {{available}} || Small minor graphical glitches when driving on the road. Only the arcade mode is available. Unable to pass driver's licenses because of ground textures not rendering. If you import a save with completed driver's licenses, you can play Tourist Trophy Mode.<br /> |-<br /> | Transformers || {{available}} || {{unplayable}} || {{notavailable}} || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || {{available}} || {{available}} ||<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || {{available}} || {{notavailable}} || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || {{minorissues}} || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:#FF1000;&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;. There were some FPS drops when I tested on PS4 slim. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Ultraman Fighting Evolution 3 || ? || ? || {{playable}} || Works perfectly with PS2 Classic GUI tool.<br /> |-<br /> | Unlimited Saga || {{playable}} || ? || ? || Works perfectly with Jakv2 emu.<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator still goes into the Infogrames logo then freezes as tested by unknown.&lt;/span&gt;<br /> |-<br /> |Under the skin || ? || ? || ? ||<br /> |-<br /> | Urban Chaos: Riot Response || {{majorissues}} || {{majorissues}} || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{playable}} || {{playable}} || {{playable}} || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Urban_Reign|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-279431 [2&lt;nowiki&gt;]&lt;/nowiki&gt;] Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | V-Rally III (V-Rally 3) || {{playable}} || {{playable}} || {{playable}} || working. If you'll test the game on a PS4 Pro FW 5.05. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator will freeze after Atari logo.&lt;/span&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{majorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area and certain area. No significant issue.<br /> Japanese voice dub version will random freeze, no solutions.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || Jakv2 emu works perfectly.<br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches. FPS drops can be fixed using config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Van_Helsing|[1]]]<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{playable}} || {{notavailable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Rogue v1 &amp; Rogue v2. Widescreen patch causes graphics to not render. Only use uprender 2x2 to fix issue but causes enemies deaths to lag the game for a few seconds. Use RECVX emu if you can with uprender 2x2 for widescreen and full speed.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || Use RECVX emu for best experience. Fixes sound effects not playing. Jak emus causes no sound effects from sword to play. <br /> |-<br /> | We Love Katamari || {{playable}} || {{minorissues}} || ? || Static 2D image in training level 2. PAL works with RECVX emulator, Katmari's image is doubled when held by the king after completing a level (Graphical Glitch [USA])<br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{playable}} || ? || missing background level assets, use [[Talk:PS2 Classics Emulator Compatibility List#WinBack: Covert Operations|config]].<br /> |-<br /> | Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || Perfect emulation. &lt;span style=&quot;color:white; background:#FFAA00&gt;With Jakv2 emu, the game does not reset during gameplay.&lt;/span&gt;<br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> | World Rally Championship || {{available}} || {{available}} || {{available}} || <br /> |-<br /> | Worms Forts: Under Siege || {{playable}} || {{available}} || ? || <br /> |-<br /> | Worms 3D || {{playable}} || ? || ? || <br /> |-<br /> | Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | WRC 3 || {{available}} || {{notavailable}} || {{available}} ||<br /> |-<br /> | WRC 4 || {{available}} || {{notavailable}} || {{available}} ||<br /> |-<br /> | WRC II Extreme || {{available}} || {{notavailable}} || {{available}} || <br /> |-<br /> | WRC: Rally Evolved || {{available}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? ||<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE All Stars || ? || {{playable}} || ? || Works flawlessly with no problems<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || {{minorissues}} || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown vs. Raw 2007 || ? || {{playable}} || ? ||<br /> |-<br /> | WWE SmackDown vs. Raw 2008 || ? || {{minorissues}} || ? || Some graphical issues on the main menu and the arena selecttion screen but main gameplay Works flawlessly<br /> |-<br /> | WWE SmackDown vs. Raw 2009 || {{playable}} || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2010 || ? || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || {{minorissues}} || {{minorissues}} || ? || Require config file. JakX v2 emu used. Game still lags, around 2/3 speed. [[Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends|[1]]]<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || {{minorissues}} || {{minorissues}} || ? || Require config file. JakXv2 emu used. Game still lags, around 2/3 speed. [[https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends_II|[1]]]<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#FFFF90&quot;&gt;If you use the PS4 PS2 Classics GUI by The Darkprogramer it will run fine - no graphical glitches.&lt;/span&gt; very bad graphical glitches when tested on JakV2 &amp; RogueV1.<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad)<br /> -Game has a few cutscenes that play out of sync with audio and a few that the camera does not follow the characters in cutscenes correctly. <br /> -Trying to enter the AGWS shop in Kukai will result in being stuck in a wall HOWEVER you are not required to enter to complete the game (though you'll never be able to attain Shions best abilities)<br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows. Game much like the first has issues with some cutscenes playing out of sync with the camera. But ftmp works great!<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows. Some cutscenes go down into single digit framerate and some attacks from bosses(tho to a FAR lesser extent) do as well, but otherwise works great!<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || {{playable}} || Works fine with Jak v2 emulator.<br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys V: Kefin, Lost Kingdom of Sand || ? || ? || {{playable}} || No issues of note.<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{playable}} || {{playable}} || ? || Stuck on Black Screen after PS2 logo, --vu1=jit-sync Fixes That issue, RECVX EMU<br /> |-<br /> | Yu-Gi-Oh! Duelists of The Roses || {{unplayable}}|| {{playable}} || {{available}} || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when the main map loads, US Version Fully Working using Jakv2 emu<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{playable}} || ? || ? || Seems to work fine, played around an hour on PS4 FW 9.00.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{playable}} || ? || Works perfectly with Jakv2. Went through the entire storymide and unlocked all characters<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case. (this game was also published for PS4 as &quot;ZONE OF THE ENDERS THE 2nd RUNNER : M∀RS&quot;)<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Emulation&diff=284778 PS2 Emulation 2022-04-07T13:00:35Z <p>162.199.155.139: /* XXXX-YYYYY_config.lua */</p> <hr /> <div><br /> = Description =<br /> <br /> PlayStation 2 emulation on PS4 is handled slightly differently comparing to PS3. Each PS2 game PS4 package file (.pkg) include emulator itself, so there is no included emulator in PS4 firmware. Although PS4 firmware have some PS2 emulator specific features, like functions sceLncUtilIsPs2Emu, sceShellCoreUtilGetImposeMenuFlagForPs2Emu, sceSystemServiceAddLocalProcessForPs2Emu, or sceSystemServiceShowImposeMenuForPs2Emu.<br /> Fact that emulator is now included in game pkg, is slightly complicating providing compatibility list. As emulators include some per title patches, and different default settings. Currently most used emulators came from Rogue Galaxy, and Jak games. Next difference is that BIOS in external file is included in .pkg, anyway it is exactly the same BIOS used in ps2_netemu. Another important difference is the lack of encryption mechanism for PS2 game disc image file, this time it is just a plain ISO file, but emulator still support LIMG sector that allow use non-2048 sector size discs. Memory card is also decrypted, but emulator check crc of some of it regions to ensure that fresh card is not modified. PS2 Emulator supports LUA scripting by &quot;Lua Bridge&quot;, is powerful interface that provide many possibilities to improve compatibility.<br /> This is first time when sony need really care about floats in their emulator. Comparing to PS3 CPU, x86-64 is doing worse job in mimic PS2 FPU, and VU floats calculation behavior. This is resolved by clamping, accurate math used per memory offset, and/or converting floats to double precision. Emulator use openCL for GS, and probably other components.<br /> <br /> =Memory Mapping=<br /> <br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: left;&quot;<br /> ! Name !! From !! To<br /> |-<br /> |EE Flat Memory (4gb) || 0x0000008000000000 || 0x0000008100000000<br /> |-<br /> |IOP Flat Memory (4gb) || 0x0000009000000000 || 0x0000009100000000<br /> |-<br /> |R59 Binary Cache || 0x0000000914B10000 || 0x0000000916B10000<br /> |-<br /> |R30 Binary Cache || 0x0000000916B14000 || 0x0000000917314000<br /> |-<br /> |jitVU0 || 0x0000000917318000 || 0x0000000917B18000<br /> |-<br /> |jitVU1 || 0x0000000917B1C000 || 0x0000000918B1C000<br /> |-<br /> ! !! Host's EE Memory Map !!<br /> |-<br /> |EE RAM - Kernel || 0x0000008000000000 || 0x0000008000080000<br /> |-<br /> |EE RAM - Debug || 0x0000008000078000 || 0x0000008000080000<br /> |-<br /> |EE RAM - User || 0x0000008000080000 || 0x0000008002000000<br /> |-<br /> |EE Hw Devices || 0x0000008010000000 || 0x0000008010010000<br /> |-<br /> |EE ROM || 0x000000801FC00000 || 0x000000801FFE0000<br /> |-<br /> |EE RAM - Uncached || 0x0000008020080000 || 0x0000008022000000<br /> |-<br /> |EE RAM - UncachedAccel || 0x0000008030100000 || 0x0000008032000000<br /> |-<br /> |EE Scratchpad || 0x0000008070000000 || 0x0000008070004000<br /> |-<br /> |EE Debug || 0x00000080FFFF8000 || 0x0000008100000000<br /> |-<br /> ! !! Host's IOP Memory Map !!<br /> |-<br /> |IOP RAM || 0x0000009000000000 || 0x0000009000200000<br /> |-<br /> |IOP RAM (mirror 1) || 0x0000009000200000 || 0x0000009000400000<br /> |-<br /> |IOP RAM (mirror 2) || 0x0000009000400000 || 0x0000009000600000<br /> |-<br /> |IOP RAM (mirror 3) || 0x0000009000600000 || 0x0000009000800000<br /> |-<br /> |IOP Scratchpad || 0x000000901F800000 || 0x000000901F801000<br /> |-<br /> |IOP HW || 0x000000901F801000 || 0x000000901F810000<br /> |-<br /> |IOP ROM || 0x000000901FC00000 || 0x000000901FFE0000<br /> |-<br /> |}<br /> <br /> =Open CL and Floats=<br /> <br /> PS4 native Floating point supports and OpenCL info, for both CPU, and GPU. Understanding of floating points conversion is very important in emulating PS2.<br /> &lt;br&gt;Below info comes from this gist: https://gist.github.com/masterzorag/06cadbc5fbe7d3375704fc52518f434e#file-gistfile1-md<br /> &lt;br&gt;There you can find more info about PS4 OpenCL.<br /> <br /> ==CPU==<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Info !! Value<br /> |-<br /> | Device Name || CXD90026AG - DG1002FGF84HT<br /> |-<br /> | Device Vendor || AuthenticAMD<br /> |-<br /> | Device Vendor ID || 0x1022<br /> |-<br /> | Device OpenCL C Version || OpenCL C 1.2 pocl<br /> |-<br /> | Device Type || CPU<br /> |-<br /> | Max compute units || 8<br /> |-<br /> | Max work item dimensions || 3<br /> |-<br /> | Max work item sizes || 4096x4096x4096<br /> |-<br /> | Max work group size || 4096<br /> |-<br /> | Preferred work group size multiple || 8<br /> |-<br /> ! Half-precision Floating-point support !! (n/a)<br /> |-<br /> ! Single-precision Floating-point support !! (core)<br /> |-<br /> | Denormals || Yes<br /> |-<br /> | Infinity and NANs || Yes<br /> |-<br /> | Round to nearest || Yes<br /> |-<br /> | Round to zero || Yes<br /> |-<br /> | Round to infinity || Yes<br /> |-<br /> | IEEE754-2008 fused multiply-add || No<br /> |-<br /> | Support is emulated in software || No<br /> |-<br /> | Correctly-rounded divide and sqrt operations|| Yes<br /> |-<br /> ! Double-precision Floating-point support !! (cl_khr_fp64)<br /> |-<br /> | Denormals || Yes<br /> |-<br /> | Infinity and NANs || Yes<br /> |-<br /> | Round to nearest || Yes<br /> |-<br /> | Round to zero || Yes<br /> |-<br /> | Round to infinity || Yes<br /> |-<br /> | IEEE754-2008 fused multiply-add || Yes<br /> |-<br /> | Support is emulated in software || No<br /> |-<br /> ! Execution capabilities !!<br /> |-<br /> | Run OpenCL kernels || Yes<br /> |-<br /> | Run native kernels || Yes<br /> |-<br /> | SPIR versions || 1.2<br /> |-<br /> | Device Extensions || &lt;div align=&quot;left&quot;&gt;&lt;pre&gt; cl_khr_byte_addressable_store<br /> cl_khr_global_int32_base_atomics<br /> cl_khr_global_int32_extended_atomics<br /> cl_khr_local_int32_base_atomics<br /> cl_khr_local_int32_extended_atomics<br /> cl_khr_3d_image_writes <br /> cl_khr_spir<br /> cl_khr_fp64 <br /> cl_khr_int64_base_atomics<br /> cl_khr_int64_extended_atomics &lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |}<br /> <br /> ==GPU==<br /> <br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Info !! Values<br /> |-<br /> |Device Name || AMD LIVERPOOL<br /> |-<br /> |Device Vendor || AMD<br /> |-<br /> |Device Vendor ID || 0x1002<br /> |-<br /> |Device Version || OpenCL 1.1<br /> |-<br /> |Device OpenCL C Version || OpenCL C 1.1<br /> |-<br /> |Device Type || GPU<br /> |-<br /> |Max compute units || 18<br /> |-<br /> |Max work item dimensions || 3<br /> |-<br /> |Max work item sizes || 256x256x256<br /> |-<br /> |Max work group size || 256<br /> |-<br /> |Compiler Available || Yes<br /> |-<br /> |Preferred work group size multiple || 64<br /> |-<br /> !Half-precision Floating-point support !! (cl_khr_fp16)<br /> |-<br /> |Denormals || No<br /> |-<br /> |Infinity and NANs || Yes<br /> |-<br /> |Round to nearest || Yes<br /> |-<br /> |Round to zero || No<br /> |-<br /> |Round to infinity || No<br /> |-<br /> |IEEE754-2008 fused multiply-add || No<br /> |-<br /> |Support is emulated in software || No<br /> |-<br /> !Single-precision Floating-point support !! (core)<br /> |-<br /> |Denormals || No<br /> |-<br /> |Infinity and NANs || Yes<br /> |-<br /> |Round to nearest || Yes<br /> |-<br /> |Round to zero || No<br /> |-<br /> |Round to infinity || No<br /> |-<br /> |IEEE754-2008 fused multiply-add || No<br /> |-<br /> |Support is emulated in software || No<br /> |-<br /> |Correctly-rounded divide and sqrt operations || No<br /> |-<br /> !Double-precision Floating-point support !! (cl_khr_fp64)<br /> |-<br /> |Denormals || Yes<br /> |-<br /> |Infinity and NANs || Yes<br /> |-<br /> |Round to nearest || Yes<br /> |-<br /> |Round to zero || Yes<br /> |-<br /> |Round to infinity || Yes<br /> |-<br /> |IEEE754-2008 fused multiply-add || Yes<br /> |-<br /> |Support is emulated in software || No<br /> |-<br /> !Execution capabilities !!<br /> |-<br /> |Run OpenCL kernels || Yes<br /> |-<br /> |Run native kernels || No<br /> |-<br /> |Device Extensions || &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;cl_khr_byte_addressable_store<br /> cl_khr_byte_addressable_store<br /> cl_khr_global_int32_base_atomics <br /> cl_khr_global_int32_extended_atomics<br /> cl_khr_local_int32_base_atomics<br /> cl_khr_local_int32_extended_atomics<br /> cl_khr_int64_base_atomics<br /> cl_khr_int64_extended_atomics<br /> cl_khr_fp64<br /> cl_khr_fp16&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |}<br /> <br /> = Emulator Configuration =<br /> <br /> == Files ==<br /> <br /> Emulator configuration is probably handled by 4 files:<br /> <br /> * '''config-emu-ps4.txt''' - Stores paths, basic video/audio settings in official packages. But unofficially can be also used for advanced settings for global effect in multi disc .pkg with all commands originally used in cli.conf file. <br /> * '''XXXX-YYYYY_cli.conf''' - Stores per disc advanced settings. GS, VU, EE, IOP, FPU, COP2 emulation settings, are here. Also hacks, and hooks.<br /> * '''XXXX-YYYYY_config.lua''' - Used for per disc advanced scripts. Patching EE/IOP memory, Conditional hooks. <br /> * '''disc-swap-cli.conf''' - Stores info of multi disc games.<br /> <br /> == Commands ==<br /> <br /> === config-emu-ps4.txt commands ===<br /> <br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --gs-uprender || none, 2x2 || Internal resolution uprender || --gs-uprender=2x2<br /> |-<br /> | --gs-upscale || none, gpu, edgesmooth, motionvec || upscaler? || --gs-upscale=EdgeSmooth<br /> |-<br /> | --config-local-lua || || || --config-local-lua=&quot;&quot;<br /> |-<br /> | --load-tooling-lua || || || --load-tooling-lua=0<br /> |-<br /> | --record-audio || || || <br /> |-<br /> | --record-audio-img || || || <br /> |-<br /> | --record-audio-image || || || <br /> |-<br /> | --record-audio-ext || || || <br /> |-<br /> | --max-console-spam || || || <br /> |-<br /> | --path-snaps || dir/folder || || --path-snaps=&quot;/tmp/snapshots&quot;<br /> |-<br /> | --path-recordings || dir/folder || || --path-recordings=&quot;/tmp/recordings&quot;<br /> |-<br /> | --path-audio-images || dir/folder || || <br /> |-<br /> | --path-memcards || dir/folder || ||<br /> |-<br /> | --path-vmc || dir/folder || || --path-vmc=&quot;/tmp/vmc&quot;<br /> |-<br /> | --path-emulog || dir/folder || || --path-emulog=&quot;/tmp/recordings&quot;<br /> |-<br /> | --path-manual || dir/folder || ||<br /> |-<br /> | --path-patches || dir/folder || Path to patches folder || --path-patches=&quot;/app0/patches&quot;<br /> |-<br /> | --path-trophydata || dir/folder || || --path-trophydata=&quot;/app0/trophy_data&quot;<br /> |-<br /> | --path-featuredata || dir/folder || Path to folder with XXXX-YYYYY_features.lua file || --path-featuredata=&quot;/app0/feature_data&quot;<br /> |-<br /> | --path-postproc || dir/folder || Post-processing (shaders?) ||<br /> |-<br /> | --path-toolingscript || dir/folder || || --path-toolingscript=&quot;/app0/patches&quot;<br /> |-<br /> | --snapshot-name || || || <br /> |-<br /> | --snapshot-datafile || || || <br /> |-<br /> | --snapshot-restore || || || <br /> |-<br /> | --snapshot-save || frameId(?) || ||<br /> |-<br /> | --snapshot-mcd-files || || || <br /> |-<br /> | --snapshot-repeat || repeat_count || ||<br /> |-<br /> | --snapshot-modulo || || || <br /> |-<br /> | --ds4-deadzone-adjust || || || <br /> |-<br /> | --ds4-diagonal-adjust || || || <br /> |-<br /> | --host-pad-loses-focus || || || --host-pad-loses-focus=1<br /> |- <br /> | --host-gamepads || || || <br /> |-<br /> | --host-keyboard || slot [0-7] || || --host-keyboard=4<br /> |-<br /> | --host-audio || 1,0,on,off,mono || || --host-audio=1<br /> |-<br /> | --host-audio-latency || msec/float || Audio latency must be between 0.010 and 4.0 || --host-audio-latency=1.5<br /> |-<br /> | --host-window-scale || scale/float || || --host-window-scale=0.5<br /> |-<br /> | --host-window-pos || x,y || ||<br /> |-<br /> | --host-display-mode || normal,full,4:3,16:9 || Set display mode || --host-display-mode=full<br /> |-<br /> | --host-osd || 0,off,minimal,verbose || || --host-osd=0<br /> |-<br /> | --host-vsync || || ||<br /> |-<br /> | --host-trophy-support || || ||<br /> |-<br /> | --rtc-epoch || unix_time (seconds since epoch) || || --rtc-epoch=1523776362<br /> |-<br /> | --framelimiter || || || <br /> |-<br /> | --framelimit-fps || FPS/float || framelimiter || --framelimit-fps=0.8<br /> |-<br /> | --framelimit-scalar || scalar/float || scalar must be between 0.1 and 5.0 || --framelimit-scalar=3.2<br /> |-<br /> | --framelimit-mode || normal,fast,fastest,slow,slower,slowest || || --framelimit-mode=fast<br /> |-<br /> | --audio-stretching || || ||<br /> |-<br /> | --ps2-lang || system || sets language || --ps2-lang=system <br /> |-<br /> | --pad-record || || ||<br /> |-<br /> | --max-disc-num || 1-5 || numbers of discs in package (maximum=5) || --max-disc-num=1<br /> |-<br /> | --ps2-title-id || || sets title-id for patches || --ps2-title-id=SLES-50366<br /> |-<br /> | --cdvd-sector-read-cycles || || Kinetica use 40000, Psychonauts 4000, Red Dead Revolver 5000, Rise of Kasai 31000 || --cdvd-sector-read-cycles=40000<br /> |-<br /> | --boot-disc-id || 1-5 || sets boot disc for multi-disc pkg || --boot-disc-id=0<br /> |-<br /> | --mute-audio ||all,none,main,bgm || || --mute-audio=all<br /> |-<br /> | --mute-streaming-audio || all,none,main,bgm || || --mute-streaming-audio=all<br /> |-<br /> | --mtap1 || always, ByHost || Multitap Switch || --mtap1=always<br /> |-<br /> | --mtap2 || always, ByHost || Multitap Switch || --mtap2=always<br /> |}<br /> <br /> === XXXX-YYYYY_cli.conf commands ===<br /> <br /> Please note that commands listed here work also in config-emu-ps4.txt. Anyway official way to use them is by CLI file. CLI file way is also needed for multi-disc packages.<br /> ====EE/IOP====<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --ee-mem-check-eob || || EE Memory check end of block || <br /> |-<br /> | --ee-cache-breaks-block || || || <br /> |-<br /> | --ee-validate-kernel || || || <br /> |-<br /> | --ee-block-validation || PageProt, PageProtection, Hash, Full || Way of validating that block been modified, and require recompilation. [[https://github.com/PCSX2/pcsx2/blob/4db6b287cda817345f7ed4268a8a68f9fda76f26/pcsx2/Memory.cpp#L869| Some info about PageProt way]] || --ee-block-validation=None<br /> |-<br /> | --ee-shorthash-len || inst_count/integer || Length of shorthash in instruction/opcode count. Require --ee-block-validation=Hash || <br /> |-<br /> | --ee-const-folding || None,Gpr,Fpu,All || EE constant folding [https://en.wikipedia.org/wiki/Constant_folding More info] || --ee-const-folding=none<br /> |-<br /> | --ee-load-rewrites || || || <br /> |-<br /> | --ee-store-rewrites || || || <br /> |-<br /> | --ee-live32 || || || <br /> |-<br /> | --ee-inline-limit-full || insn_count/integer || ||<br /> |-<br /> | --ee-inline-limit-partial || || ||<br /> |-<br /> | --ee-jit-pagefault-threshold || fault_count/integer || || <br /> |-<br /> || --ee-jit-opt-debug || || ||<br /> |-<br /> | --ee-pc-coherency || || || <br /> |-<br /> | --ee-inst-marking || || || <br /> |-<br /> | --ee-insn-marking || || || <br /> |-<br /> | --ee-kernel-hle || || High-level emulation kernel || <br /> |-<br /> | --ee-injection-kernel || 0,1 || ||<br /> |-<br /> | --ee-injection-title || 0,1 || ||<br /> |-<br /> | --ee-regalloc-scalar || 0,none,ReadOnly,WriteOnly,RW || register allocation setting || <br /> |-<br /> | --ee-regalloc-simd || || register allocation setting || <br /> |-<br /> | --ee-regalloc-preserve-scalar || LoadOnly, StoreOnly, SO, LoadStore, LS || EE JIT Scalar/Int Regalloc Mode || --ee-regalloc-preserve-scalar=LoadStore<br /> |-<br /> | --ee-regalloc-preserve-simd || ReadOnly, RO, WO, WriteOnly ,RW || EE JIT SIMD/XMM Regalloc Mode || --ee-regalloc-preserve-simd=RW<br /> |-<br /> | --ee-static-block-links || options Type,Type,... [Branch,Branches,JAL,COP2,All] || || --ee-static-block-links=JAL,COP2<br /> |-<br /> | --ee-insn-flush-pc || || ||<br /> |- <br /> | --ee-insn-callmark || || ||<br /> |- <br /> | --ee-peephole || || ||<br /> |-<br /> | --ee-ignore-break || || ignore break instruction (we should never land here) || <br /> |-<br /> | --ee-hook || AdvanceClock, FastForwardClock, MfifoDrain || Non-conditional EE hook (This is not speedhack!), advancing/ff'ing clock can be useful for getting better sync CFC2/CTC2 || --ee-hook=0x0025b3b0,FastForwardClock<br /> |-<br /> | --ee-jit-disasm || 0,1=mips,2=x86 || Emotion Engine Just in Time disassembler mode (seems to be debug log option) || <br /> |-<br /> | --ee-jit-pagefault-threshold || || || --ee-jit-pagefault-threshold=30<br /> |-<br /> | --ee-context-switch-cycles || || || --ee-context-switch-cycles=1440<br /> |-<br /> | --ee-evt-check-full || || || <br /> |-<br /> | --ee-break-as-nop || 0,1 || use nop when hit brak instruction (this seems to be rarely useful as break usually mean eof) || --ee-break-as-nop=1<br /> |-<br /> | --ee-cycle-scalar || multiplier/float || || --ee-cycle-scalar=1.0<br /> |-|-<br /> | --ee-sif0-cycle-scalar || multiplier/float || Subsystem interface cycle scalar || --ee-sif0-cycle-scalar=2.0<br /> |-<br /> | --ee-sif1-cycle-scalar || multiplier/float || Subsystem interface cycle scalar || --ee-sif1-cycle-scalar=0.1<br /> |-<br /> | --iop-sif0-cycle-scalar || multiplier/float || Subsystem interface cycle scalar || --iop-sif0-cycle-scalar=1.5<br /> |-<br /> | --iop-sif1-cycle-scalar || multiplier/float || Subsystem interface cycle scalar || --iop-sif1-cycle-scalar=1.8<br /> |-<br /> | --iop-block-validation || IsC, ShortHash || || --iop-block-validation=IsC<br /> |-<br /> | --iop-validate-kernel || || || <br /> |-<br /> | --iop-shorthash-len || inst_count/integer || Length of shorthash in instruction/opcode count. Require --iop-block-validation=ShortHash || <br /> |-<br /> | --iop-const-folding || None,Gpr,All || IOP constant folding [https://en.wikipedia.org/wiki/Constant_folding More info] || --iop-const-folding=All<br /> |-<br /> | --iop-pc-coherency || || || <br /> |-<br /> | --iop-inst-marking || || || <br /> |-<br /> | --iop-jit-disasm || || || <br /> |-<br /> | --iop-evt-check-full || || || <br /> |-<br /> | --iop-cycle-scalar || || || --iop-cycle-scalar=0.80<br /> |-<br /> | --iop-tight-slice-count || || || --iop-tight-slice-count=12<br /> |-<br /> | --iop-hook || AdvanceClock, FastForwardClock || iop native hook || --iop-hook=0x0086ac,FastForwardClock<br /> |-<br /> |}<br /> <br /> ====FPU====<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --fpu-to-double || || Converts floats to double ||<br /> |- <br /> | --fpu-no-clamping || 0, 1 || No clamping for fpu || --fpu-no-clamping=0 (this option when enabled (set to 1), for some unknown reason seems to behave similar to pcsx2 FPU FULL clamping mode)<br /> |-<br /> | --fpu-no-clamp-range || start,end offset (0x0 - 0x1FFFFFF) || No clamping for fpu in selected memory range || --fpu-no-clamp-range=0x1acce0,0x2acce0<br /> |- <br /> | --fpu-clamp-operands || 0, 1 || fpu clamp on operand stage (combined with --fpu-clamp-results = ee/fpu clamping: extra in pcsx2) || --fpu-clamp-operands=1<br /> |- <br /> | --fpu-clamp-results || 0, 1 || fpu clamp for results of operations (ee/fpu clamping: normal in pcsx2) || --fpu-clamp-results=1<br /> |- <br /> | --fpu-custom-min-max || 0, 1 || Custom Max/Mini logic for denormals || --fpu-custom-min-max=0<br /> |- <br /> | --fpu-custom-fused-madd || 0, 1 || Custom FMA (fused multiply-add) || --fpu-custom-fused-madd=0<br /> |- <br /> | --fpu-accurate-range || start,end offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-range=0x1acce0,0x2acce0<br /> |- <br /> | --fpu-accurate-muldiv || offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-muldiv=0x123456<br /> |- <br /> | --fpu-accurate-muldiv-range || start,end offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-muldiv-range=0x1acce0,0x2acce0<br /> |- <br /> | --fpu-accurate-mul-fast || 1 || || --fpu-accurate-mul-fast=1<br /> |- <br /> | --fpu-accurate-addsub || offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-addsub=0x234567<br /> |- <br /> | --fpu-accurate-addsub-range || start,end offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-addsub-range=0x1acce0,0x2acce0<br /> |-<br /> | --fpu-rsqrt-fast-estimate || 0,1 || less accurate rsqrt (possible speed improvement, but can degrade accuracy) || --fpu-rsqrt-fast-estimate=1<br /> |-<br /> | --fpu-no-clamp-range || 0x0 to 0x1ffffff || EE memory range where clamping not gonna be used when use clamping global function || --fpu-no-clamp-range=0x123456, 0x212345<br /> |-<br /> |}<br /> <br /> ====VU/COP2====<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --vu-to-double || || Converts floats to double ||<br /> |-<br /> | --vu-branch-hazard || || ||<br /> |- <br /> | --vu-evil-branches || || Take in count branch in delay slot, or not. [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L306 More Info]||<br /> |- <br /> | --vu-d-bit || 0/1 || ignore D-bit (note: D bit shouldn't ever be used in retail games. PCSX2 ignore it at default.) || --vu-d-bit=0<br /> |- <br /> | --vu-t-bit || 0/1 || ignore T-bit (note: T bit is replacement of D bit for retail games, correct behavior of VU is to take it in count) || --vu-t-bit=0<br /> |- <br /> | --vu-inst-mflag || || Instant mac flag, or instances of mac flag? ||<br /> |- <br /> | --vu-inst-cflag || || Instant clipping flag, or instances of clipping flag? ||<br /> |- <br /> | --vu-custom-min-max || 0, 1 || Custom Max/Mini logic for denormals, pcsx2 use 0 at default || --vu-custom-min-max=0<br /> |- <br /> | --vu-custom-fused-madd || 0, 1 || Custom FMA (fused multiply-add) || --vu-custom-fused-madd=1<br /> |- <br /> | --vu-opt-jr-caching || || Optimize Jump Register caching. (vi15). Is not clear how optimization is done. ||<br /> |- <br /> | --vu-opt-sf-check || || Optimize Status or Sticky Flag check(?) ||<br /> |- <br /> | --vu-hack-triace || 0,1 || Special hack for Tri Ace games, correct VU addi calculation. Without it result is one bit off, which is enough to break game decryption algo. || --vu-hack-triace=1<br /> |- <br /> | --vu-xgkick-delay || vu_cycles/integer || Delay xgkick instruction execute, pcsx2 use 6 cycles, emu in ps3 use 2-8 cycles depend on game || --vu-xgkick-delay=8<br /> |-<br /> | --vu-range-merge || vu_inst_cnt || || <br /> |- <br /> | --vu0-opt-flags || [0,1,2] - 1=safe, 2=unsafe || Optimize flags when do VU recompilation (1 is safe, 2 update sticky, and mac flag on every status flag update) [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --vu0-opt-flags=1<br /> |- <br /> | --vu0-opt-vf00 || [0,1,2] - 1=safe, 2=unsafe || optimization for vf00? Not really sure here as vf00 is a special register where x,y,z are hard coded to 0.0 and w is hard-coded to 1.0. Not sure what to optimize here. || <br /> |- <br /> | --vu0-opt-subroutine || || ||<br /> |- <br /> | --vu0-const-prop || || Constant propagation [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L312 More info] ||<br /> |- <br /> | --vu0-no-clamping || 0, 1 || No clamping for vu0 (default 1) || --vu0-no-clamping=0<br /> |- <br /> | --vu0-clamp-operands || 0, 1 || vu0 clamp on operand stage || --vu0-clamp-operands=1<br /> |- <br /> | --vu0-clamp-results || 0, 1 || vu0 clamp for results of operations || --vu0-clamp-results=1<br /> |- <br /> | --vu0-inst-q || || instant Q, not stall on WAITQ, or instances of Q(?) || <br /> |- <br /> | --vu0-inst-p || || instant P, not stall on WAITP, or instances of P(?)||<br /> |- <br /> | --vu0-use-rcp || || use sse rcp ||<br /> |- <br /> | --vu0-use-rsqrt || || use sse rsqrt ||<br /> |- <br /> | --vu0-di-bits || || ||<br /> |-<br /> | --vu0-clamp-range || start, end offset || per range clamping for VU0 || --vu0-clamp-range=0x100,0x120<br /> |- <br /> | --vu0-jr-cache-policy || newprog,sameprog,auto || PCSX2 use newprog as default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu0-jr-cache-policy=sameprog<br /> |-<br /> | --vu0-jalr-cache-policy || newprog,sameprog,auto || PCSX2 use newprog as default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu0-jalr-cache-policy=sameprog<br /> |-<br /> | --vu0-mul0fix-range || vu0 memory offset start,end (0x0 - 0xFFF) || Fix for games that multiply by zero ||<br /> |-<br /> | --vu0-accurate-addsub-range || || ||<br /> |-<br /> | --vu0-aot-start-addr || start address || Seems to be PS3 command 0x12 replacement ahead of time compilation with CRC then to start, and CRC when to finish||<br /> |-<br /> | --vu0-aot-outmode || out/overwrite, append || ||<br /> |-<br /> | --vu0-aot-end-addr || end address for ahead of time compilation || || <br /> |-<br /> | --vu0-aot-start-crc || verify crc for aot start block (registers) || ||<br /> |-<br /> | --vu0-aot-end-crc || verify crc for aot end block (registers) || ||<br /> |-<br /> | --vu1 || jit-sync, jit, jit-async, trans || Selector between IR/JIT and it modes. Jit-sync behaves similar to turning of MTVU in pcsx2. || --vu1=jit-sync<br /> |-<br /> | --vu1-mul0fix-range || vu1 memory offset start,end (0x0 - 0x3FFF) || Fix for games that multiply by zero || --vu1-mul0fix-range=0x1230,0x1238<br /> |- <br /> | --vu1-opt-flags || [0,1,2] - 1=safe, 2=unsafe || Optimize flags instances when do VU recompilation (1 is safe, 2 update sticky, and mac flag on every status flag update) [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --vu1-opt-flags=0<br /> |- <br /> | --vu1-opt-vf00 || || optimization for vf00? Not really sure here as vf00 is a special register where x,y,z are hard coded to 0.0 and w is hard-coded to 1.0. Not sure what to optimize here. ||<br /> |- <br /> | --vu1-opt-subroutine || || ||<br /> |- <br /> | --vu1-const-prop || || Constant propagation [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L312 More info] || --vu1-const-prop=1<br /> |- <br /> | --vu1-no-clamping || 0, 1 || No clamping for vu1 (default 1) || --vu1-no-clamping=0<br /> |- <br /> | --vu1-clamp-operands || 0, 1 || vu1 clamp on operand stage || --vu1-clamp-operands=1<br /> |- <br /> | --vu1-clamp-results || 0, 1 || vu1 clamp for results of operations || --vu1-clamp-results=1<br /> |- <br /> | --vu1-inst-q || || instant Q, not stall on WAITQ, or instances of Q(?) ||<br /> |- <br /> | --vu1-inst-p || || instant P, not stall on WAITP, or instances of P(?) ||<br /> |- <br /> | --vu1-jr-cache-policy || newprog,sameprog,auto || PCSX2 use newprog as default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu1-jr-cache-policy=sameprog<br /> |-<br /> | --vu1-jalr-cache-policy || newprog,sameprog,auto || PCSX2 use newprog as default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu1-jalr-cache-policy=sameprog<br /> |- <br /> | --vu1-use-rcp || || use sse rcp ||<br /> |- <br /> | --vu1-use-rsqrt || || use sse rsqrt ||<br /> |- <br /> | --vu1-di-bits || || ||<br /> |- <br /> | --vu1-injection || 0, 1 or enable/disable depend on emu revision || || --vu1-injection=1<br /> |-<br /> | --vu1-native-patch || 0,1 || use native patches from recompiler || --vu1-native-patch=1<br /> |- <br /> | --vtune-vu || || ||<br /> |- <br /> | --vu-jit-disasm || 0, 1, 2 || seems to be debug print only option. || 0,1=mips,2=x86<br /> |- <br /> | --vu1-mpg-cycles || cycles_per_Microprogram || set initial cycles for vu1 microprograms || --vu1-mpg-cycles=1000<br /> |-<br /> | --cop2-opt-flags || [0,1,2] - 1=safe, 2=unsafe || Optimize flags when do VU recompilation (1 is safe, 2 update sticky, and mac flag on every status flag update) [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --cop2-opt-flags=1<br /> |- <br /> | --cop2-opt-vf00 || || optimization for vf00? Not really sure here as vf00 is a special register where x,y,z are hard coded to 0.0 and w is hard-coded to 1.0. Not sure what to optimize here. ||<br /> |- <br /> | --cop2-const-prop || || Constant propagation [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L312 More info] ||<br /> |- <br /> | --cop2-no-clamping || || No clamping for COP2 (default 1) || --cop2-no-clamping=0<br /> |-<br /> | --cop2-no-clamp-range || start,end offset (0x0 - 0x1FFFFFF) || No clamping for COP2 in selected range || --cop2-no-clamp-range=0x123456,0x134567<br /> |- <br /> | --cop2-clamp-operands || 0,1 || clamp on operand stage || --cop2-clamp-operands=1<br /> |- <br /> | --cop2-clamp-results || 0,1 || clamp for results of operations || --cop2-clamp-results=1<br /> |- <br /> | --cop2-regalloc || || PCSX2 seems to have this enabled by default. ||<br /> |- <br /> | --cop2-inst-q || || instant Q, not stall on VWAITQ, , or instances of Q(?) ||<br /> |- <br /> | --cop2-inst-p || || ? ||<br /> |- <br /> | --cop2-use-rcp || || use sse rcp ||<br /> |- <br /> | --cop2-use-rsqrt || 0,1 || use sse rsqrt || --cop2-use-rsqrt=0<br /> |- <br /> | --cop2-di-bits || 0,1 || || --cop2-di-bits=1<br /> |- <br /> | --cop2-accurate-range || start,end offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-range=0x123456,0x134567<br /> |- <br /> | --cop2-accurate-mul || offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-mul=0x123456<br /> |- <br /> | --cop2-accurate-mul-range || start,end offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-mul-range=0x123456,0x134567<br /> |- <br /> | --cop2-accurate-addsub || start,end offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-addsub=0x123456<br /> |- <br /> | --cop2-accurate-addsub-range || start,end offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-addsub-range=0x123456,0x134567<br /> |}<br /> <br /> ====GS/VIF====<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --vif-ignore-invalid-cmd || 0,1 || Ignore invalid vif commands || --vif-ignore-invalid-cmd=1<br /> |-<br /> | --vif1-ignore-cmd-ints || 0,1 || || --vif1-ignore-cmd-ints=1<br /> |-<br /> | --vif1-instant-xfer || 0,1 || &quot;Instant VIF transfer&quot; Default 1. Correct behavior is 0, but we don't know how accurate VIF timing is in that emu. || --vif1-instant-xfer=0<br /> |-<br /> | --vif-thread-chunk-size || int/kilowords || ||<br /> |-<br /> | --force-frame-blend || 0, 1 || || --force-frame-blend=1<br /> |-<br /> | --framelimit-mode || --framelimit-mode || normal,fast,fastest,slow,slower,slowest || --framelimit-mode=slowest<br /> |-<br /> | --gs-scanout-delay || hsync_count/integer || ||<br /> |- <br /> | --gs-fieldswap-delay || || Wait longer than usual to change field ||<br /> |- <br /> | --gs-use-deferred-l2h || || Some delay option for L2H (local to host, GS to EE)|| -gs-use-deferred-l2h=1 <br /> |- <br /> | --l2h-2d-params || TRXREG,BITBLTBUF,height || || --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> |- <br /> | --gs-uprender || none,2x2 || Rendering upscaler (use higher internal resolution) || --gs-uprender=2x2<br /> |- <br /> | --gs-upscale || none, gpu, edgesmooth, motionvec, point, || after recompilation upscaler? || --gs-upscale=EdgeSmooth<br /> |- <br /> | --gs-aspect-ratio || aspect/float (default=0.81) || || --gs-aspect-ratio=0.65<br /> |- <br /> | --gs-progressive || || Force progressive scan? ||<br /> |- <br /> | --gs-force-bilinear || 0,1 || force bilinear filtering || --gs-force-bilinear=1<br /> |-<br /> | --gs-frontend-opt-mode || (0-2?) || || --gs-frontend-opt-mode=1<br /> |- <br /> | --gs-use-mipmap || 0,1 || Required for CL kernels using mipmaping || --gs-use-mipmap=1<br /> |- <br /> | --gs-use-clut-merge || 0.1 || Required for CL kernels using merging CLUT || --gs-use-clut-merge=1<br /> |- <br /> | --gs-kernel-cl || h2lpool, clutmerge, mipmap, DarkCloud2, fantavision || Kernel Variant || --gs-kernel-cl=&quot;clutmerge&quot;<br /> |- <br /> | --gs-kernel-cl-up || h2lpool2x2, OptRightTri, clutmerge2x2, mipmap2x2, up2x2simple, up2x2skipinterp || Kernel Variant Upscaler || --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> |- <br /> | --gs-optimize-30fps || || || --gs-optimize-30fps=1<br /> |- <br /> | --gs-motion-factor || motion factor || [value 25 is used on NTSC-U game in official PKG, so unknown what it is] || --gs-motion-factor=25<br /> |-<br /> | --gs-override-small-tri-area || || || <br /> |-<br /> | --gs-check-trans-rejection68 || 0,1? || || --gs-check-trans-rejection68=1<br /> |- <br /> | --gs-check-trans-rejection || || ||<br /> |- <br /> | --gs-skip-dirty-flush-on-mipmap || 0,1 || Require mipmap GS CL kernel || --gs-skip-dirty-flush-on-mipmap=1<br /> |- <br /> | --gs-packed15-fmv-opt || 0,1 || || --gs-packed15-fmv-opt=1<br /> |- <br /> | --gs-scanout-offsetx || relative offset/ignored || Directly overwrite GS register? || --gs-scanout-offsetx=27<br /> |- <br /> | --gs-scanout-offsety || relative offset/ignored || || <br /> |-<br /> | --gs-dirty-page-policy || 0,1? || || --gs-dirty-page-policy=1<br /> |-<br /> | --force-pal-60hz || 0,1 || Force 60hz PAL mode || --force-pal-60hz=1<br /> |-<br /> | --gs-flush-ad-xyz || always, safe, off, 0 || || --gs-flush-ad-xyz=safe<br /> |-<br /> | --gs-render-tile-threshold || || || --gs-render-tile-threshold=300000<br /> |-<br /> | --gs-uv-shift-pointsampling || || || --gs-uv-shift-pointsampling=1<br /> |-<br /> | --safe-area-min || area/float (range 0.9 to 1.0) || || --safe-area-min=0.9<br /> |-<br /> | --threaded-gs || 0,1 (more?) || || --threaded-gs=0<br /> |-<br /> | --gs-opt-frbuff-switch || || || --gs-opt-frbuff-switch=1<br /> |-<br /> | --gs-ignore-rect-correction || || || --gs-ignore-rect-correction=1<br /> |-<br /> | --idec-cycles-per-qwc || int/multiplier || || --idec-cycles-per-qwc=768<br /> |-<br /> |}<br /> <br /> === XXXX-YYYYY_config.lua ===<br /> <br /> It is most powerful config. Allow direct patching EE/IOP/VU memory, hooks registers, hook dma. Everything can be done here. <br /> <br /> If needed it can hook registers by using register names from alias files. Alias files (ee-cpr0-alias.lua, ee-gpr-alias.lua, ee-hwaddr.lua) are stored in lua_include folder, and can be included to config by using require ( &quot;alias file name&quot; ).<br /> <br /> '''Known functions: <br /> '''<br /> Require cleanup.<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Usage !! Notes<br /> |-<br /> | apiRequest || apiRequest(&lt;api version&gt;) || example: apiRequest(0.1) <br /> Different emu versions support different highest api. <br /> Calling api is mandatory. some commands require higher version. Highest known version is 2.3 api from JAK 2,3,X game emulator.<br /> |-<br /> ! !! getEmuObject class !! <br /> |-<br /> | getEmuObject || local emuObj = getEmuObject() || Required for all functions using emuObj, that include: &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;LoadConfig SaveConfig GetPad AddVsyncHook<br /> RemoveVsyncHook AddEntryPointHook RemoveEntryPointHook<br /> AddLoginHook RemoveLoginHook AddLogoutHook RemoveLogoutHook<br /> CheckEntitlement AddImageHook AddGifTagHook SwapMemCard<br /> SetFormattedCard OpenDiscTray CloseDiscTray SwitchDisc<br /> EnableImposeMenu GetDiscId GetDiscTitleId<br /> AddSectorReadHook AddMCWriteHook ShowDiscSwitchInfo GetPs4SystemLang SetPs2Lang<br /> ThrottleNorm ThrottleFast ThrottleMax AddAssertionHook <br /> SetGsTitleFix SetDeinterlace SetDisplayAspectWide SetDisplayAspectNormal <br /> ForceRefreshRate LoadFsShader SetDisplaySafeArea PadSetLightBar <br /> emuAddPadHook PadPressureStickRemap SetVolumes GetVolumes <br /> SetAudioRoute GetAudioRoute AddSnapshotLoadedHook<br /> RemoveSnapshotLoadedHook IsNeoMode IsToolingVerbose emuMediaPatch &lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |LoadConfig || ||<br /> |-<br /> |SaveConfig || ||<br /> |-<br /> |GetPad || emuObj.GetPad(&lt;gamepad button by bits&gt;)|| example usage for reading input: <br /> &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;local CheckInputs = function()<br /> <br /> local pad_bits = emuObj.GetPad()<br /> local UP = pad_bits &amp; 0x0010<br /> local DOWN = pad_bits &amp; 0x0040<br /> local LEFT = pad_bits &amp; 0x0080<br /> local RIGHT = pad_bits &amp; 0x0020<br /> local Triangle = pad_bits &amp; 0x1000<br /> local Cross = pad_bits &amp; 0x4000<br /> local Square = pad_bits &amp; 0x8000<br /> local Circle = pad_bits &amp; 0x2000<br /> local L1 = pad_bits &amp; 0x0400<br /> local L2 = pad_bits &amp; 0x0100<br /> local L3 = pad_bits &amp; 0x0002<br /> local R1 = pad_bits &amp; 0x0800<br /> local R2 = pad_bits &amp; 0x0200<br /> local R3 = pad_bits &amp; 0x0004<br /> local Select = pad_bits &amp; 0x0001<br /> local Start = pad_bits &amp; 0x0008 <br /> <br /> if (L2 ~= 0) then<br /> &lt;here function that should be done when L2 is pushed&gt;<br /> end<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(CheckInputs) &lt;to trigger check at every vsync&gt;&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |AddVsyncHook || emuObj.AddVsyncHook(&lt;task to be done every vsync&gt;) || emuObj.AddVsyncHook(my_function) <br /> my_function can be anything, from simple patches, to extensive hook.<br /> Example usage can be found in SLUS-21550 features file.<br /> |-<br /> |RemoveVsyncHook || emuObj.RemoveVsyncHook(&lt;previously added task to be removed&gt;) || emuObj.RemoveVsyncHook(my_function)<br /> |-<br /> |AddEntryPointHook || emuObj.AddEntryPointHook(&lt;task&gt;) || Task to be done at ps2 game main elf entry point (right where game is loaded).<br /> |-<br /> |RemoveEntryPointHook || ||<br /> |-<br /> |AddLoginHook || ||<br /> |-<br /> |RemoveLoginHook || ||<br /> |-<br /> |AddLogoutHook || ||<br /> |-<br /> |RemoveLogoutHook || ||<br /> |-<br /> |CheckEntitlement || ||<br /> |-<br /> |AddImageHook || ||<br /> |-<br /> |AddGifTagHook || ||<br /> |-<br /> |SwapMemCard || ||<br /> |-<br /> |SetFormattedCard || emuObj.SetFormattedCard(&lt;&quot;file name&quot;&gt;) || emuObj.SetFormattedCard(&quot;custom_formatted.card&quot;)<br /> Allow to use custom memory card. <br /> |-<br /> |OpenDiscTray || ||<br /> |-<br /> |CloseDiscTray || ||<br /> |-<br /> |SwitchDisc || emuObj.SwitchDisc(&lt;disc ID&gt;) || ID can be provided as is, or for example read from memory or register when needed.<br /> |-<br /> | EnableImposeMenu || emuObj.EnableImposeMenu(&lt;true/false&gt;) || EnableImposeMenu(false)<br /> |-<br /> | GetDiscId || emuObj.GetDiscId() || Return DiscId in XXXX_YYY.ZZ format<br /> |-<br /> | GetDiscTitleId || ||<br /> |-<br /> | AddSectorReadHook || emuObj.AddSectorReadHook(&lt;sector, unk, task&gt;) || Hook to do task when disc image sector is read. Not all values are known (ex. emuObj.AddSectorReadHook(776480, 32, &lt;task/function&gt;) )<br /> |-<br /> |AddMCWriteHook || ||<br /> |-<br /> |ShowDiscSwitchInfo || ||<br /> |-<br /> | GetPs4SystemLang || emuObj.GetPs4SystemLang() || Return PS4 system language (in unknown format).<br /> |-<br /> | SetPs2Lang || emuObj.SetPs2Lang(&lt;Lang ID&gt;) || Set emulated PS2 language, correct Lang IDs are 0-18.<br /> &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;0 - japanese<br /> 1 - english<br /> 2 - french<br /> 3 - spanish<br /> 4 - german<br /> 5 - italian<br /> 6 - dutch<br /> 7 - portuguese<br /> 8 - russian<br /> 9 - korean<br /> 10 - traditonal-chinese<br /> 11 - simplified-chinese<br /> 12 - finnish<br /> 13 - swedish<br /> 14 - danish<br /> 15 - norwegian<br /> 16 - polish<br /> 17 - portuguese-brazil<br /> 18 - english-uk&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |ThrottleNorm ||emuObj.ThrottleNorm() || Enable default framelimiter (50/60 fps depend on region).<br /> |-<br /> |ThrottleFast || emuObj.ThrottleFast() || Faster than default, but exact value is unknown.<br /> |-<br /> |ThrottleMax || emuObj.ThrottleMax() || Disable framelimiter at all, usually used during static loadings in official packages.<br /> |-<br /> |AddAssertionHook || ||<br /> |-<br /> | SetGsTitleFix || || [[PS2_Emulation#SetGsTitleFix|More info]]<br /> |-<br /> |SetDisplayAspectWide || emuObj.SetDisplayAspectWide() || Force display area to 16:9 (If game not support widescreen, it will be stretched).<br /> |-<br /> |SetDisplayAspectNormal || emuObj.SetDisplayAspectNormal() || Force display area to 4:3.<br /> |-<br /> |ForceRefreshRate || emuObj.ForceRefreshRate(&lt;hz&gt;) || emuObj.ForceRefreshRate(50) correct values are 0, 50, 60 where 0 = default. <br /> |-<br /> |LoadFsShader || emuObj.LoadFsShader(&lt;slot?&gt;, &quot;&lt;path&gt;&quot;) || &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;Shaders must be loaded right after GS has been initialized. <br /> Example:<br /> Global_InitGpuResources = function()<br /> emuObj.LoadFsShader(1, &quot;./shader.sb&quot;)<br /> end<br /> <br /> That only load Fragment Shader to program memory, to use it we need BindFragmentShader, <br /> and if depend on shader SetShaderParams.&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |SetDisplaySafeArea || ||<br /> |-<br /> |PadSetLightBar || emuObj.PadSetLightBar(&lt;port, red, green, blue&gt;) || Set DS4 light bar color. Correct port values are 0-3, correct light values are 0-255.<br /> |-<br /> |emuAddPadHook || ||<br /> |-<br /> |PadPressureStickRemap || ||<br /> |-<br /> |SetVolumes || emuObj.SetVolumes('global', 'main', 'bgm') || Set volume, usually setting global is enough. Example: emuObj.SetVolumes(0.31, 1.0, 1.0) values, in floats 1.0 = 100%<br /> |-<br /> |GetVolumes || emuObj.GetVolumes() || Return current volume levels for ('global', 'main', 'bgm') in floating point values.<br /> |-<br /> |SetAudioRoute || ||<br /> |-<br /> |GetAudioRoute || ||<br /> |-<br /> | CountFrameOnPS2 || ||<br /> |-<br /> |AddSnapshotLoadedHook || ||<br /> |-<br /> |RemoveSnapshotLoadedHook || ||<br /> |-<br /> | IsNeoMode || emuObj.IsNeoMode() || Check that PS4 run in NEO (PRO) mode. Return 1/0<br /> |-<br /> | IsToolingVerbose || ||<br /> |-<br /> | emuMediaPatch || emuMediaPatch(disc sector, 12/24 + offset, { original data }, { replace data }) || Replace 4 bytes from loaded iso file. For unknown reason we always need to add 12 to real offset for DVD game, and 24 for CD game. <br /> |-<br /> ! !! getIOPObject class !! <br /> |-<br /> | getIOPObject || local iopObj = getIOPObject() || Required for all functions using iopObj, that include: &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;ReplaceMem64 ReplaceMem32 ReplaceMem16 ReplaceMem8 ReadMemFloat<br /> WriteMemFloat WriteMem64 WriteMem32 WriteMem16 WriteMem8<br /> ReadMemStr AddHook RemoveHook GetGpr SetGpr GetPc SetPc<br /> GetCPR0 SetCPR0 iopInsnReplace&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |ReplaceMem64 || ||<br /> |-<br /> |ReplaceMem32 || ||<br /> |-<br /> |ReplaceMem16 || ||<br /> |-<br /> |ReplaceMem8 || ||<br /> |-<br /> |ReadMemFloat || iopObj.ReadMemFloat(&lt;address&gt;) || iopObj.ReadMemFloat(0x28c3c)<br /> |-<br /> |WriteMemFloat || iopbj.WriteMemFloat(&lt;address&gt;, &lt;value&gt;) || iopObj.WriteMemFloat(0x65364, 1.3333333)<br /> |-<br /> | ReadMem64 || &lt;pre&gt;iopObj.ReadMem64(&lt;iop memory offset&gt;)&lt;/pre&gt; || <br /> |-<br /> | WriteMem64 || &lt;pre&gt;iopObj.WriteMem64(&lt;iop memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || <br /> |-<br /> | ReadMem32 || &lt;pre&gt;iopObj.ReadMem32(&lt;iop memory offset&gt;)&lt;/pre&gt; || Read 4 bytes from offset, examples: iopObj.ReadMem32(0x1198)<br /> iopObj.ReadMem32(gp - 348)<br /> |-<br /> | WriteMem32 || &lt;pre&gt;iopObj.WriteMem32(&lt;iop memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 4 bytes to offset, example: iopObj.WriteMem32(0x89ac, 0x001b70f0)<br /> |-<br /> | ReadMem16 || &lt;pre&gt;iopObj.ReadMem16(&lt;iop memory offset&gt;)&lt;/pre&gt; || Read 2 bytes from offset, example: iopObj.ReadMem16(0x1198)<br /> |-<br /> | WriteMem16 || &lt;pre&gt;iopObj.WriteMem16(&lt;iop memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 2 bytes to offset, example: iopObj.WriteMem16(0x89ac, 0x70f0)<br /> |-<br /> | ReadMem8 || &lt;pre&gt;iopObj.ReadMem8(&lt;iop memory offset&gt;)&lt;/pre&gt; || Read 1 byte from offset, example: iopObj.ReadMem8(0x1198)<br /> |-<br /> | WriteMem8 || &lt;pre&gt;iopObj.WriteMem8(&lt;iop memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 1 byte to offset, example: iopObj.WriteMem8(0x89ac, 0xf0)<br /> |-<br /> |ReadMemStr || ||<br /> |-<br /> |AddHook || ||<br /> |-<br /> |RemoveHook || ||<br /> |-<br /> |GetGpr || iopObj.GetGPR(&lt;gpr register&gt;) || iopObj.GetGPR(a1)<br /> |-<br /> |SetGpr || iopObj.SetGPR(&lt;gpr register&gt; ,&lt;value&gt;) || example: iopObj.SetGPR(gpr.v0 ,3)<br /> |-<br /> |GetPc || ||iopObj.GetPc(), can be used also with additional var. like iopObj.GetPc()+8<br /> |-<br /> |SetPc || iopObj.SetPC(&lt;PC&gt;) ||iopObj.SetPC(0x6B80)<br /> |-<br /> |GetCPR0 || iopObj.GetCPR0(&lt;COP0 register&gt;) ||<br /> |-<br /> |SetCPR0 || iopObj.SetCPR0(&lt;COP0 register&gt;) ||<br /> |-<br /> | iopInsnReplace || iopInsnReplace(IOP memory offset, Original opcode (BE), Replace opcode (BE)) || Replace 4 bytes opcode in iop memory, correct memory range is 0x0 to 0x1FFFFF<br /> |-<br /> ! !! getEEObject class !!<br /> |-<br /> | getEEObject || local eeObj = getEEObject() || Required for all functions using eeObj<br /> |-<br /> |ReplaceMem64 || ||<br /> |-<br /> |ReplaceMem32 || ||<br /> |-<br /> |ReplaceMem16 || ||<br /> |-<br /> |ReplaceMem8 || ||<br /> |-<br /> |ReadMemFloat || eeObj.ReadMemFloat(&lt;address&gt;) || eeObj.ReadMemFloat(0x258c3c)<br /> |-<br /> |WriteMemFloat || eeObj.WriteMemFloat(&lt;address&gt;, &lt;value&gt;) || eeObj.WriteMemFloat(0x365364, 1.3333333)<br /> |-<br /> |ReadMem128 || &lt;pre&gt;eeObj.ReadMem128(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 16 bytes from offset, examples: eeObj.ReadMem128(0x100198)<br /> |-<br /> |ReadMemFloat128 || &lt;pre&gt;eeObj.ReadMemFloat128(&lt;ee memory offset&gt;)&lt;/pre&gt; || return 16 bytes from offset in float form<br /> |-<br /> |WriteMem128 || ||<br /> |-<br /> |WriteMemFloat128 || ||<br /> |-<br /> | ReadMem64 || &lt;pre&gt;eeObj.ReadMem64(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 8 bytes from offset, examples: eeObj.ReadMem64(0x100198)<br /> |-<br /> | WriteMem64 || &lt;pre&gt;eeObj.WriteMem64(&lt;ee memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || <br /> |-<br /> | ReadMem32 || &lt;pre&gt;eeObj.ReadMem32(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 4 bytes from offset, examples: eeObj.ReadMem32(0x100198)<br /> eeObj.ReadMem32(gp - 31348)<br /> |-<br /> | WriteMem32 || &lt;pre&gt;eeObj.WriteMem32(&lt;ee memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 4 bytes to offset, example: eeObj.WriteMem32(0x2c89ac, 0x001b70f0)<br /> |-<br /> | ReadMem16 || &lt;pre&gt;eeObj.ReadMem16(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 2 bytes from offset, example: eeObj.ReadMem16(0x100198)<br /> |-<br /> | WriteMem16 || &lt;pre&gt;eeObj.WriteMem16(&lt;ee memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 2 bytes to offset, example: eeObj.WriteMem16(0x2c89ac, 0x70f0)<br /> |-<br /> | ReadMem8 || &lt;pre&gt;eeObj.ReadMem8(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 1 byte from offset, example: eeObj.ReadMem8(0x100198)<br /> |-<br /> | WriteMem8 || &lt;pre&gt;eeObj.WriteMem8(&lt;ee memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 1 byte to offset, example: eeObj.WriteMem8(0x2c89ac, 0xf0)<br /> |-<br /> |ReadMemStr || eeObj.ReadMemStr(address/register) || Read string from address until null terminator<br /> |-<br /> | AddHook || eeObj.AddHook(&lt;ee offset&gt;, &lt;original opcode&gt;, &lt;definied hook name&gt;) || example: &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;local W1 = <br /> function()<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> <br /> local ws1 = eeObj.AddHook(0x1c9840, 0xaf808c78, W1)&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |RemoveHook || || <br /> |-<br /> |AddPreHook || ||<br /> |-<br /> |RemovePreHook || ||<br /> |-<br /> |RemovePostHook || ||<br /> |-<br /> |GetGpr64 || eeObj.GetGPR64(&lt;gpr register&gt;) || example: eeObj.GetGPR64(t3)<br /> |-<br /> |SetGpr64 || ||<br /> |-<br /> | GetGprFloat || || Get gpr value as float value<br /> |-<br /> | SetGprFloat || || Set gpr value as float value<br /> |-<br /> |GetGpr / GetGPR || eeObj.GetGPR(&lt;gpr register&gt;) || eeObj.GetGPR(t3)<br /> |-<br /> |SetGpr / SetGPR || eeObj.SetGPR(&lt;gpr register&gt; ,&lt;value&gt;) || example: eeObj.SetGPR(gpr.a3 ,1)<br /> Require defined getEEObject() as eeObj<br /> |-<br /> | GetFprHex || eeObj.GetFprHex(&lt;FPU register (0-31)&gt;)|| Get/return floating point register value as hex string<br /> |-<br /> | SetFprHex || eeObj.SetFprHex(&lt;FPU register (0-31), value (u32)&gt;)|| Set floating point register value as hex string<br /> |-<br /> | GetFpr / GetFPR || eeObj.GetFpr(&lt;register number&gt;) || example eeObj.GetFpr(14)<br /> |-<br /> | SetFpr / SetFPR || eeObj.SetFpr(&lt;fpr register number&gt;, &lt;value&gt;) || Simple example eeObj.SetFpr(14, 50.0) will set frp 14 to 50.0<br /> But we can also combine commands to add/sub from registers<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0) this will add 50.0 to current fpr 14 value<br /> |-<br /> |GetPc || ||eeObj.GetPc(), can be used also with additional var. like eeObj.GetPc()+4<br /> |-<br /> |SetPc || eeObj.SetPC(&lt;PC&gt;) ||eeObj.SetPC(0x266B80)<br /> |-<br /> |GetCPR0 || eeObj.GetCPR0(&lt;COP0 register&gt;) || <br /> |-<br /> |SetCPR0 || eeObj.SetCPR0(&lt;COP0 register&gt;) || <br /> |-<br /> |SchedulerDelayEvent || eeObj.SchedulerDelayEvent(&quot;event&quot;, cycles) || Parrapa use eeObj.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500) Possible events are gif.dma, vif0.dma, vif1.dma, sif0.dma, sif1.dma, ipu0.dma, ipu1.dma . This command allow to delay certain DMA transfer by cycles. <br /> |-<br /> |DmaAddHook || ||<br /> |-<br /> |DmaRemoveHook || ||<br /> |-<br /> |WaitVu1 || ||<br /> |-<br /> |Vu1MpgCycles || eeObj.Vu1MpgCycles(&lt;cycles&gt;) || eeObj.Vu1MpgCycles(100) Values is cycles that VU1 microprogram should run before force end<br /> |-<br /> |GetPcRingBuffer || ||<br /> |-<br /> |WriteMemStr || eeObj.WriteMemStr(address, string) || <br /> |-<br /> |FastForwardClock || ||<br /> |-<br /> |AdvanceClock || ||<br /> |-<br /> |WriteMemStrZ || || eeObj.WriteMemStrZ(string pointer, string) . Pointer can be read from GPR<br /> |-<br /> |Precompile || ||<br /> |-<br /> |CalcInsnHash || ||<br /> |-<br /> |AddJitResetHook || ||<br /> |-<br /> |RemoveJitResetHook || ||<br /> |-<br /> |getOverlayObject || || local eeOverlay = eeObj.getOverlayObject()<br /> |-<br /> | GetVif1Cycles || eeObj.GetVif1Cycles() || local vif1_cycles = eeObj.GetVif1Cycles() create vif_cycles value that can be used later, you can rename it as you wish.<br /> |-<br /> ! !! getGLSObject class !!<br /> |-<br /> | getGLSObject || || <br /> |-<br /> |Enable || ||<br /> |-<br /> |EnableServerRecording || || <br /> |-<br /> |Pause || || <br /> |-<br /> ! !! getGsObject class !!<br /> |-<br /> | getGsObject || local gsObj = getGsObject() || <br /> |-<br /> |SetL2HMode || ||<br /> |-<br /> |SetUprenderMode || ||<br /> |-<br /> |SetUpscaleMode || ||<br /> |-<br /> |GetFramesInQueue || ||<br /> |-<br /> |SetFrameSkipping || ||<br /> |-<br /> |SetDeinterlaceShift || || gsObj.SetDeinterlaceShift(0)<br /> |-<br /> ! !! getAudioObject class !!<br /> |-<br /> | getAudioObject || || <br /> |-<br /> | muteStreamingAll || || <br /> |-<br /> | muteStreamingMain || || <br /> |-<br /> | muteStreamingBGM || || <br /> |-<br /> ! !! getRemotePlayObject class !!<br /> |-<br /> | getRemotePlayObject || || <br /> |-<br /> | Enable || || <br /> |-<br /> ! !! getVideoRecordingObject class !!<br /> |-<br /> | getVideoRecordingObject || ||<br /> |-<br /> | Enable || || <br /> |-<br /> ! !! getSharePlayObject class !!<br /> |-<br /> | getSharePlayObject || || <br /> |-<br /> | Enable || || <br /> |-<br /> ! !! getSpriteObject group !!<br /> |-<br /> |getSpriteObject || ||<br /> |-<br /> |Enable || ||<br /> |-<br /> |Disable || ||<br /> |-<br /> |BindFragmentShader || ||<br /> |-<br /> |SetShaderParams || || &lt;div align=&quot;left&quot;&gt;<br /> &lt;pre&gt; Is not clear that params depend on shader, or are somehow hardcoded.<br /> Example usage:<br /> <br /> local sprite0 = getSpriteObject(0)<br /> local scanlineParams = {<br /> 240.0, -- float scanlineCount<br /> 0.7, -- float scanlineHeight;<br /> 1.5, -- float scanlineBrightScale;<br /> 0.5, -- float scanlineAlpha;<br /> 0.5 -- float vignetteStrength;<br /> }<br /> <br /> sprite0.SetShaderParams(scanlineParams)&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |BindTexture || ||<br /> |-<br /> |SetPosXY || ||<br /> |-<br /> |SetSizeXY || ||<br /> |-<br /> |SetPosUV || ||<br /> |-<br /> |SetSizeUV || ||<br /> |-<br /> |PrintContext || ||<br /> |-<br /> |SetBlendColor || sprite&lt;X&gt;.SetBlendColor(&lt;R,G,B,A&gt;) in floats, max val. 1.0 || &lt;div align=&quot;left&quot;&gt;<br /> &lt;pre&gt;local sprite0 = getSpriteObject(0)<br /> sprite0.SetBlendColor(1.0,1.0,1.0,1.0)&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> ! !! Not require Obj call group, or unknown !! <br /> |-<br /> | eeInsnReplace || eeInsnReplace(EE memory offset, Original opcode (BE), Replace opcode (BE)) || Replace 4 bytes opcode in ee memory, correct memory range is 0x0 to 0x1FFFFFFF<br /> |-<br /> | vuInsnReplace || &lt;pre&gt;vuInsnReplace(vu 0/1, vu memory offset divided by 8, (original opcode&lt;&lt;32) | original opcode, (replace opcode&lt;&lt;32) | replace opcode) &lt;/pre&gt;|| Replace 2 x 4 bytes in VU memory, correct memory range depend on selected VU, left shift by 32 is used for VU lower opcodes. Command will fail if size is above 254. &lt;pre&gt;example:<br /> vuInsnReplace(0, 0x167, (0x000002ff &lt;&lt; 32) | 0x520507ff,(0x000002ff &lt;&lt; 32) | 0x8000033c)<br /> Replace 64 bits of VU0 at offset 0xB38&lt;/pre&gt;<br /> |-<br /> | eeNativeFunction || eeNativeFunction(&lt;ee offset&gt;, &lt;original opcode&gt;, &lt;function&gt;) || eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> Different emulators can have different functions included, vide SO3. Require api 1.4 or higher.<br /> But functions from this list should be available in every emu:<br /> &lt;pre&gt;ieee754_acosf ieee754_asinf ieee754_sqrtf<br /> fabs cosf fabsf<br /> sinf acosf asinf<br /> sqrtf fptoui fptodp<br /> litodp dptoli dptofp<br /> memcpy memset strlen&lt;/pre&gt; <br /> |-<br /> | eeNativeHook || eeNativeHook(&lt;ee ofset&gt;, &lt;original opcode&gt;, &lt;action&gt;) || eeNativeHook require apiRequest(1.4) or higher.<br /> |-<br /> | GsCustomShader || || <br /> |-<br /> | getTrophyObject || local trophyObj = getTrophyObject() || Required for all functions using trophyObj<br /> |-<br /> | getDmaObject || local dmaObj = getDmaObject() || Depreciated API - use EE:DmaAddHook / EE:DmaRemoveHook instead. Is not clear when it was depreciated, JAK emu don't use it.<br /> |-<br /> | Unlock || || <br /> |-<br /> | getScreenShotObject || || <br /> |-<br /> | IsUnlocked || || <br /> |-<br /> | InsnOverlay || InsnOverlay({&lt;opcode, opcode, opcode...&gt;}) || example: &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> | eeDebugBreak || || <br /> |-<br /> | CsBindShader || || <br /> |-<br /> | CsSetParamInt32 || || <br /> |-<br /> | CsSetParamFloat || || <br /> |-<br /> | CsResetContext || || <br /> |-<br /> | CsPrintContext || || <br /> |-<br /> | PsBindShader || || <br /> |-<br /> | PsSetParamInt32 || || <br /> |-<br /> | PsSetParamFloat || || <br /> |-<br /> | PsResetContext || || <br /> |-<br /> | PsPrintContext || || <br /> |-<br /> |}<br /> &lt;b&gt;Note:&lt;/b&gt; eeObj, emuObj, gsObj, etc are described as required, this is not really true. You can set functions locals they use as whatever you want, but due to specify of that emulator it will be better to keep official naming used in official configs.<br /> <br /> ===Registers for hook===<br /> Registers defined in alias files. <br /> <br /> '''GetGpr/SetGpr<br /> '''<br /> &lt;pre&gt;gpr.zero gpr.at <br /> gpr.v0 gpr.v1 <br /> gpr.a0 gpr.a1 gpr.a2 gpr.a3 <br /> gpr.t0 gpr.t1 gpr.t2 gpr.t3 <br /> gpr.t4 gpr.t5 gpr.t6 gpr.t7 <br /> gpr.s0 gpr.s1 gpr.s2 gpr.s3 <br /> gpr.s4 gpr.s5 gpr.s6 gpr.s7 <br /> gpr.t8 gpr.t9<br /> gpr.k0 gpr.k1 <br /> gpr.gp gpr.sp gpr.fp gpr.ra <br /> gpr.lo gpr.hi gpr.sa<br /> <br /> example: eeObj.GetGpr(gpr.a1) &lt;/pre&gt;<br /> <br /> '''GetCPR0/SetCPR0<br /> '''<br /> &lt;pre&gt;cpr.index cpr.pagemask<br /> cpr.random cpr.wired <br /> cpr.entrylo0 cpr.badvaddr<br /> cpr.entrylo1 cpr.count <br /> cpr.context cpr.entryhi <br /> <br /> <br /> cpr.compare cpr.config cpr.taglo <br /> cpr.status cpr.badpaddr cpr.taghi <br /> cpr.cause cpr.hwbk cpr.errorepc<br /> cpr.epc cpr.pccr <br /> cpr.prid<br /> <br /> example: eeObj.GetCPR0(cpr.status) &lt;/pre&gt;<br /> <br /> ===SetGsTitleFix===<br /> <br /> One of very important commands in ps2 emu lua, allow to change GS behavior.<br /> Part of EmuObject() class, used frequently in official configs. <br /> &lt;br&gt;Example usage from official config files: https://pastebin.com/yf802Up3<br /> <br /> <br /> '''Commands''' <br /> <br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Notes<br /> |-<br /> |globalSet || used with workLoadThreshold or waveThreshold or loadThreshold<br /> |-<br /> |reserved ||<br /> |-<br /> |forceBiLinear ||<br /> |-<br /> |ignoreSubBuffCov|| ignore ? buffer coverage<br /> |-<br /> |trianglesAsParticles||<br /> |-<br /> |ignoreAreaUpdate||<br /> |-<br /> |SetSelfRender||<br /> |-<br /> |ignoreSprite||<br /> |-<br /> |clipScissors||<br /> |-<br /> |forcePoint||<br /> |-<br /> |forcePointSampling||<br /> |-<br /> |setRejectionArea||<br /> |-<br /> |ignoreUpRender|| Ignore uprender for texture type described in params<br /> |-<br /> |includeAreaUpdate||<br /> |-<br /> |forceSimpleFetch||<br /> |-<br /> |fetchFromCurrBuff||<br /> |-<br /> |ignoreUpShiftTri||<br /> |-<br /> |skipPacked||<br /> |-<br /> |changeAlpha||<br /> |-<br /> |ignoreUpRenderTimeout||<br /> |-<br /> |}<br /> <br /> '''Arguments/variables<br /> '''<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Argument !! Notes<br /> |-<br /> |alpha_mask || <br /> |-<br /> |alphaIsNot || alpha - is not X<br /> |-<br /> |texMode || 1 - Point? , 2 - bilinear <br /> |-<br /> |twIsLess || texture width - is less than X<br /> |-<br /> |thIsLess || texture height - is less than X<br /> |-<br /> |twIsNot || texture width - is not X<br /> |-<br /> |thIsNot || texture width - is not X<br /> |-<br /> |psmIsNot || texture pixel storage format - is not X<br /> &lt;pre&gt;PSMCT32 = 0 PSMT4HL = 36<br /> PSMCT24 = 1 PSMT4HH = 44<br /> PSMCT16 = 2 PSMZ32 = 48<br /> PSMCT16S = 10 PSMZ24 = 49<br /> PSMT8 = 19 PSMZ16 = 50<br /> PSMT4 = 20 PSMZ16S = 58<br /> PSMT8H = 27 &lt;/pre&gt;<br /> |-<br /> |zmsk || Z (depth) draw mask<br /> &lt;pre&gt;update Z buffer = 0<br /> don't update Z buffer = 1<br /> <br /> When 1 depth test result will be ignored&lt;/pre&gt;<br /> |-<br /> |tw || texture width<br /> |-<br /> |th || texture height<br /> |-<br /> |ztst || Z (depht) test method<br /> &lt;pre&gt;ZNOUSE = 0<br /> ZALWAYS = 1<br /> ZGEQUAL = 2<br /> ZGREATER = 3<br /> <br /> 0 - All pixels fail<br /> 1 - All pixels pass<br /> 2 - Pass if Z grater or equal to Z buffer<br /> 3 - Pass if Z grater than Z buffer&lt;/pre&gt;<br /> |-<br /> |mipIsGt || mip level is grater than X (?)<br /> |-<br /> |mmin || MMIN flag <br /> &lt;pre&gt;NEAREST = 0<br /> LINEAR = 1<br /> NEAREST_MIPMAP_NEAREST = 2<br /> NEAREST_MIPMAP_LINEAR = 3<br /> LINEAR_MIPMAP_NEAREST = 4<br /> LINEAR_MIPMAP_LINEAR = 5&lt;/pre&gt;<br /> |-<br /> |prim || GS primitive type <br /> &lt;pre&gt;Point = 0<br /> Line = 1<br /> LineStrip = 2<br /> Triangle = 3<br /> TriangleStrip = 4<br /> TriangleFan = 5<br /> Sprite = 6&lt;/pre&gt;<br /> |-<br /> |primIsNot || GS primitive type - is not<br /> &lt;pre&gt;Point = 0<br /> Line = 1<br /> LineStrip = 2<br /> Triangle = 3<br /> TriangleStrip = 4<br /> TriangleFan = 5<br /> Sprite = 6&lt;/pre&gt;<br /> |-<br /> |fillArea || <br /> |-<br /> |frameW || <br /> |-<br /> |renderSelf || <br /> |-<br /> |hasClut || <br /> |-<br /> |alphaTest || <br /> |-<br /> |primTest || <br /> |-<br /> |workLoadThreshold || <br /> |-<br /> |alpha || &lt;pre&gt; example: alpha=0x80000044<br /> alpha=0&lt;/pre&gt;<br /> |-<br /> |texType || (1-3, more? )<br /> |-<br /> |tbp || texture base pointer<br /> |-<br /> |cbp || CLUT buffer base pointer<br /> |-<br /> |psm || texture pixel storage format<br /> &lt;pre&gt;PSMCT32 = 0 PSMT4HL = 36<br /> PSMCT24 = 1 PSMT4HH = 44<br /> PSMCT16 = 2 PSMZ32 = 48<br /> PSMCT16S = 10 PSMZ24 = 49<br /> PSMT8 = 19 PSMZ16 = 50<br /> PSMT4 = 20 PSMZ16S = 58<br /> PSMT8H = 27 &lt;/pre&gt;<br /> |-<br /> |mxl || maximum mip level (0-6)<br /> |-<br /> |fbmask || ? <br /> |-<br /> |totalArea || <br /> |-<br /> |packedRegs || <br /> |-<br /> |packedRegsLo || <br /> |-<br /> |packedRegsHi || <br /> |-<br /> |packedRegsNum || <br /> |-<br /> |packedFlags || <br /> |-<br /> |packedPrim || <br /> |-<br /> |areaNumFrames || <br /> |-<br /> |waveThreshold || <br /> |-<br /> |loadThreshold || <br /> |-<br /> |fixSpriteDivTab || <br /> |}<br /> <br /> ===Example configs===<br /> <br /> ====Official example====<br /> &lt;pre&gt;<br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> eeInsnReplace(0x13BCD0, 0x3c023f80, 0x3C023F40) -- Zoom<br /> eeInsnReplace(0x1153B4, 0x3c023f80, 0x3C023FAB) -- Y-FOV<br /> <br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9 <br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Custom config.lua example====<br /> <br /> Here is the first custom lua config created by the community:<br /> <br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix black screen SLUS-20064<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100ffff, 0x00000000) -- bc0f 0x1CF3CC to nop<br /> &lt;/pre&gt;<br /> <br /> This is very basic command to replace part of EE memory with other instruction. <br /> * apiRequest(0.1) - Is required for every config. Used version depend on your original eboot highest supported api. 0.1 seems to be enough for basic patches like here. 0.4 is highest known for now. <br /> * -- Fix black screen SLUS-20064 is comment<br /> * eeInsnReplace(0x1CF3CC, 0x4100ffff, 0x00000000) is our true command here. We are replacing here 0x4100FFFF to 0x00000000 at 0x1CF3CC memory offset. Like you can see we need to add what opcode is replaced. Not only patch, and memory offset.<br /> * -- bc0f 0x1CF3CC to nop is just another comment, in this case explaining what is changed<br /> <br /> ==PS3 Config support==<br /> <br /> Emulator support configs in format known from ps2_netemu/ps2classic from PS3. This feature was officially used in Arc the Lad Twilight of the Spirits ps2-ps4 classic.&lt;br/&gt;<br /> To enable ps3 style config add this to config-emu-ps4.txt:<br /> <br /> *--lopnor-config=1<br /> *--ps2-title-id=TITLE-ID<br /> <br /> Config file need to be in folder ...'''/patches/{TITLE-ID}/''' and file need to have name '''{TITLE-ID}_lopnor.cfgbin'''. title id need to be in XXXX-YYYYY format (ex. SLUS-12345). <br /> &lt;br&gt;Example path: /patches/SLUS-12345/SLUS-12345_lopnor.cfgbin<br /> &lt;br&gt;Tester confirmed that configs work like that. We don't even need to edit them, they work as is.<br /> <br /> <br /> '''Config repository:''' https://github.com/Zarh/ManaGunZ/tree/master/pkgfiles/USRDIR/sys/CONFIG<br /> Just download as raw file, and rename correctly.<br /> <br /> Note that not all configs will be supported. Tested are ICE AGE 2, and DOA2, work fine, Rayman config not work due to unsupported command.<br /> Please keep in mind that not all commands seems to be recognized, good candidates are configs with [Net] Command ID : 0xZZ<br /> where 0xZZ is 0x01 (not sure about that one), 0x09, 0x0A, 0x0B, 0x0F, 0x10, 0x26, 0x27<br /> You can check that here, but sadly only for GX/SOFT configs (most of overall anyway): https://github.com/Zarh/Get_CONFIG/blob/master/log.txt<br /> *More about PS3 style configs/commands: https://www.psdevwiki.com/ps3/PS2_Emulation#Game_CONFIG<br /> *Log from loading that kind of config: https://pastebin.com/ZpUyU8DE<br /> <br /> = PS2 Bios =<br /> <br /> ==Description==<br /> <br /> The PS2 bios is the file '''PS20220WD20050620.crack''' included in every PS2 game .pkg. It Is '''exactly''' the same BIOS that Sony used in ps2_netemu.self in PS3. Due to lack of many X modules homebrew compatibility is limited, and many of those need to be recompiled to use non X versions of modules, or need to load open source versions of them thru mc/cdvd. Important non X module that is missing is libsd, and homebrew that need it, will most likely fail to boot, or error.<br /> &lt;br&gt;Bios is know to blacklist some titles, and refuse to boot them. This include all titles with 00000000 000000A0 flag from that [[PS2_Emulation#Game_ID/DiscID in PS20220WD20050620.crack | list (click here)]]<br /> <br /> Bios version seems to be Developement v2.20 from Japan region (22/01/2007), but it's of course not limited to booting only NTSC-J games.<br /> Emulator not support USB peripherals, but this seems to be not limitation of BIOS, as it is used also in CECH C/E PS3 consoles. <br /> There are signs that different bios version exist, named PS20190AC20030623_nordram_miniOSD.bin. This bios have included handy extensions for debugging, and can debug print with &quot;debug osd verbosity&quot; from CLI set to &quot;verbose&quot;. Most noticeable difference for both bios files seems to be special RDRAM module. <br /> &lt;br&gt;<br /> &lt;br&gt;'''PS20220WD20050620.crack file MD5: 83AD2B530C9C102A561BA1CDC6D996D5'''<br /> <br /> ==Files inside ROM image==<br /> <br /> {| class=&quot;wikitable&quot; style=&quot;font-size:small;&quot;<br /> ! File !! Offset in exported bin !! Description !! File type (exportable)<br /> |-<br /> | RESET || 0x00 || Bootstrap code for the EE and IOP. || BIN<br /> |-<br /> | ROMDIR || 0x2780 || The ROMDIR part of the ROM image, which provides information on the location and name of files contained in the image. || BIN<br /> |-<br /> | EXTINFO || 0x2CC0 || Contains the &quot;EXTINFO&quot; for all files in the ROM image. || BIN<br /> |-<br /> | SBIN || 0x3330 || Seems to be the pad controller library for the PS1 monitor. || BIN<br /> |-<br /> | LOGO || 0xA2D0 || PS1 logo? || BIN<br /> |-<br /> | IOPBTCONF || 00x1EA20 || Boot configuration file for the IOP, during the final phase of the IOP reset. If no UDNL module is specified, the IOP will only have a single IOP reset in the reboot process, with the modules listed in IOPBTCONF. || BIN<br /> |-<br /> | IOPBTCON2 || 0x1EB10 || Boot configuration file for the IOP, for the first phase of the IOP reset (before UDNL is loaded). || BIN<br /> |-<br /> | SYSMEM || 0x1EBE0 || System Memory Manager. || ELF<br /> |-<br /> | LOADCORE || 0x1FE00 || The core of IOP module loading. Provides the lowest level of IOP module loading functions. Also handles the startup of the IOP. || ELF<br /> |-<br /> | EXCEPMAN || 0x22380 || Exception manager. || ELF<br /> |-<br /> | INTRMANP || 0x22F60 || Interrupt Manager. According to wisi, it is for PS mode. || ELF<br /> |-<br /> | INTRMANI || 0x24970 || Interrupt Manager. According to wisi, it is for IOP mode. || ELF<br /> |-<br /> | SSBUSC || 0x267B0 || SSBUS Controller library. The SSBUS seems to be the bus that all peripherals get connected to. It seems to have the power to control the mapping of the device registers, as well as access timing. || ELF<br /> |-<br /> | TIMEMANP || 0x26F20 || Timer Manager (PS mode) || ELF<br /> |-<br /> | TIMEMANI || 0x27B00 || Timer Manager (IOP mode) || ELF<br /> |-<br /> | DMACMAN || 0x28730 || DMA Controller Manager. || ELF<br /> |-<br /> | SYSCLIB || 0x2BE30 || System C Library. || ELF<br /> |-<br /> | HEAPLIB || 0x2E590 || Memory HEAP LIBrary (i.e. thvpool, thfpool) || ELF<br /> |-<br /> | THREADLIB || 0x2F290 || Multi_Thread_Manager || ELF<br /> |-<br /> | VBLANK || 0x38020 || V-Blank management || ELF<br /> |-<br /> | IOMAN || 0x38DB0 || IO Manager || ELF<br /> |-<br /> | MODLOAD || 0x3AD20 || IOP module loader. || ELF<br /> |-<br /> | ROMDRV || 0x3D070 || ROM driver. Provides access to the boot ROM (rom0). || ELF<br /> |-<br /> | ADDDRV || 0x3DF60 || Adds support for the DVD ROM (rom1:), via ROMDRV. || ELF<br /> |-<br /> | STDIO || 0x3D3C0 || Standard I/O library. || ELF<br /> |-<br /> | SIFMAN || 0x3EFB0 || SIF manager. || ELF<br /> |-<br /> | SIFINIT || 0x40550 || Initializes the SIF. || ELF<br /> |-<br /> | EESYNC || 0x40970 || For synchronizing with the EE, at the end of IOP resets. EESYNC from DNAS images are evil; they also perform a memory wipe of the region from 0x00084000 to .0x00100000. || ELF<br /> |-<br /> | EENULL || 0x40E10 || The idle thread (id #0) module, in ps2 loaded to 0x00081FC0. || BIN<br /> |-<br /> | PS1ID || 0x40E50 || Only found in newer boot ROMs || BIN<br /> |-<br /> | LIBFI || 0x40E60 || Not present in the boot ROM of the SCPH-10000 and SCPH-15000. || BIN<br /> |-<br /> | PS1VERJ || 0x40F50 || || BIN<br /> |-<br /> | PS1VERA || 0x40F60 || || BIN<br /> |-<br /> | PS1VERE || 0x40F70 || || BIN<br /> |-<br /> | PS1VERC || 0x40F80 || || BIN<br /> |-<br /> | PS1VERH || 0x40F90 || || BIN<br /> |-<br /> | OSDSYS || 0x40FA0 || The browser || BIN<br /> |-<br /> | - || 0x40FB0 || || BIN<br /> |-<br /> | RDRAM || 0x41000 || Provides a RDRAM test for the EE at power-on. This is run from RESET. || BIN<br /> |-<br /> | EELOADCNF || 0x43D50 || Contains the IOP boot configuration file for EELOAD. || BIN<br /> |-<br /> | SIFCMD || 0x43F00 || SIF command module. Contains the SIF command and SIF RPC functions. || ELF<br /> |-<br /> | REBOOT || 0x46140 || The reboot service. Receives IOP reset packets from the EE, from across the SIF. || ELF<br /> |-<br /> | LOADFILE || 0x46910 || The RPC server for MODLOAD || ELF<br /> |-<br /> | EECONF || 0x49070 || Loads part of the system configuration from the MECHACON EEPROM. Also configures and resets some peripherals, depending on the model version. In slimlines, and possibly on PS3 EECONF will also load the MAC address. || ELF<br /> |-<br /> | - || 0x49FF0 || || BIN<br /> |-<br /> | IOPBOOT || 0x4A000 || IOP bootup program || BIN<br /> |-<br /> | - || 0x4B160 || || BIN<br /> |-<br /> | TBIN || 0x4B800 || The PS1 monitor program. Seems to be the PS1 BIOS. This is started by RESET, when the IOP is in PS1 mode. || BIN<br /> |-<br /> | XSHA1 || 0x59770 || sha1 - this only present in PS3. It is used as additional antipiracy check. It seems that it calculate disc main elf checksum and compares it with some database. Config related?|| ELF<br /> |-<br /> | XLOADFILE || 0x5A740 || Updated module || ELF<br /> |-<br /> | SIO2MAN || 0x5D7F0 || SIO2 manager. Provides access to the SIO2 interface. || ELF<br /> |-<br /> | - || 0x5F420 || || BIN<br /> |-<br /> | MCSERV || 0x61340 || RPC server for MCMAN. || ELF<br /> |-<br /> | - || 0x63040 || || BIN<br /> |-<br /> | KROMG || 0x64000 || || BIN<br /> |-<br /> | - || 0x65CC0 || || BIN<br /> |-<br /> | KROM || 0x66000 || Kanji ROM? Not sure where this is used. || BIN<br /> |-<br /> | - || 0x7FE70 || || BIN<br /> |-<br /> | ROMVER || 0x7FF00 || ROM version. || BIN<br /> |-<br /> | - || 0x7FF10 || || BIN<br /> |-<br /> | VERSTR || 0x7FF30 || Version string. Probably PS1 ROM will use this because that this string is also present in PlayStation consoles. || BIN<br /> |-<br /> | - || 0x7FF90 || || BIN<br /> |-<br /> | ROMGSCRT || 0x80000 || || BIN<br /> |-<br /> | NCDVDMAN || 0x82D30 || It seems to be a heavily stripped-down CDVDMAN module, with no support for some S-command functions like sceCdRI. || ELF<br /> |-<br /> | SECRMAN || 0x8F770 || Security Manager. Signing is NOT done with the one in ROM, but with a special version that comes with the utility discs. Looks like PS3 units have a different SECRMAN module from retail sets, similar to PS2 TOOL one. || ELF<br /> |-<br /> | MCMAN || 0x93C30 || Memory Card Manager. || ELF<br /> |-<br /> | PADMAN || 0xA30C0 || Pad manager. || ELF<br /> |-<br /> | CDVDMAN || 0xAC810 || The CD/DVD manager. || ELF<br /> |-<br /> | CDVDFSV || 0xB4BC0 || The RPC server for CDVDMAN. || ELF<br /> |-<br /> | FILEIO || 0xBCF80 || RPC server for IOMAN. Sony has greatly changed the semantics and design of FILEIO after some point. Connecting an old FILEIO EE RPC client to a newer server will result in a severe IOP crash. || ELF<br /> |-<br /> | CLEARSPU || 0xBF080 || Seems to clear/reset the SPU, but is known to cause crashes under some conditions. Not sure if it's buggy or not. Only used by the OSDSYS of the SCPH-10000 and SCPH-15000, probably retained for backward-compatibility. || ELF<br /> |-<br /> | UDNL || 0xC0CC0 || It is responsible for selecting the modules and starting the IOP, during the final phase of the IOP reset where the desired modules are to be loaded into the IOP. || ELF<br /> |-<br /> | IGREETING || 0xC2BC0 || Displays boot information (i.e. IOP boot type, EBOOTP, IBOOTP, switch positions for DSW602 and the type of DSW602 board installed || ELF<br /> |-<br /> | EELOAD || 0xC3C20 || The EE ELF loader, which is loaded by LoadExecPS2() to 0x00082000 in PS2 for loading ELFs. || BIN<br /> |-<br /> | XCDVDMAN || 0xD2DA0 || cdvd_driver - Updated module || ELF<br /> |-<br /> | XCDVDFSV || 0xE1B30 || cdvd_ee_driver - Updated module || ELF<br /> |-<br /> | OSDSND || 0xEFF60 || OSD sound library. This is actually the tentative sound driver, which is called &quot;librspu2&quot; in the Sony SDK. || ELF<br /> |-<br /> | PS2LOGO || 0x11ABB0 || Displays the PlayStation 2 logo from the inserted disc. For newer consoles, if the logo cannot be decrypted properly, it will fall back to the browser. Not actually required to boot games, but the Sony OSDSYS boots PS2 games through this program. || ELF<br /> |-<br /> | XPARAM2 || 0x137500 || File store per title settings for IOP emulation (XPARAM available also in real PS2 since 750XX where Deckard powerPC was introduced) || ELF<br /> |-<br /> | OSDSYS || 0x139A00 || The browser || BIN<br /> |-<br /> | PIOPRP || 0x177880 || Present in the PS3 ps2_(gx/soft/net)emu; contains version 3.1.0 of the IOP software (compared to version 1.3.4 on the root). || BIN<br /> |-<br /> | KERNEL || 0x1BB7E0 || The EE kernel || BIN<br /> |}<br /> Description source: https://gist.github.com/uyjulian/25291080f083987d3f3c134f593483c5<br /> <br /> == Game_ID/DiscID in PS20220WD20050620.crack ==<br /> <br /> There are 193 titleIDs listed inside XPARAM2.ELF file of PS2 Bios included in PS20220WD20050620.crack. XPARAM2.ELF is called by OSDSYS, then ID check is performed. If titleID match to one of included in the table, different IOP emulation settings are applied. This include blacklisting for some specific titles. <br /> <br /> Original PS2 bios from models with emulated IOP, include similar list file called XPARAM.ELF. Title IDs there are not the same, although some of them exist on both lists.<br /> <br /> {| class=&quot;wikitable sortable&quot; || <br /> |- <br /> ! Command !! Name<br /> |-<br /> | 0x00 || TITLE_MASK <br /> |-<br /> | 0x01 || SIO2_MASK<br /> |-<br /> | 0x02 || DEV9_MASK<br /> |-<br /> | 0x03 || USB_MASK<br /> |-<br /> | 0x04 || SIF_DMA_SYNC<br /> |-<br /> | 0x05 || SIF_DMA_LOAD<br /> |-<br /> | 0x06 || DMAC_CH10_INT_DELAY<br /> |-<br /> | 0x07 || MECHA_RECOGTIME<br /> |-<br /> | 0x08 || CPU_DELAY<br /> |-<br /> | 0x09 || DEV5_INT_SPEED<br /> |-<br /> | 0x0A || CDVD_READ_DELAY<br /> |-<br /> | 0x0B || SPU2_BEHAVIOR<br /> |-<br /> |}<br /> <br /> {| class=&quot;wikitable sortable&quot; || <br /> |- <br /> ! ID !! Title !! Command !! Value !! Remarks <br /> |- <br /> |PBPX_952.01 || DVD Utility Disc Version 1.00 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.02 || DVD Utility Disc Version 1.01 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.03 || DVD Utility Disc Version 1.01 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.06 || DVD Player (Version 2.01) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.07 || DVD Player (Version 2.10) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.08 || DVD Player (Version 2.10) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.09 || DVD Player (Version 2.10) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.10 || DVD Utility Disc Version 2.10 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.11 || DVD Utility Disc Version 1.00 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.21 || DVD Player (Version 2.12) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.22 || DVD Player (Version 2.14) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.24 || DVD Player (Version 2.16) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.28 || || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.35 || || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.39 || Online Start Up Disc v3.0 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_955.01 || Linux for PS2 Beta Release 1 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_955.07 || Playstation 2 Linux Runtime Environment v1.0 (Disc 1) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_955.09 || Linux for PS2 Release 1.0 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_955.18 || || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PDPX_991.09 || DVD Player (Version 3.04) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PSXC_002.01 || PSX Update Disc 1.10 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PSXC_002.02 || PSX Update Disc 1.20 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PSXC_002.03 || PSX Update Disc 1.31 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PTPX_970.38 || || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCAJ_201.25 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCAJ_201.26 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCES_532.02 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCKA_200.49 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCPM_621.15 || || 0x00 || 0x1000000 || TITLE_MASK<br /> |-<br /> |SCPM_621.16 || || 0x00 || 0x1000000 || TITLE_MASK<br /> |-<br /> |SCPN_601.01 || PlayStation BB Navigator (Version 0.10) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPN_601.30 || PlayStation BB Navigator (Version 0.20) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPN_601.40 || PlayStation BB Navigator (Version 0.30) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPN_601.50 || PlayStation BB Navigator (Version 0.31) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPN_601.60 || PlayStation BB Navigator (Version 0.32) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPS_110.01 || I.Q. Remix || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPS_110.10 || Yoake no Mariko (Performance Pack Edition) || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SCPS_110.18 || Yoake no Mariko || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SCPS_110.21 || Yoake no Mariko 2nd Act (Limited Edition) || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SCPS_110.22 || Yoake no Mariko 2nd Act || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SCPS_150.38 || Lifeline || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SCPS_150.39 || Lifeline || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SCPS_170.01 || Gran Turismo 4 || 0x0B || 0x10000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCPS_175.01 || Linux (for PlayStation2) Release 1.0 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPS_200.39 || || 0x00 || 0x4000000 || TITLE_MASK<br /> |-<br /> |SCUS_971.67 || PaRappa the Rapper 2 || 0x04 || 0x2000 || SIF_DMA_SYNC<br /> |-<br /> |SCUS_972.69 || Final Fantasy XI [Disc 2] || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLES_500.48 || Donald Duck: Quack Attack || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_500.62 || Orphen: Scion of Sorcery || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLES_503.64 || City Crisis || 0x0A || 0x80BB8 || CDVD_READ_DELAY<br /> |-<br /> |SLES_504.46 || Shadow Man 2: The Second Coming || 0x0A || 0x80600 || CDVD_READ_DELAY<br /> |-<br /> |SLES_505.40 || Simpsons: Road Rage || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_506.08 || Shadow Man 2: The Second Coming || 0x0A || 0x80600 || CDVD_READ_DELAY<br /> |-<br /> |SLES_506.28 || Simpsons: Road Rage || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_507.28 || Tiger Woods PGA Tour 2002 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLES_507.29 || || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLES_512.82 || Tiger Woods PGA Tour 2003 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLES_514.79 || Def Jam Vendetta || 0x01 || 0x802 || SIO2_MASK<br /> |-<br /> |SLES_518.41 || SpyHunter 2 || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_518.44 || Time Crisis 3 || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_519.97 || SWAT: Global Strike Team || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_520.97 || SWAT: Global Strike Force || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_530.37 || Super Monkey Ball Deluxe || 0x01 || 0x802 || SIO2_MASK<br /> |-<br /> |SLES_536.68 || Micro Machines v4 || 0x01 || 0x801 || SIO2_MASK<br /> |-<br /> |SLES_537.55 || Castlevania: Curse of Darkness || 0x04 || 0x10 || SIF_DMA_SYNC<br /> |-<br /> |SLES_537.96 || FIFA Street 2 || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPM_620.42 || Kurogane no Houkou: Warship Commander || 0x01 || 0x3000 || SIO2_MASK<br /> |-<br /> |SLPM_620.62 || Gitaroo Man One || 0x0A || 0x80540 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_621.05 || Taikou Risshiden IV || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPM_621.24 || Ready 2 Rumble Boxing: Round 2 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_621.25 || Gauntlet: Dark Legacy || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLPM_621.25 || Gauntlet: Dark Legacy || 0x09 || 0x2B470005 || DEV5_INT_SPEED<br /> |-<br /> |SLPM_621.35 || Final Fantasy: XI (Beta Version) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SLPM_621.54 || DDRMAX Dance Dance Revolution 6thMix || 0x08 || 0x1A5E || CPU_DELAY<br /> |-<br /> |SLPM_622.39 || Supercar Street Challenge || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_623.69 || Karaoke Revolution: J-Pop Vol.1 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.79 || Karaoke Revolution: J-Pop Vol.2 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.80 || Karaoke Revolution: J-Pop Vol.3 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.81 || Karaoke Revolution: J-Pop Vol.4 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.82 || Karaoke Revolution: Love &amp; Ballad || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.83 || Karaoke Revolution: Night Selection 2003 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.14 || Karaoke Revolution: Dreams &amp; Memories || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.37 || Suisui Sweet: Amai Ai no Mitsukekata || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_624.50 || Karaoke Revolution: Anime Song Selection || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.51 || Karaoke Revolution: J-Pop Vol.5 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.54 || Karaoke Revolution: J-Pop Vol.6 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.55 || Karaoke Revolution: J-Pop Vol.7 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.56 || Karaoke Revolution: J-Pop Vol.8 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.57 || Karaoke Revolution: Snow &amp; Party || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.64 || Pop'n Taisen Pazurudame Online || 0x08 || 0x1F40 || CPU_DELAY<br /> |-<br /> |SLPM_624.79 || Karaoke Revolution: J-Pop Vol.9 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.91 || Mega Man: The Power Battle || 0x04 || 0x2000 || SIF_DMA_SYNC<br /> |-<br /> |SLPM_624.92 || Karaoke Revolution: Kids Song Selection || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_625.28 || Karaoke Revolution: Kazoku Idol Sengen (Bundle Edition) || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_625.29 || Karaoke Revolution: Kazoku Idol Sengen || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_650.86 || A Visual Mix: Ayumi Hamasaki Dome Tour 2001 (Disc 1) || 0x08 || 0x1450 || CPU_DELAY<br /> |-<br /> |SLPM_650.87 || A Visual Mix: Ayumi Hamasaki Dome Tour 2001 (Disc 2) || 0x08 || 0x1450 || CPU_DELAY<br /> |-<br /> |SLPM_650.90 || Spy Hunter || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPM_651.97 || Nobunaga's Ambition Online || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_652.09 || Star Ocean: Till the End of Time || 0x0B || 0x20014 || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_654.38 || Star Ocean: Till the End of Time (Director's Cut) (Disc 1) || 0x0B || 0x20014 || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_654.39 || Star Ocean: Till the End of Time (Director's Cut) (Disc 2) || 0x0B || 0x20014 || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_654.88 || Grand Theft Auto: Vice City || 0x0A || 0x300 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_654.88 || Grand Theft Auto: Vice City || 0x09 || 0x36000200 || DEV5_INT_SPEED<br /> |-<br /> |SLPM_656.33 || I Love Baseball: Pro Yakyu wo Koyonaku || 0x08 || 0xFA0 || CPU_DELAY<br /> |-<br /> |SLPM_656.98 || Love Songs: ADV Futaba Riho 14-sai Natsu || 0x0A || 0x80380 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_657.05 || Final Fantasy XI: Chains of Promathia (Expansion Disc) || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_657.06 || Final Fantasy XI: Chains of Promathia (All-In-One Edition) || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_657.19 || Burnout 3: Takedown || 0x01 || 0x1C00 || SIO2_MASK<br /> |-<br /> |SLPM_657.83 || Nobunaga no Yabou Online: Tappi no Shou || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_658.94 || Winning Post 6: 2005 Version || 0x01 || 0x2400 || SIO2_MASK<br /> |-<br /> |SLPM_659.34 || Maple Colors || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_659.53 || Final Fantasy: XI (Entry Disc 2005) || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_659.84 || Grand Theft Auto: San Andreas || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_660.33 || The Sword of Etheria || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLPM_660.33 || The Sword of Etheria || 0x00 || 0x2000000 || TITLE_MASK<br /> |-<br /> |SLPM_660.48 || The Sword of Etheria || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLPM_660.48 || The Sword of Etheria || 0x00 || 0x2000000 || TITLE_MASK<br /> |-<br /> |SLPM_660.57 || Taito Memories Vol.1 || 0x08 || 0xCE4 || CPU_DELAY<br /> |-<br /> |SLPM_661.56 || Marheaven: Arm Fight Dream || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPM_661.75 || Akumajo Dracula: Yami no Juin || 0x08 || 0x60 || CPU_DELAY<br /> |-<br /> |SLPM_661.75 || Akumajo Dracula: Yami no Juin || 0x0B || 0x2001C || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_663.93 || Final Fantasy XI: Treasures of Aht Urhgan (All-In-One Edition) || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_663.93 || Final Fantasy XI: Treasures of Aht Urhgan (All-In-One Edition) || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPM_663.93 || Final Fantasy XI: Treasures of Aht Urhgan (All-In-One Edition) || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_663.94 || Final Fantasy XI: Treasures of Aht Urhgan || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_664.36 || Aria the Natural || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPM_664.36 || Aria the Natural || 0x00 || 0xA000000 || TITLE_MASK<br /> |-<br /> |SLPM_665.39 || Nobunaga no Yabou Online: Haten no Shou || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_665.58 || Tomb Raider: Legend || 0x08 || 0x3E8 || CPU_DELAY<br /> |-<br /> |SLPM_665.74 || Detective Evangelion || 0x00 || 0x2000000 || TITLE_MASK<br /> |-<br /> |SLPM_680.07 || Karaoke Revolution (Trial) || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_680.10 || || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPS_200.08 || Morita Shogi || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPS_200.20 || FIFA 2000 World Championship || 0x04 || 0x2001 || SIF_DMA_SYNC<br /> |-<br /> |SLPS_200.37 || Go Go Golf || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPS_200.38 || Grappler Baki: Baki Saidai no Tournament || 0x08 || 0x1194 || CPU_DELAY<br /> |-<br /> |SLPS_200.53 || Tenshi no Present: Marle Oukoku Monogatari (Limited Edition) || 0x0B || 0x20000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_200.66 || Tenshi no Present: Marle Oukoku Monogatari || 0x0B || 0x20000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_201.01 || City Crisis || 0x0A || 0x80BB8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_201.11 || Magical Sports Pro Baseball 2001 || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPS_201.72 || Koushien: Konpeki no Sora || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPS_201.73 || Hard Hitter 2 || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_201.97 || Surfing Air Show with RatBoy || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPS_201.99 || F1 2002 || 0x0B || 0x20005 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_202.00 || Final Fantasy XI || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPS_204.04 || Rakushou! Pachi-Slot Sengen 2 || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_204.29 || Hissatsu Pachi-Slot Evolution: Ninja Hattori-Kun V || 0x08 || 0x1B58 || CPU_DELAY<br /> |-<br /> |SLPS_204.55 || Simple 2000 Series Vol.94: The Aka-Champion - Come on Baby || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_250.08 || Sorcerous Stabber Orphen || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLPS_250.71 || A Visual Mix: Ayumi Hamasaki Dome Tour 2001 || 0x08 || 0x1450 || CPU_DELAY<br /> |-<br /> |SLPS_250.72 || A Visual Mix: Ayumi Hamasaki Dome Tour 2001 || 0x08 || 0x1450 || CPU_DELAY<br /> |-<br /> |SLPS_250.81 || Saishuu Densha || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_251.36 || Kuon no Kizuna Sairin Mikotonori || 0x0A || 0x805DC || CDVD_READ_DELAY<br /> |-<br /> |SLPS_251.42 || Tiger Woods PGA Tour 2002 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_251.50 || Only You || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_252.37 || Only You || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_252.75 || Def Jam: Vendetta || 0x01 || 0x802 || SIO2_MASK<br /> |-<br /> |SLPS_252.78 || Memories Off: Mix || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_252.90 || Time Crisis 3 || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLPS_253.15 || One Piece: Grand Battle 3 || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPS_253.57 || 3-Nen B-Gumi Kinpachi Sensei: Densetsu no Kyoudan ni Tate! || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPS_253.79 || Tokyo Majin Gakuen: Kaihoujyou Kefurokou || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_254.06 || Hitman: Contracts || 0x08 || 0xDAC || CPU_DELAY<br /> |-<br /> |SLPS_254.18 || Ace Combat 5: The Unsung War || 0x0A || 0x500000 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_255.10 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_255.85 || Monster Farm 5: Circus Caravan || 0x07 || 5 || MECHA_RECOGTIME<br /> |-<br /> |SLPS_255.86 || Tales of the Abyss || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_256.04 || Ar tonelico Qoga: Knell of Ar Ciel || 0x00 || 0xA000000 || TITLE_MASK<br /> |-<br /> |SLPS_256.67 || Daito Giken Premium Pachi-Slot Collection: Yoshimune || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPS_256.98 || Fatal Fury Battle Archives Volume 2 || 0x00 || 0xA000000 || TITLE_MASK<br /> |-<br /> |SLPS_257.08 || The Familiar of Zero (Limited Edition) || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_257.09 || The Familiar of Zero || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_257.21 || HimeHibi - Princess Days || 0x0B || 0x8000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_257.22 || Routes PE (Limited Edition) || 0x08 || 0x3E8 || CPU_DELAY<br /> |-<br /> |SLPS_257.27 || Routes PE || 0x08 || 0x3E8 || CPU_DELAY<br /> |-<br /> |SLPS_732.49 || Ar tonelico Qoga: Knell of Ar Ciel (Platinum) || 0x00 || 0xA000000 || TITLE_MASK<br /> |-<br /> |SLUS_200.11 || Orphen: Ocion of Sorcery || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLUS_200.11 || Orphen: Ocion of Sorcery || 0x09 || 0x8000010 || DEV5_INT_SPEED<br /> |-<br /> |SLUS_200.77 || Donald Duck: Go'in Quackers || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_202.74 || City Crisis || 0x0A || 0x80BB8 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_203.05 || Simpsons: Road Rage || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_203.64 || Tiger Woods PGA Tour 2002 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_204.13 || Shadowman 2 || 0x0A || 0x80600 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_204.33 || SWAT: Global Strike Team || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_204.88 || Star Ocean: Til the end of Time [Disc 1] || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLUS_205.72 || Tiger Woods PGA Tour 2003 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_205.90 || Spyhunter 2 || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_206.35 || Muppets Party Cruise || 0x01 || 0x801 || SIO2_MASK<br /> |-<br /> |SLUS_206.39 || Def Jam Vendetta || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_206.86 || Splashdown: Rides Gone Wild || 0x0A || 0x80400 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_208.38 || All-Star Baseball 2005 || 0x01 || 0x802 || SIO2_MASK<br /> |-<br /> |SLUS_208.51 || Ace Combat 5: The Unsung War || 0x0A || 0x500000 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_208.91 || Star Ocean: Til the end of Time [Disc 2] || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLUS_209.18 || Super Monkey Ball: Deluxe || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_210.59 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLUS_210.70 || Final Fantasy XI: Chains of Promathia || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLUS_210.89 || Karaoke Revolution Vol.3 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLUS_213.31 || Sonic Riders || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_213.39 || Puzzle Challenge || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_214.04 || Final Fantasy XI: Treasures of Aht Urhgan || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLUS_214.52 || Valkyrie Profile 2: Silmeria || 0x08 || 0x1388 || CPU_DELAY<br /> |- <br /> |}<br /> <br /> = Folder/File layout =<br /> <br /> Example: Max Payne Classic<br /> <br /> &lt;pre&gt;<br /> ├── config-emu-ps4.txt<br /> ├── docs<br /> │   └── revision.h<br /> ├── eboot.bin<br /> ├── feature_data<br /> │   └── SLES-50326_features.lua<br /> ├── formatted.card<br /> ├── image<br /> │   └── disc01.iso<br /> ├── lua_include<br /> │   ├── ee-cpr0-alias.lua<br /> │   ├── ee-gpr-alias.lua<br /> │   ├── ee-hwaddr.lua<br /> │   ├── language.lua<br /> │   ├── pad-and-key.lua<br /> │   ├── ps2.lua<br /> │   └── utils.lua<br /> ├── patches<br /> │   └── SLES-50326_cli.conf<br /> ├── PS20220WD20050620.crack<br /> ├── ps2-emu-compiler.self<br /> ├── sce_companion_httpd<br /> │   └── html<br /> │   ├── BackCover.jpg<br /> │   ├── base<br /> │   │   ├── arrow_up.png<br /> │   │   └── sprites.png<br /> │   ├── css<br /> │   │   ├── default-skin.png<br /> │   │   └── styles.min.css<br /> │   ├── index.html<br /> │   ├── js<br /> │   │   └── app.min.js<br /> │   ├── large<br /> │   │   ├── Box01.jpg<br /> │   │   ├── Box04.jpg<br /> │   │   ├── landscape<br /> │   │   │   ├── Box01.jpg<br /> │   │   │   ├── Box04.jpg<br /> │   │   │   ├── Page01.jpg<br /> │   │   │   ├── Page02.jpg<br /> │   │   │   ├── Page03.jpg<br /> │   │   │   ├── Page04.jpg<br /> │   │   │   ├── Page05.jpg<br /> │   │   │   ├── Page06.jpg<br /> │   │   │   ├── Page07.jpg<br /> │   │   │   ├── Page08.jpg<br /> │   │   │   ├── Page09.jpg<br /> │   │   │   ├── Page10.jpg<br /> │   │   │   ├── Page11.jpg<br /> │   │   │   ├── Page12.jpg<br /> │   │   │   ├── Page13.jpg<br /> │   │   │   ├── Page14.jpg<br /> │   │   │   ├── Page15.jpg<br /> │   │   │   ├── Page16.jpg<br /> │   │   │   ├── Page17.jpg<br /> │   │   │   ├── Page18.jpg<br /> │   │   │   ├── Page19.jpg<br /> │   │   │   ├── Page20.jpg<br /> │   │   │   ├── Page21.jpg<br /> │   │   │   ├── Page22.jpg<br /> │   │   │   ├── Page23.jpg<br /> │   │   │   ├── Page24.jpg<br /> │   │   │   ├── Page25.jpg<br /> │   │   │   ├── Page26.jpg<br /> │   │   │   ├── Page27.jpg<br /> │   │   │   ├── Page28.jpg<br /> │   │   │   ├── Page29.jpg<br /> │   │   │   ├── Page30.jpg<br /> │   │   │   ├── Page31.jpg<br /> │   │   │   ├── Page32.jpg<br /> │   │   │   ├── Page33.jpg<br /> │   │   │   ├── Page34.jpg<br /> │   │   │   ├── Page35.jpg<br /> │   │   │   ├── Page36.jpg<br /> │   │   │   ├── Page37.jpg<br /> │   │   │   ├── Page38.jpg<br /> │   │   │   ├── Page39.jpg<br /> │   │   │   ├── Page40.jpg<br /> │   │   │   ├── Page41.jpg<br /> │   │   │   ├── Page42.jpg<br /> │   │   │   ├── Page43.jpg<br /> │   │   │   ├── Page44.jpg<br /> │   │   │   ├── Page45.jpg<br /> │   │   │   ├── Page46.jpg<br /> │   │   │   ├── Page47.jpg<br /> │   │   │   ├── Page48.jpg<br /> │   │   │   ├── Page49.jpg<br /> │   │   │   ├── Page50.jpg<br /> │   │   │   ├── Page51.jpg<br /> │   │   │   ├── Page52.jpg<br /> │   │   │   ├── Page53.jpg<br /> │   │   │   ├── Page54.jpg<br /> │   │   │   ├── Page55.jpg<br /> │   │   │   ├── Page56.jpg<br /> │   │   │   ├── Page57.jpg<br /> │   │   │   ├── Page58.jpg<br /> │   │   │   └── Page59.jpg<br /> │   │   ├── Page01.jpg<br /> │   │   ├── Page02.jpg<br /> │   │   ├── Page03.jpg<br /> │   │   ├── Page04.jpg<br /> │   │   ├── Page05.jpg<br /> │   │   ├── Page06.jpg<br /> │   │   ├── Page07.jpg<br /> │   │   ├── Page08.jpg<br /> │   │   ├── Page09.jpg<br /> │   │   ├── Page100.jpg<br /> │   │   ├── Page101.jpg<br /> │   │   ├── Page102.jpg<br /> │   │   ├── Page103.jpg<br /> │   │   ├── Page104.jpg<br /> │   │   ├── Page105.jpg<br /> │   │   ├── Page106.jpg<br /> │   │   ├── Page107.jpg<br /> │   │   ├── Page108.jpg<br /> │   │   ├── Page109.jpg<br /> │   │   ├── Page10.jpg<br /> │   │   ├── Page110.jpg<br /> │   │   ├── Page111.jpg<br /> │   │   ├── Page112.jpg<br /> │   │   ├── Page113.jpg<br /> │   │   ├── Page114.jpg<br /> │   │   ├── Page115.jpg<br /> │   │   ├── Page116.jpg<br /> │   │   ├── Page11.jpg<br /> │   │   ├── Page12.jpg<br /> │   │   ├── Page13.jpg<br /> │   │   ├── Page14.jpg<br /> │   │   ├── Page15.jpg<br /> │   │   ├── Page16.jpg<br /> │   │   ├── Page17.jpg<br /> │   │   ├── Page18.jpg<br /> │   │   ├── Page19.jpg<br /> │   │   ├── Page20.jpg<br /> │   │   ├── Page21.jpg<br /> │   │   ├── Page22.jpg<br /> │   │   ├── Page23.jpg<br /> │   │   ├── Page24.jpg<br /> │   │   ├── Page25.jpg<br /> │   │   ├── Page26.jpg<br /> │   │   ├── Page27.jpg<br /> │   │   ├── Page28.jpg<br /> │   │   ├── Page29.jpg<br /> │   │   ├── Page30.jpg<br /> │   │   ├── Page31.jpg<br /> │   │   ├── Page32.jpg<br /> │   │   ├── Page33.jpg<br /> │   │   ├── Page34.jpg<br /> │   │   ├── Page35.jpg<br /> │   │   ├── Page36.jpg<br /> │   │   ├── Page37.jpg<br /> │   │   ├── Page38.jpg<br /> │   │   ├── Page39.jpg<br /> │   │   ├── Page40.jpg<br /> │   │   ├── Page41.jpg<br /> │   │   ├── Page42.jpg<br /> │   │   ├── Page43.jpg<br /> │   │   ├── Page44.jpg<br /> │   │   ├── Page45.jpg<br /> │   │   ├── Page46.jpg<br /> │   │   ├── Page47.jpg<br /> │   │   ├── Page48.jpg<br /> │   │   ├── Page49.jpg<br /> │   │   ├── Page50.jpg<br /> │   │   ├── Page51.jpg<br /> │   │   ├── Page52.jpg<br /> │   │   ├── Page53.jpg<br /> │   │   ├── Page54.jpg<br /> │   │   ├── Page55.jpg<br /> │   │   ├── Page56.jpg<br /> │   │   ├── Page57.jpg<br /> │   │   ├── Page58.jpg<br /> │   │   ├── Page59.jpg<br /> │   │   ├── Page60.jpg<br /> │   │   ├── Page61.jpg<br /> │   │   ├── Page62.jpg<br /> │   │   ├── Page63.jpg<br /> │   │   ├── Page64.jpg<br /> │   │   ├── Page65.jpg<br /> │   │   ├── Page66.jpg<br /> │   │   ├── Page67.jpg<br /> │   │   ├── Page68.jpg<br /> │   │   ├── Page69.jpg<br /> │   │   ├── Page70.jpg<br /> │   │   ├── Page71.jpg<br /> │   │   ├── Page72.jpg<br /> │   │   ├── Page73.jpg<br /> │   │   ├── Page74.jpg<br /> │   │   ├── Page75.jpg<br /> │   │   ├── Page76.jpg<br /> │   │   ├── Page77.jpg<br /> │   │   ├── Page78.jpg<br /> │   │   ├── Page79.jpg<br /> │   │   ├── Page80.jpg<br /> │   │   ├── Page81.jpg<br /> │   │   ├── Page82.jpg<br /> │   │   ├── Page83.jpg<br /> │   │   ├── Page84.jpg<br /> │   │   ├── Page85.jpg<br /> │   │   ├── Page86.jpg<br /> │   │   ├── Page87.jpg<br /> │   │   ├── Page88.jpg<br /> │   │   ├── Page89.jpg<br /> │   │   ├── Page90.jpg<br /> │   │   ├── Page91.jpg<br /> │   │   ├── Page92.jpg<br /> │   │   ├── Page93.jpg<br /> │   │   ├── Page94.jpg<br /> │   │   ├── Page95.jpg<br /> │   │   ├── Page96.jpg<br /> │   │   ├── Page97.jpg<br /> │   │   ├── Page98.jpg<br /> │   │   └── Page99.jpg<br /> │   ├── medium<br /> │   │   ├── Box01.jpg<br /> │   │   ├── Box04.jpg<br /> │   │   ├── landscape<br /> │   │   │   ├── Box01.jpg<br /> │   │   │   ├── Box04.jpg<br /> │   │   │   ├── Page01.jpg<br /> │   │   │   ├── Page02.jpg<br /> │   │   │   ├── Page03.jpg<br /> │   │   │   ├── Page04.jpg<br /> │   │   │   ├── Page05.jpg<br /> │   │   │   ├── Page06.jpg<br /> │   │   │   ├── Page07.jpg<br /> │   │   │   ├── Page08.jpg<br /> │   │   │   ├── Page09.jpg<br /> │   │   │   ├── Page10.jpg<br /> │   │   │   ├── Page11.jpg<br /> │   │   │   ├── Page12.jpg<br /> │   │   │   ├── Page13.jpg<br /> │   │   │   ├── Page14.jpg<br /> │   │   │   ├── Page15.jpg<br /> │   │   │   ├── Page16.jpg<br /> │   │   │   ├── Page17.jpg<br /> │   │   │   ├── Page18.jpg<br /> │   │   │   ├── Page19.jpg<br /> │   │   │   ├── Page20.jpg<br /> │   │   │   ├── Page21.jpg<br /> │   │   │   ├── Page22.jpg<br /> │   │   │   ├── Page23.jpg<br /> │   │   │   ├── Page24.jpg<br /> │   │   │   ├── Page25.jpg<br /> │   │   │   ├── Page26.jpg<br /> │   │   │   ├── Page27.jpg<br /> │   │   │   ├── Page28.jpg<br /> │   │   │   ├── Page29.jpg<br /> │   │   │   ├── Page30.jpg<br /> │   │   │   ├── Page31.jpg<br /> │   │   │   ├── Page32.jpg<br /> │   │   │   ├── Page33.jpg<br /> │   │   │   ├── Page34.jpg<br /> │   │   │   ├── Page35.jpg<br /> │   │   │   ├── Page36.jpg<br /> │   │   │   ├── Page37.jpg<br /> │   │   │   ├── Page38.jpg<br /> │   │   │   ├── Page39.jpg<br /> │   │   │   ├── Page40.jpg<br /> │   │   │   ├── Page41.jpg<br /> │   │   │   ├── Page42.jpg<br /> │   │   │   ├── Page43.jpg<br /> │   │   │   ├── Page44.jpg<br /> │   │   │   ├── Page45.jpg<br /> │   │   │   ├── Page46.jpg<br /> │   │   │   ├── Page47.jpg<br /> │   │   │   ├── Page48.jpg<br /> │   │   │   ├── Page49.jpg<br /> │   │   │   ├── Page50.jpg<br /> │   │   │   ├── Page51.jpg<br /> │   │   │   ├── Page52.jpg<br /> │   │   │   ├── Page53.jpg<br /> │   │   │   ├── Page54.jpg<br /> │   │   │   ├── Page55.jpg<br /> │   │   │   ├── Page56.jpg<br /> │   │   │   ├── Page57.jpg<br /> │   │   │   ├── Page58.jpg<br /> │   │   │   └── Page59.jpg<br /> │   │   ├── Page01.jpg<br /> │   │   ├── Page02.jpg<br /> │   │   ├── Page03.jpg<br /> │   │   ├── Page04.jpg<br /> │   │   ├── Page05.jpg<br /> │   │   ├── Page06.jpg<br /> │   │   ├── Page07.jpg<br /> │   │   ├── Page08.jpg<br /> │   │   ├── Page09.jpg<br /> │   │   ├── Page100.jpg<br /> │   │   ├── Page101.jpg<br /> │   │   ├── Page102.jpg<br /> │   │   ├── Page103.jpg<br /> │   │   ├── Page104.jpg<br /> │   │   ├── Page105.jpg<br /> │   │   ├── Page106.jpg<br /> │   │   ├── Page107.jpg<br /> │   │   ├── Page108.jpg<br /> │   │   ├── Page109.jpg<br /> │   │   ├── Page10.jpg<br /> │   │   ├── Page110.jpg<br /> │   │   ├── Page111.jpg<br /> │   │   ├── Page112.jpg<br /> │   │   ├── Page113.jpg<br /> │   │   ├── Page114.jpg<br /> │   │   ├── Page115.jpg<br /> │   │   ├── Page116.jpg<br /> │   │   ├── Page11.jpg<br /> │   │   ├── Page12.jpg<br /> │   │   ├── Page13.jpg<br /> │   │   ├── Page14.jpg<br /> │   │   ├── Page15.jpg<br /> │   │   ├── Page16.jpg<br /> │   │   ├── Page17.jpg<br /> │   │   ├── Page18.jpg<br /> │   │   ├── Page19.jpg<br /> │   │   ├── Page20.jpg<br /> │   │   ├── Page21.jpg<br /> │   │   ├── Page22.jpg<br /> │   │   ├── Page23.jpg<br /> │   │   ├── Page24.jpg<br /> │   │   ├── Page25.jpg<br /> │   │   ├── Page26.jpg<br /> │   │   ├── Page27.jpg<br /> │   │   ├── Page28.jpg<br /> │   │   ├── Page29.jpg<br /> │   │   ├── Page30.jpg<br /> │   │   ├── Page31.jpg<br /> │   │   ├── Page32.jpg<br /> │   │   ├── Page33.jpg<br /> │   │   ├── Page34.jpg<br /> │   │   ├── Page35.jpg<br /> │   │   ├── Page36.jpg<br /> │   │   ├── Page37.jpg<br /> │   │   ├── Page38.jpg<br /> │   │   ├── Page39.jpg<br /> │   │   ├── Page40.jpg<br /> │   │   ├── Page41.jpg<br /> │   │   ├── Page42.jpg<br /> │   │   ├── Page43.jpg<br /> │   │   ├── Page44.jpg<br /> │   │   ├── Page45.jpg<br /> │   │   ├── Page46.jpg<br /> │   │   ├── Page47.jpg<br /> │   │   ├── Page48.jpg<br /> │   │   ├── Page49.jpg<br /> │   │   ├── Page50.jpg<br /> │   │   ├── Page51.jpg<br /> │   │   ├── Page52.jpg<br /> │   │   ├── Page53.jpg<br /> │   │   ├── Page54.jpg<br /> │   │   ├── Page55.jpg<br /> │   │   ├── Page56.jpg<br /> │   │   ├── Page57.jpg<br /> │   │   ├── Page58.jpg<br /> │   │   ├── Page59.jpg<br /> │   │   ├── Page60.jpg<br /> │   │   ├── Page61.jpg<br /> │   │   ├── Page62.jpg<br /> │   │   ├── Page63.jpg<br /> │   │   ├── Page64.jpg<br /> │   │   ├── Page65.jpg<br /> │   │   ├── Page66.jpg<br /> │   │   ├── Page67.jpg<br /> │   │   ├── Page68.jpg<br /> │   │   ├── Page69.jpg<br /> │   │   ├── Page70.jpg<br /> │   │   ├── Page71.jpg<br /> │   │   ├── Page72.jpg<br /> │   │   ├── Page73.jpg<br /> │   │   ├── Page74.jpg<br /> │   │   ├── Page75.jpg<br /> │   │   ├── Page76.jpg<br /> │   │   ├── Page77.jpg<br /> │   │   ├── Page78.jpg<br /> │   │   ├── Page79.jpg<br /> │   │   ├── Page80.jpg<br /> │   │   ├── Page81.jpg<br /> │   │   ├── Page82.jpg<br /> │   │   ├── Page83.jpg<br /> │   │   ├── Page84.jpg<br /> │   │   ├── Page85.jpg<br /> │   │   ├── Page86.jpg<br /> │   │   ├── Page87.jpg<br /> │   │   ├── Page88.jpg<br /> │   │   ├── Page89.jpg<br /> │   │   ├── Page90.jpg<br /> │   │   ├── Page91.jpg<br /> │   │   ├── Page92.jpg<br /> │   │   ├── Page93.jpg<br /> │   │   ├── Page94.jpg<br /> │   │   ├── Page95.jpg<br /> │   │   ├── Page96.jpg<br /> │   │   ├── Page97.jpg<br /> │   │   ├── Page98.jpg<br /> │   │   └── Page99.jpg<br /> │   ├── small<br /> │   │   ├── Box01.jpg<br /> │   │   ├── Box04.jpg<br /> │   │   ├── landscape<br /> │   │   │   ├── Box01.jpg<br /> │   │   │   ├── Box04.jpg<br /> │   │   │   ├── Page01.jpg<br /> │   │   │   ├── Page02.jpg<br /> │   │   │   ├── Page03.jpg<br /> │   │   │   ├── Page04.jpg<br /> │   │   │   ├── Page05.jpg<br /> │   │   │   ├── Page06.jpg<br /> │   │   │   ├── Page07.jpg<br /> │   │   │   ├── Page08.jpg<br /> │   │   │   ├── Page09.jpg<br /> │   │   │   ├── Page10.jpg<br /> │   │   │   ├── Page11.jpg<br /> │   │   │   ├── Page12.jpg<br /> │   │   │   ├── Page13.jpg<br /> │   │   │   ├── Page14.jpg<br /> │   │   │   ├── Page15.jpg<br /> │   │   │   ├── Page16.jpg<br /> │   │   │   ├── Page17.jpg<br /> │   │   │   ├── Page18.jpg<br /> │   │   │   ├── Page19.jpg<br /> │   │   │   ├── Page20.jpg<br /> │   │   │   ├── Page21.jpg<br /> │   │   │   ├── Page22.jpg<br /> │   │   │   ├── Page23.jpg<br /> │   │   │   ├── Page24.jpg<br /> │   │   │   ├── Page25.jpg<br /> │   │   │   ├── Page26.jpg<br /> │   │   │   ├── Page27.jpg<br /> │   │   │   ├── Page28.jpg<br /> │   │   │   ├── Page29.jpg<br /> │   │   │   ├── Page30.jpg<br /> │   │   │   ├── Page31.jpg<br /> │   │   │   ├── Page32.jpg<br /> │   │   │   ├── Page33.jpg<br /> │   │   │   ├── Page34.jpg<br /> │   │   │   ├── Page35.jpg<br /> │   │   │   ├── Page36.jpg<br /> │   │   │   ├── Page37.jpg<br /> │   │   │   ├── Page38.jpg<br /> │   │   │   ├── Page39.jpg<br /> │   │   │   ├── Page40.jpg<br /> │   │   │   ├── Page41.jpg<br /> │   │   │   ├── Page42.jpg<br /> │   │   │   ├── Page43.jpg<br /> │   │   │   ├── Page44.jpg<br /> │   │   │   ├── Page45.jpg<br /> │   │   │   ├── Page46.jpg<br /> │   │   │   ├── Page47.jpg<br /> │   │   │   ├── Page48.jpg<br /> │   │   │   ├── Page49.jpg<br /> │   │   │   ├── Page50.jpg<br /> │   │   │   ├── Page51.jpg<br /> │   │   │   ├── Page52.jpg<br /> │   │   │   ├── Page53.jpg<br /> │   │   │   ├── Page54.jpg<br /> │   │   │   ├── Page55.jpg<br /> │   │   │   ├── Page56.jpg<br /> │   │   │   ├── Page57.jpg<br /> │   │   │   ├── Page58.jpg<br /> │   │   │   └── Page59.jpg<br /> │   │   ├── Page01.jpg<br /> │   │   ├── Page02.jpg<br /> │   │   ├── Page03.jpg<br /> │   │   ├── Page04.jpg<br /> │   │   ├── Page05.jpg<br /> │   │   ├── Page06.jpg<br /> │   │   ├── Page07.jpg<br /> │   │   ├── Page08.jpg<br /> │   │   ├── Page09.jpg<br /> │   │   ├── Page100.jpg<br /> │   │   ├── Page101.jpg<br /> │   │   ├── Page102.jpg<br /> │   │   ├── Page103.jpg<br /> │   │   ├── Page104.jpg<br /> │   │   ├── Page105.jpg<br /> │   │   ├── Page106.jpg<br /> │   │   ├── Page107.jpg<br /> │   │   ├── Page108.jpg<br /> │   │   ├── Page109.jpg<br /> │   │   ├── Page10.jpg<br /> │   │   ├── Page110.jpg<br /> │   │   ├── Page111.jpg<br /> │   │   ├── Page112.jpg<br /> │   │   ├── Page113.jpg<br /> │   │   ├── Page114.jpg<br /> │   │   ├── Page115.jpg<br /> │   │   ├── Page116.jpg<br /> │   │   ├── Page11.jpg<br /> │   │   ├── Page12.jpg<br /> │   │   ├── Page13.jpg<br /> │   │   ├── Page14.jpg<br /> │   │   ├── Page15.jpg<br /> │   │   ├── Page16.jpg<br /> │   │   ├── Page17.jpg<br /> │   │   ├── Page18.jpg<br /> │   │   ├── Page19.jpg<br /> │   │   ├── Page20.jpg<br /> │   │   ├── Page21.jpg<br /> │   │   ├── Page22.jpg<br /> │   │   ├── Page23.jpg<br /> │   │   ├── Page24.jpg<br /> │   │   ├── Page25.jpg<br /> │   │   ├── Page26.jpg<br /> │   │   ├── Page27.jpg<br /> │   │   ├── Page28.jpg<br /> │   │   ├── Page29.jpg<br /> │   │   ├── Page30.jpg<br /> │   │   ├── Page31.jpg<br /> │   │   ├── Page32.jpg<br /> │   │   ├── Page33.jpg<br /> │   │   ├── Page34.jpg<br /> │   │   ├── Page35.jpg<br /> │   │   ├── Page36.jpg<br /> │   │   ├── Page37.jpg<br /> │   │   ├── Page38.jpg<br /> │   │   ├── Page39.jpg<br /> │   │   ├── Page40.jpg<br /> │   │   ├── Page41.jpg<br /> │   │   ├── Page42.jpg<br /> │   │   ├── Page43.jpg<br /> │   │   ├── Page44.jpg<br /> │   │   ├── Page45.jpg<br /> │   │   ├── Page46.jpg<br /> │   │   ├── Page47.jpg<br /> │   │   ├── Page48.jpg<br /> │   │   ├── Page49.jpg<br /> │   │   ├── Page50.jpg<br /> │   │   ├── Page51.jpg<br /> │   │   ├── Page52.jpg<br /> │   │   ├── Page53.jpg<br /> │   │   ├── Page54.jpg<br /> │   │   ├── Page55.jpg<br /> │   │   ├── Page56.jpg<br /> │   │   ├── Page57.jpg<br /> │   │   ├── Page58.jpg<br /> │   │   ├── Page59.jpg<br /> │   │   ├── Page60.jpg<br /> │   │   ├── Page61.jpg<br /> │   │   ├── Page62.jpg<br /> │   │   ├── Page63.jpg<br /> │   │   ├── Page64.jpg<br /> │   │   ├── Page65.jpg<br /> │   │   ├── Page66.jpg<br /> │   │   ├── Page67.jpg<br /> │   │   ├── Page68.jpg<br /> │   │   ├── Page69.jpg<br /> │   │   ├── Page70.jpg<br /> │   │   ├── Page71.jpg<br /> │   │   ├── Page72.jpg<br /> │   │   ├── Page73.jpg<br /> │   │   ├── Page74.jpg<br /> │   │   ├── Page75.jpg<br /> │   │   ├── Page76.jpg<br /> │   │   ├── Page77.jpg<br /> │   │   ├── Page78.jpg<br /> │   │   ├── Page79.jpg<br /> │   │   ├── Page80.jpg<br /> │   │   ├── Page81.jpg<br /> │   │   ├── Page82.jpg<br /> │   │   ├── Page83.jpg<br /> │   │   ├── Page84.jpg<br /> │   │   ├── Page85.jpg<br /> │   │   ├── Page86.jpg<br /> │   │   ├── Page87.jpg<br /> │   │   ├── Page88.jpg<br /> │   │   ├── Page89.jpg<br /> │   │   ├── Page90.jpg<br /> │   │   ├── Page91.jpg<br /> │   │   ├── Page92.jpg<br /> │   │   ├── Page93.jpg<br /> │   │   ├── Page94.jpg<br /> │   │   ├── Page95.jpg<br /> │   │   ├── Page96.jpg<br /> │   │   ├── Page97.jpg<br /> │   │   ├── Page98.jpg<br /> │   │   └── Page99.jpg<br /> │   └── thumbnails<br /> │   ├── BoxThumb01.jpg<br /> │   ├── BoxThumb04.jpg<br /> │   ├── landscape<br /> │   │   ├── BoxThumb01.jpg<br /> │   │   ├── BoxThumb04.jpg<br /> │   │   ├── Thumb01.jpg<br /> │   │   ├── Thumb02.jpg<br /> │   │   ├── Thumb03.jpg<br /> │   │   ├── Thumb04.jpg<br /> │   │   ├── Thumb05.jpg<br /> │   │   ├── Thumb06.jpg<br /> │   │   ├── Thumb07.jpg<br /> │   │   ├── Thumb08.jpg<br /> │   │   ├── Thumb09.jpg<br /> │   │   ├── Thumb10.jpg<br /> │   │   ├── Thumb11.jpg<br /> │   │   ├── Thumb12.jpg<br /> │   │   ├── Thumb13.jpg<br /> │   │   ├── Thumb14.jpg<br /> │   │   ├── Thumb15.jpg<br /> │   │   ├── Thumb16.jpg<br /> │   │   ├── Thumb17.jpg<br /> │   │   ├── Thumb18.jpg<br /> │   │   ├── Thumb19.jpg<br /> │   │   ├── Thumb20.jpg<br /> │   │   ├── Thumb21.jpg<br /> │   │   ├── Thumb22.jpg<br /> │   │   ├── Thumb23.jpg<br /> │   │   ├── Thumb24.jpg<br /> │   │   ├── Thumb25.jpg<br /> │   │   ├── Thumb26.jpg<br /> │   │   ├── Thumb27.jpg<br /> │   │   ├── Thumb28.jpg<br /> │   │   ├── Thumb29.jpg<br /> │   │   ├── Thumb30.jpg<br /> │   │   ├── Thumb31.jpg<br /> │   │   ├── Thumb32.jpg<br /> │   │   ├── Thumb33.jpg<br /> │   │   ├── Thumb34.jpg<br /> │   │   ├── Thumb35.jpg<br /> │   │   ├── Thumb36.jpg<br /> │   │   ├── Thumb37.jpg<br /> │   │   ├── Thumb38.jpg<br /> │   │   ├── Thumb39.jpg<br /> │   │   ├── Thumb40.jpg<br /> │   │   ├── Thumb41.jpg<br /> │   │   ├── Thumb42.jpg<br /> │   │   ├── Thumb43.jpg<br /> │   │   ├── Thumb44.jpg<br /> │   │   ├── Thumb45.jpg<br /> │   │   ├── Thumb46.jpg<br /> │   │   ├── Thumb47.jpg<br /> │   │   ├── Thumb48.jpg<br /> │   │   ├── Thumb49.jpg<br /> │   │   ├── Thumb50.jpg<br /> │   │   ├── Thumb51.jpg<br /> │   │   ├── Thumb52.jpg<br /> │   │   ├── Thumb53.jpg<br /> │   │   ├── Thumb54.jpg<br /> │   │   ├── Thumb55.jpg<br /> │   │   ├── Thumb56.jpg<br /> │   │   ├── Thumb57.jpg<br /> │   │   ├── Thumb58.jpg<br /> │   │   └── Thumb59.jpg<br /> │   ├── Thumb01.jpg<br /> │   ├── Thumb02.jpg<br /> │   ├── Thumb03.jpg<br /> │   ├── Thumb04.jpg<br /> │   ├── Thumb05.jpg<br /> │   ├── Thumb06.jpg<br /> │   ├── Thumb07.jpg<br /> │   ├── Thumb08.jpg<br /> │   ├── Thumb09.jpg<br /> │   ├── Thumb100.jpg<br /> │   ├── Thumb101.jpg<br /> │   ├── Thumb102.jpg<br /> │   ├── Thumb103.jpg<br /> │   ├── Thumb104.jpg<br /> │   ├── Thumb105.jpg<br /> │   ├── Thumb106.jpg<br /> │   ├── Thumb107.jpg<br /> │   ├── Thumb108.jpg<br /> │   ├── Thumb109.jpg<br /> │   ├── Thumb10.jpg<br /> │   ├── Thumb110.jpg<br /> │   ├── Thumb111.jpg<br /> │   ├── Thumb112.jpg<br /> │   ├── Thumb113.jpg<br /> │   ├── Thumb114.jpg<br /> │   ├── Thumb115.jpg<br /> │   ├── Thumb116.jpg<br /> │   ├── Thumb11.jpg<br /> │   ├── Thumb12.jpg<br /> │   ├── Thumb13.jpg<br /> │   ├── Thumb14.jpg<br /> │   ├── Thumb15.jpg<br /> │   ├── Thumb16.jpg<br /> │   ├── Thumb17.jpg<br /> │   ├── Thumb18.jpg<br /> │   ├── Thumb19.jpg<br /> │   ├── Thumb20.jpg<br /> │   ├── Thumb21.jpg<br /> │   ├── Thumb22.jpg<br /> │   ├── Thumb23.jpg<br /> │   ├── Thumb24.jpg<br /> │   ├── Thumb25.jpg<br /> │   ├── Thumb26.jpg<br /> │   ├── Thumb27.jpg<br /> │   ├── Thumb28.jpg<br /> │   ├── Thumb29.jpg<br /> │   ├── Thumb30.jpg<br /> │   ├── Thumb31.jpg<br /> │   ├── Thumb32.jpg<br /> │   ├── Thumb33.jpg<br /> │   ├── Thumb34.jpg<br /> │   ├── Thumb35.jpg<br /> │   ├── Thumb36.jpg<br /> │   ├── Thumb37.jpg<br /> │   ├── Thumb38.jpg<br /> │   ├── Thumb39.jpg<br /> │   ├── Thumb40.jpg<br /> │   ├── Thumb41.jpg<br /> │   ├── Thumb42.jpg<br /> │   ├── Thumb43.jpg<br /> │   ├── Thumb44.jpg<br /> │   ├── Thumb45.jpg<br /> │   ├── Thumb46.jpg<br /> │   ├── Thumb47.jpg<br /> │   ├── Thumb48.jpg<br /> │   ├── Thumb49.jpg<br /> │   ├── Thumb50.jpg<br /> │   ├── Thumb51.jpg<br /> │   ├── Thumb52.jpg<br /> │   ├── Thumb53.jpg<br /> │   ├── Thumb54.jpg<br /> │   ├── Thumb55.jpg<br /> │   ├── Thumb56.jpg<br /> │   ├── Thumb57.jpg<br /> │   ├── Thumb58.jpg<br /> │   ├── Thumb59.jpg<br /> │   ├── Thumb60.jpg<br /> │   ├── Thumb61.jpg<br /> │   ├── Thumb62.jpg<br /> │   ├── Thumb63.jpg<br /> │   ├── Thumb64.jpg<br /> │   ├── Thumb65.jpg<br /> │   ├── Thumb66.jpg<br /> │   ├── Thumb67.jpg<br /> │   ├── Thumb68.jpg<br /> │   ├── Thumb69.jpg<br /> │   ├── Thumb70.jpg<br /> │   ├── Thumb71.jpg<br /> │   ├── Thumb72.jpg<br /> │   ├── Thumb73.jpg<br /> │   ├── Thumb74.jpg<br /> │   ├── Thumb75.jpg<br /> │   ├── Thumb76.jpg<br /> │   ├── Thumb77.jpg<br /> │   ├── Thumb78.jpg<br /> │   ├── Thumb79.jpg<br /> │   ├── Thumb80.jpg<br /> │   ├── Thumb81.jpg<br /> │   ├── Thumb82.jpg<br /> │   ├── Thumb83.jpg<br /> │   ├── Thumb84.jpg<br /> │   ├── Thumb85.jpg<br /> │   ├── Thumb86.jpg<br /> │   ├── Thumb87.jpg<br /> │   ├── Thumb88.jpg<br /> │   ├── Thumb89.jpg<br /> │   ├── Thumb90.jpg<br /> │   ├── Thumb91.jpg<br /> │   ├── Thumb92.jpg<br /> │   ├── Thumb93.jpg<br /> │   ├── Thumb94.jpg<br /> │   ├── Thumb95.jpg<br /> │   ├── Thumb96.jpg<br /> │   ├── Thumb97.jpg<br /> │   ├── Thumb98.jpg<br /> │   └── Thumb99.jpg<br /> ├── sce_module<br /> │   ├── libc.prx<br /> │   └── libSceFios2.prx<br /> ├── sce_sys<br /> │   ├── about<br /> │   │   └── right.sprx<br /> │   └── keystone<br /> └── trophy_data<br /> └── SLES-50326_trophies.lua<br /> <br /> &lt;/pre&gt;<br /> <br /> =Links=<br /> *More info: http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/<br /> *More emulator configurations examples: https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List <br /> <br /> {{Reverse Engineering}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Emulation&diff=284614 PS2 Emulation 2022-02-10T16:44:50Z <p>162.199.155.139: /* GS/VIF */</p> <hr /> <div><br /> = Description =<br /> <br /> PlayStation 2 emulation on PS4 is handled slightly differently comparing to PS3. Each PS2 game PS4 package file (.pkg) include emulator itself, so there is no included emulator in PS4 firmware. Although PS4 firmware have some PS2 emulator specific features, like functions sceLncUtilIsPs2Emu, sceShellCoreUtilGetImposeMenuFlagForPs2Emu, sceSystemServiceAddLocalProcessForPs2Emu, or sceSystemServiceShowImposeMenuForPs2Emu.<br /> Fact that emulator is now included in game pkg, is slightly complicating providing compatibility list. As emulators include some per title patches, and different default settings. Currently most used emulators came from Rogue Galaxy, and Jak games. Next difference is that BIOS in external file is included in .pkg, anyway it is exactly the same BIOS used in ps2_netemu. Another important difference is the lack of encryption mechanism for PS2 game disc image file, this time it is just a plain ISO file, but emulator still support LIMG sector that allow use non-2048 sector size discs. Memory card is also decrypted, but emulator check crc of some of it regions to ensure that fresh card is not modified. PS2 Emulator supports LUA scripting by &quot;Lua Bridge&quot;, is powerful interface that provide many possibilities to improve compatibility.<br /> This is first time when sony need really care about floats in their emulator. Comparing to PS3 CPU, x86-64 is doing worse job in mimic PS2 FPU, and VU floats calculation behavior. This is resolved by clamping, accurate math used per memory offset, and/or converting floats to double precision. Emulator use openCL for GS, and probably other components.<br /> <br /> =Memory Mapping=<br /> <br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: left;&quot;<br /> ! Name !! From !! To<br /> |-<br /> |EE Flat Memory (4gb) || 0x0000008000000000 || 0x0000008100000000<br /> |-<br /> |IOP Flat Memory (4gb) || 0x0000009000000000 || 0x0000009100000000<br /> |-<br /> |R59 Binary Cache || 0x0000000914B10000 || 0x0000000916B10000<br /> |-<br /> |R30 Binary Cache || 0x0000000916B14000 || 0x0000000917314000<br /> |-<br /> |jitVU0 || 0x0000000917318000 || 0x0000000917B18000<br /> |-<br /> |jitVU1 || 0x0000000917B1C000 || 0x0000000918B1C000<br /> |-<br /> ! !! Host's EE Memory Map !!<br /> |-<br /> |EE RAM - Kernel || 0x0000008000000000 || 0x0000008000080000<br /> |-<br /> |EE RAM - Debug || 0x0000008000078000 || 0x0000008000080000<br /> |-<br /> |EE RAM - User || 0x0000008000080000 || 0x0000008002000000<br /> |-<br /> |EE Hw Devices || 0x0000008010000000 || 0x0000008010010000<br /> |-<br /> |EE ROM || 0x000000801FC00000 || 0x000000801FFE0000<br /> |-<br /> |EE RAM - Uncached || 0x0000008020080000 || 0x0000008022000000<br /> |-<br /> |EE RAM - UncachedAccel || 0x0000008030100000 || 0x0000008032000000<br /> |-<br /> |EE Scratchpad || 0x0000008070000000 || 0x0000008070004000<br /> |-<br /> |EE Debug || 0x00000080FFFF8000 || 0x0000008100000000<br /> |-<br /> ! !! Host's IOP Memory Map !!<br /> |-<br /> |IOP RAM || 0x0000009000000000 || 0x0000009000200000<br /> |-<br /> |IOP RAM (mirror 1) || 0x0000009000200000 || 0x0000009000400000<br /> |-<br /> |IOP RAM (mirror 2) || 0x0000009000400000 || 0x0000009000600000<br /> |-<br /> |IOP RAM (mirror 3) || 0x0000009000600000 || 0x0000009000800000<br /> |-<br /> |IOP Scratchpad || 0x000000901F800000 || 0x000000901F801000<br /> |-<br /> |IOP HW || 0x000000901F801000 || 0x000000901F810000<br /> |-<br /> |IOP ROM || 0x000000901FC00000 || 0x000000901FFE0000<br /> |-<br /> |}<br /> <br /> =Open CL and Floats=<br /> <br /> PS4 native Floating point supports and OpenCL info, for both CPU, and GPU. Understanding of floating points conversion is very important in emulating PS2.<br /> &lt;br&gt;Below info comes from this gist: https://gist.github.com/masterzorag/06cadbc5fbe7d3375704fc52518f434e#file-gistfile1-md<br /> &lt;br&gt;There you can find more info about PS4 OpenCL.<br /> <br /> ==CPU==<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Info !! Value<br /> |-<br /> | Device Name || CXD90026AG - DG1002FGF84HT<br /> |-<br /> | Device Vendor || AuthenticAMD<br /> |-<br /> | Device Vendor ID || 0x1022<br /> |-<br /> | Device OpenCL C Version || OpenCL C 1.2 pocl<br /> |-<br /> | Device Type || CPU<br /> |-<br /> | Max compute units || 8<br /> |-<br /> | Max work item dimensions || 3<br /> |-<br /> | Max work item sizes || 4096x4096x4096<br /> |-<br /> | Max work group size || 4096<br /> |-<br /> | Preferred work group size multiple || 8<br /> |-<br /> ! Half-precision Floating-point support !! (n/a)<br /> |-<br /> ! Single-precision Floating-point support !! (core)<br /> |-<br /> | Denormals || Yes<br /> |-<br /> | Infinity and NANs || Yes<br /> |-<br /> | Round to nearest || Yes<br /> |-<br /> | Round to zero || Yes<br /> |-<br /> | Round to infinity || Yes<br /> |-<br /> | IEEE754-2008 fused multiply-add || No<br /> |-<br /> | Support is emulated in software || No<br /> |-<br /> | Correctly-rounded divide and sqrt operations|| Yes<br /> |-<br /> ! Double-precision Floating-point support !! (cl_khr_fp64)<br /> |-<br /> | Denormals || Yes<br /> |-<br /> | Infinity and NANs || Yes<br /> |-<br /> | Round to nearest || Yes<br /> |-<br /> | Round to zero || Yes<br /> |-<br /> | Round to infinity || Yes<br /> |-<br /> | IEEE754-2008 fused multiply-add || Yes<br /> |-<br /> | Support is emulated in software || No<br /> |-<br /> ! Execution capabilities !!<br /> |-<br /> | Run OpenCL kernels || Yes<br /> |-<br /> | Run native kernels || Yes<br /> |-<br /> | SPIR versions || 1.2<br /> |-<br /> | Device Extensions || &lt;div align=&quot;left&quot;&gt;&lt;pre&gt; cl_khr_byte_addressable_store<br /> cl_khr_global_int32_base_atomics<br /> cl_khr_global_int32_extended_atomics<br /> cl_khr_local_int32_base_atomics<br /> cl_khr_local_int32_extended_atomics<br /> cl_khr_3d_image_writes <br /> cl_khr_spir<br /> cl_khr_fp64 <br /> cl_khr_int64_base_atomics<br /> cl_khr_int64_extended_atomics &lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |}<br /> <br /> ==GPU==<br /> <br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Info !! Values<br /> |-<br /> |Device Name || AMD LIVERPOOL<br /> |-<br /> |Device Vendor || AMD<br /> |-<br /> |Device Vendor ID || 0x1002<br /> |-<br /> |Device Version || OpenCL 1.1<br /> |-<br /> |Device OpenCL C Version || OpenCL C 1.1<br /> |-<br /> |Device Type || GPU<br /> |-<br /> |Max compute units || 18<br /> |-<br /> |Max work item dimensions || 3<br /> |-<br /> |Max work item sizes || 256x256x256<br /> |-<br /> |Max work group size || 256<br /> |-<br /> |Compiler Available || Yes<br /> |-<br /> |Preferred work group size multiple || 64<br /> |-<br /> !Half-precision Floating-point support !! (cl_khr_fp16)<br /> |-<br /> |Denormals || No<br /> |-<br /> |Infinity and NANs || Yes<br /> |-<br /> |Round to nearest || Yes<br /> |-<br /> |Round to zero || No<br /> |-<br /> |Round to infinity || No<br /> |-<br /> |IEEE754-2008 fused multiply-add || No<br /> |-<br /> |Support is emulated in software || No<br /> |-<br /> !Single-precision Floating-point support !! (core)<br /> |-<br /> |Denormals || No<br /> |-<br /> |Infinity and NANs || Yes<br /> |-<br /> |Round to nearest || Yes<br /> |-<br /> |Round to zero || No<br /> |-<br /> |Round to infinity || No<br /> |-<br /> |IEEE754-2008 fused multiply-add || No<br /> |-<br /> |Support is emulated in software || No<br /> |-<br /> |Correctly-rounded divide and sqrt operations || No<br /> |-<br /> !Double-precision Floating-point support !! (cl_khr_fp64)<br /> |-<br /> |Denormals || Yes<br /> |-<br /> |Infinity and NANs || Yes<br /> |-<br /> |Round to nearest || Yes<br /> |-<br /> |Round to zero || Yes<br /> |-<br /> |Round to infinity || Yes<br /> |-<br /> |IEEE754-2008 fused multiply-add || Yes<br /> |-<br /> |Support is emulated in software || No<br /> |-<br /> !Execution capabilities !!<br /> |-<br /> |Run OpenCL kernels || Yes<br /> |-<br /> |Run native kernels || No<br /> |-<br /> |Device Extensions || &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;cl_khr_byte_addressable_store<br /> cl_khr_byte_addressable_store<br /> cl_khr_global_int32_base_atomics <br /> cl_khr_global_int32_extended_atomics<br /> cl_khr_local_int32_base_atomics<br /> cl_khr_local_int32_extended_atomics<br /> cl_khr_int64_base_atomics<br /> cl_khr_int64_extended_atomics<br /> cl_khr_fp64<br /> cl_khr_fp16&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |}<br /> <br /> = Emulator Configuration =<br /> <br /> == Files ==<br /> <br /> Emulator configuration is probably handled by 4 files:<br /> <br /> * '''config-emu-ps4.txt''' - Stores paths, basic video/audio settings in official packages. But unofficially can be also used for advanced settings for global effect in multi disc .pkg with all commands originally used in cli.conf file. <br /> * '''XXXX-YYYYY_cli.conf''' - Stores per disc advanced settings. GS, VU, EE, IOP, FPU, COP2 emulation settings, are here. Also hacks, and hooks.<br /> * '''XXXX-YYYYY_config.lua''' - Used for per disc advanced scripts. Patching EE/IOP memory, Conditional hooks. <br /> * '''disc-swap-cli.conf''' - Stores info of multi disc games.<br /> <br /> == Commands ==<br /> <br /> === config-emu-ps4.txt commands ===<br /> <br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --gs-uprender || none, 2x2 || Internal resolution uprender || --gs-uprender=2x2<br /> |-<br /> | --gs-upscale || none, gpu, edgesmooth, motionvec || upscaler? || --gs-upscale=EdgeSmooth<br /> |-<br /> | --config-local-lua || || || --config-local-lua=&quot;&quot;<br /> |-<br /> | --load-tooling-lua || || || --load-tooling-lua=0<br /> |-<br /> | --record-audio || || || <br /> |-<br /> | --record-audio-img || || || <br /> |-<br /> | --record-audio-image || || || <br /> |-<br /> | --record-audio-ext || || || <br /> |-<br /> | --max-console-spam || || || <br /> |-<br /> | --path-snaps || dir/folder || || --path-snaps=&quot;/tmp/snapshots&quot;<br /> |-<br /> | --path-recordings || dir/folder || || --path-recordings=&quot;/tmp/recordings&quot;<br /> |-<br /> | --path-audio-images || dir/folder || || <br /> |-<br /> | --path-memcards || dir/folder || ||<br /> |-<br /> | --path-vmc || dir/folder || || --path-vmc=&quot;/tmp/vmc&quot;<br /> |-<br /> | --path-emulog || dir/folder || || --path-emulog=&quot;/tmp/recordings&quot;<br /> |-<br /> | --path-manual || dir/folder || ||<br /> |-<br /> | --path-patches || dir/folder || Path to patches folder || --path-patches=&quot;/app0/patches&quot;<br /> |-<br /> | --path-trophydata || dir/folder || || --path-trophydata=&quot;/app0/trophy_data&quot;<br /> |-<br /> | --path-featuredata || dir/folder || Path to folder with XXXX-YYYYY_features.lua file || --path-featuredata=&quot;/app0/feature_data&quot;<br /> |-<br /> | --path-postproc || dir/folder || Post-processing (shaders?) ||<br /> |-<br /> | --path-toolingscript || dir/folder || || --path-toolingscript=&quot;/app0/patches&quot;<br /> |-<br /> | --snapshot-name || || || <br /> |-<br /> | --snapshot-datafile || || || <br /> |-<br /> | --snapshot-restore || || || <br /> |-<br /> | --snapshot-save || frameId(?) || ||<br /> |-<br /> | --snapshot-mcd-files || || || <br /> |-<br /> | --snapshot-repeat || repeat_count || ||<br /> |-<br /> | --snapshot-modulo || || || <br /> |-<br /> | --ds4-deadzone-adjust || || || <br /> |-<br /> | --ds4-diagonal-adjust || || || <br /> |-<br /> | --host-pad-loses-focus || || || --host-pad-loses-focus=1<br /> |- <br /> | --host-gamepads || || || <br /> |-<br /> | --host-keyboard || slot [0-7] || || --host-keyboard=4<br /> |-<br /> | --host-audio || 1,0,on,off,mono || || --host-audio=1<br /> |-<br /> | --host-audio-latency || msec/float || Audio latency must be between 0.010 and 4.0 || --host-audio-latency=1.5<br /> |-<br /> | --host-window-scale || scale/float || || --host-window-scale=0.5<br /> |-<br /> | --host-window-pos || x,y || ||<br /> |-<br /> | --host-display-mode || normal,full,4:3,16:9 || Set display mode || --host-display-mode=full<br /> |-<br /> | --host-osd || 0,off,minimal,verbose || || --host-osd=0<br /> |-<br /> | --host-vsync || || ||<br /> |-<br /> | --host-trophy-support || || ||<br /> |-<br /> | --rtc-epoch || unix_time (seconds since epoch) || || --rtc-epoch=1523776362<br /> |-<br /> | --framelimiter || || || <br /> |-<br /> | --framelimit-fps || FPS/float || framelimiter || --framelimit-fps=0.8<br /> |-<br /> | --framelimit-scalar || scalar/float || scalar must be between 0.1 and 5.0 || --framelimit-scalar=3.2<br /> |-<br /> | --framelimit-mode || normal,fast,fastest,slow,slower,slowest || || --framelimit-mode=fast<br /> |-<br /> | --audio-stretching || || ||<br /> |-<br /> | --ps2-lang || system || sets language || --ps2-lang=system <br /> |-<br /> | --pad-record || || ||<br /> |-<br /> | --max-disc-num || 1-5 || numbers of discs in package (maximum=5) || --max-disc-num=1<br /> |-<br /> | --ps2-title-id || || sets title-id for patches || --ps2-title-id=SLES-50366<br /> |-<br /> | --cdvd-sector-read-cycles || || Kinetica use 40000, Psychonauts 4000, Red Dead Revolver 5000, Rise of Kasai 31000 || --cdvd-sector-read-cycles=40000<br /> |-<br /> | --boot-disc-id || 1-5 || sets boot disc for multi-disc pkg || --boot-disc-id=0<br /> |-<br /> | --mute-audio ||all,none,main,bgm || || --mute-audio=all<br /> |-<br /> | --mute-streaming-audio || all,none,main,bgm || || --mute-streaming-audio=all<br /> |-<br /> | --mtap1 || always, ByHost || Multitap Switch || --mtap1=always<br /> |-<br /> | --mtap2 || always, ByHost || Multitap Switch || --mtap2=always<br /> |}<br /> <br /> === XXXX-YYYYY_cli.conf commands ===<br /> <br /> Please note that commands listed here work also in config-emu-ps4.txt. Anyway official way to use them is by CLI file. CLI file way is also needed for multi-disc packages.<br /> ====EE/IOP====<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --ee-mem-check-eob || || EE Memory check end of block || <br /> |-<br /> | --ee-cache-breaks-block || || || <br /> |-<br /> | --ee-validate-kernel || || || <br /> |-<br /> | --ee-block-validation || PageProt, PageProtection, Hash, Full || Way of validating that block been modified, and require recompilation. [[https://github.com/PCSX2/pcsx2/blob/4db6b287cda817345f7ed4268a8a68f9fda76f26/pcsx2/Memory.cpp#L869| Some info about PageProt way]] || --ee-block-validation=None<br /> |-<br /> | --ee-shorthash-len || inst_count/integer || Length of shorthash in instruction/opcode count. Require --ee-block-validation=Hash || <br /> |-<br /> | --ee-const-folding || None,Gpr,Fpu,All || EE constant folding [https://en.wikipedia.org/wiki/Constant_folding More info] || --ee-const-folding=none<br /> |-<br /> | --ee-load-rewrites || || || <br /> |-<br /> | --ee-store-rewrites || || || <br /> |-<br /> | --ee-live32 || || || <br /> |-<br /> | --ee-inline-limit-full || insn_count/integer || ||<br /> |-<br /> | --ee-inline-limit-partial || || ||<br /> |-<br /> | --ee-jit-pagefault-threshold || fault_count/integer || || <br /> |-<br /> || --ee-jit-opt-debug || || ||<br /> |-<br /> | --ee-pc-coherency || || || <br /> |-<br /> | --ee-inst-marking || || || <br /> |-<br /> | --ee-insn-marking || || || <br /> |-<br /> | --ee-kernel-hle || || High-level emulation kernel || <br /> |-<br /> | --ee-injection-kernel || 0,1 || ||<br /> |-<br /> | --ee-injection-title || 0,1 || ||<br /> |-<br /> | --ee-regalloc-scalar || 0,none,ReadOnly,WriteOnly,RW || register allocation setting || <br /> |-<br /> | --ee-regalloc-simd || || register allocation setting || <br /> |-<br /> | --ee-regalloc-preserve-scalar || LoadOnly, StoreOnly, SO, LoadStore, LS || EE JIT Scalar/Int Regalloc Mode || --ee-regalloc-preserve-scalar=LoadStore<br /> |-<br /> | --ee-regalloc-preserve-simd || ReadOnly, RO, WO, WriteOnly ,RW || EE JIT SIMD/XMM Regalloc Mode || --ee-regalloc-preserve-simd=RW<br /> |-<br /> | --ee-static-block-links || options Type,Type,... [Branch,Branches,JAL,COP2,All] || || --ee-static-block-links=JAL,COP2<br /> |-<br /> | --ee-insn-flush-pc || || ||<br /> |- <br /> | --ee-insn-callmark || || ||<br /> |- <br /> | --ee-peephole || || ||<br /> |-<br /> | --ee-ignore-break || || ignore break instruction (we should never land here) || <br /> |-<br /> | --ee-hook || AdvanceClock, FastForwardClock, MfifoDrain || Non-conditional EE hook (This is not speedhack!), advancing/ff'ing clock can be useful for getting better sync CFC2/CTC2 || --ee-hook=0x0025b3b0,FastForwardClock<br /> |-<br /> | --ee-jit-disasm || 0,1=mips,2=x86 || Emotion Engine Just in Time disassembler mode (seems to be debug log option) || <br /> |-<br /> | --ee-jit-pagefault-threshold || || || --ee-jit-pagefault-threshold=30<br /> |-<br /> | --ee-context-switch-cycles || || || --ee-context-switch-cycles=1440<br /> |-<br /> | --ee-evt-check-full || || || <br /> |-<br /> | --ee-break-as-nop || 0,1 || use nop when hit brak instruction (this seems to be rarely useful as break usually mean eof) || --ee-break-as-nop=1<br /> |-<br /> | --ee-cycle-scalar || multiplier/float || || --ee-cycle-scalar=1.0<br /> |-|-<br /> | --ee-sif0-cycle-scalar || multiplier/float || Subsystem interface cycle scalar || --ee-sif0-cycle-scalar=2.0<br /> |-<br /> | --ee-sif1-cycle-scalar || multiplier/float || Subsystem interface cycle scalar || --ee-sif1-cycle-scalar=0.1<br /> |-<br /> | --iop-sif0-cycle-scalar || multiplier/float || Subsystem interface cycle scalar || --iop-sif0-cycle-scalar=1.5<br /> |-<br /> | --iop-sif1-cycle-scalar || multiplier/float || Subsystem interface cycle scalar || --iop-sif1-cycle-scalar=1.8<br /> |-<br /> | --iop-block-validation || IsC, ShortHash || || --iop-block-validation=IsC<br /> |-<br /> | --iop-validate-kernel || || || <br /> |-<br /> | --iop-shorthash-len || inst_count/integer || Length of shorthash in instruction/opcode count. Require --iop-block-validation=ShortHash || <br /> |-<br /> | --iop-const-folding || None,Gpr,All || IOP constant folding [https://en.wikipedia.org/wiki/Constant_folding More info] || --iop-const-folding=All<br /> |-<br /> | --iop-pc-coherency || || || <br /> |-<br /> | --iop-inst-marking || || || <br /> |-<br /> | --iop-jit-disasm || || || <br /> |-<br /> | --iop-evt-check-full || || || <br /> |-<br /> | --iop-cycle-scalar || || || --iop-cycle-scalar=0.80<br /> |-<br /> | --iop-tight-slice-count || || || --iop-tight-slice-count=12<br /> |-<br /> | --iop-hook || AdvanceClock, FastForwardClock || iop native hook || --iop-hook=0x0086ac,FastForwardClock<br /> |-<br /> |}<br /> <br /> ====FPU====<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --fpu-to-double || || Converts floats to double ||<br /> |- <br /> | --fpu-no-clamping || 0, 1 || No clamping for fpu || --fpu-no-clamping=0 (this option when enabled (set to 1), for some unknown reason seems to behave similar to pcsx2 FPU FULL clamping mode)<br /> |-<br /> | --fpu-no-clamp-range || start,end offset (0x0 - 0x1FFFFFF) || No clamping for fpu in selected memory range || --fpu-no-clamp-range=0x1acce0,0x2acce0<br /> |- <br /> | --fpu-clamp-operands || 0, 1 || fpu clamp on operand stage (combined with --fpu-clamp-results = ee/fpu clamping: extra in pcsx2) || --fpu-clamp-operands=1<br /> |- <br /> | --fpu-clamp-results || 0, 1 || fpu clamp for results of operations (ee/fpu clamping: normal in pcsx2) || --fpu-clamp-results=1<br /> |- <br /> | --fpu-custom-min-max || 0, 1 || Custom Max/Mini logic for denormals || --fpu-custom-min-max=0<br /> |- <br /> | --fpu-custom-fused-madd || 0, 1 || Custom FMA (fused multiply-add) || --fpu-custom-fused-madd=0<br /> |- <br /> | --fpu-accurate-range || start,end offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-range=0x1acce0,0x2acce0<br /> |- <br /> | --fpu-accurate-muldiv || offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-muldiv=0x123456<br /> |- <br /> | --fpu-accurate-muldiv-range || start,end offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-muldiv-range=0x1acce0,0x2acce0<br /> |- <br /> | --fpu-accurate-mul-fast || 1 || || --fpu-accurate-mul-fast=1<br /> |- <br /> | --fpu-accurate-addsub || offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-addsub=0x234567<br /> |- <br /> | --fpu-accurate-addsub-range || start,end offset (0x0 - 0x1FFFFFF) || || --fpu-accurate-addsub-range=0x1acce0,0x2acce0<br /> |-<br /> | --fpu-rsqrt-fast-estimate || 0,1 || less accurate rsqrt (possible speed improvement, but can degrade accuracy) || --fpu-rsqrt-fast-estimate=1<br /> |-<br /> | --fpu-no-clamp-range || 0x0 to 0x1ffffff || EE memory range where clamping not gonna be used when use clamping global function || --fpu-no-clamp-range=0x123456, 0x212345<br /> |-<br /> |}<br /> <br /> ====VU/COP2====<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --vu-to-double || || Converts floats to double ||<br /> |-<br /> | --vu-branch-hazard || || ||<br /> |- <br /> | --vu-evil-branches || || Take in count branch in delay slot, or not. [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L306 More Info]||<br /> |- <br /> | --vu-d-bit || 0/1 || ignore D-bit (note: D bit shouldn't ever be used in retail games. PCSX2 ignore it at default.) || --vu-d-bit=0<br /> |- <br /> | --vu-t-bit || 0/1 || ignore T-bit (note: T bit is replacement of D bit for retail games, correct behavior of VU is to take it in count) || --vu-t-bit=0<br /> |- <br /> | --vu-inst-mflag || || Instant mac flag, or instances of mac flag? ||<br /> |- <br /> | --vu-inst-cflag || || Instant clipping flag, or instances of clipping flag? ||<br /> |- <br /> | --vu-custom-min-max || 0, 1 || Custom Max/Mini logic for denormals, pcsx2 use 0 at default || --vu-custom-min-max=0<br /> |- <br /> | --vu-custom-fused-madd || 0, 1 || Custom FMA (fused multiply-add) || --vu-custom-fused-madd=1<br /> |- <br /> | --vu-opt-jr-caching || || Optimize Jump Register caching. (vi15). Is not clear how optimization is done. ||<br /> |- <br /> | --vu-opt-sf-check || || Optimize Status or Sticky Flag check(?) ||<br /> |- <br /> | --vu-hack-triace || 0,1 || Special hack for Tri Ace games, correct VU addi calculation. Without it result is one bit off, which is enough to break game decryption algo. || --vu-hack-triace=1<br /> |- <br /> | --vu-xgkick-delay || vu_cycles/integer || Delay xgkick instruction execute, pcsx2 use 6 cycles, emu in ps3 use 2-8 cycles depend on game || --vu-xgkick-delay=8<br /> |-<br /> | --vu-range-merge || vu_inst_cnt || || <br /> |- <br /> | --vu0-opt-flags || [0,1,2] - 1=safe, 2=unsafe || Optimize flags when do VU recompilation (1 is safe, 2 update sticky, and mac flag on every status flag update) [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --vu0-opt-flags=1<br /> |- <br /> | --vu0-opt-vf00 || [0,1,2] - 1=safe, 2=unsafe || optimization for vf00? Not really sure here as vf00 is a special register where x,y,z are hard coded to 0.0 and w is hard-coded to 1.0. Not sure what to optimize here. || <br /> |- <br /> | --vu0-opt-subroutine || || ||<br /> |- <br /> | --vu0-const-prop || || Constant propagation [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L312 More info] ||<br /> |- <br /> | --vu0-no-clamping || 0, 1 || No clamping for vu0 (default 1) || --vu0-no-clamping=0<br /> |- <br /> | --vu0-clamp-operands || 0, 1 || vu0 clamp on operand stage || --vu0-clamp-operands=1<br /> |- <br /> | --vu0-clamp-results || 0, 1 || vu0 clamp for results of operations || --vu0-clamp-results=1<br /> |- <br /> | --vu0-inst-q || || instant Q, not stall on WAITQ, or instances of Q(?) || <br /> |- <br /> | --vu0-inst-p || || instant P, not stall on WAITP, or instances of P(?)||<br /> |- <br /> | --vu0-use-rcp || || use sse rcp ||<br /> |- <br /> | --vu0-use-rsqrt || || use sse rsqrt ||<br /> |- <br /> | --vu0-di-bits || || ||<br /> |-<br /> | --vu0-clamp-range || start, end offset || per range clamping for VU0 || --vu0-clamp-range=0x100,0x120<br /> |- <br /> | --vu0-jr-cache-policy || newprog,sameprog,auto || PCSX2 use newprog as default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu0-jr-cache-policy=sameprog<br /> |-<br /> | --vu0-jalr-cache-policy || newprog,sameprog,auto || PCSX2 use newprog as default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu0-jalr-cache-policy=sameprog<br /> |-<br /> | --vu0-mul0fix-range || vu0 memory offset start,end (0x0 - 0xFFF) || Fix for games that multiply by zero ||<br /> |-<br /> | --vu0-accurate-addsub-range || || ||<br /> |-<br /> | --vu0-aot-start-addr || start address || Seems to be PS3 command 0x12 replacement ahead of time compilation with CRC then to start, and CRC when to finish||<br /> |-<br /> | --vu0-aot-outmode || out/overwrite, append || ||<br /> |-<br /> | --vu0-aot-end-addr || end address for ahead of time compilation || || <br /> |-<br /> | --vu0-aot-start-crc || verify crc for aot start block (registers) || ||<br /> |-<br /> | --vu0-aot-end-crc || verify crc for aot end block (registers) || ||<br /> |-<br /> | --vu1 || jit-sync, jit, jit-async, trans || Selector between IR/JIT and it modes. Jit-sync behaves similar to turning of MTVU in pcsx2. || --vu1=jit-sync<br /> |-<br /> | --vu1-mul0fix-range || vu1 memory offset start,end (0x0 - 0x3FFF) || Fix for games that multiply by zero || --vu1-mul0fix-range=0x1230,0x1238<br /> |- <br /> | --vu1-opt-flags || [0,1,2] - 1=safe, 2=unsafe || Optimize flags instances when do VU recompilation (1 is safe, 2 update sticky, and mac flag on every status flag update) [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --vu1-opt-flags=0<br /> |- <br /> | --vu1-opt-vf00 || || optimization for vf00? Not really sure here as vf00 is a special register where x,y,z are hard coded to 0.0 and w is hard-coded to 1.0. Not sure what to optimize here. ||<br /> |- <br /> | --vu1-opt-subroutine || || ||<br /> |- <br /> | --vu1-const-prop || || Constant propagation [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L312 More info] || --vu1-const-prop=1<br /> |- <br /> | --vu1-no-clamping || 0, 1 || No clamping for vu1 (default 1) || --vu1-no-clamping=0<br /> |- <br /> | --vu1-clamp-operands || 0, 1 || vu1 clamp on operand stage || --vu1-clamp-operands=1<br /> |- <br /> | --vu1-clamp-results || 0, 1 || vu1 clamp for results of operations || --vu1-clamp-results=1<br /> |- <br /> | --vu1-inst-q || || instant Q, not stall on WAITQ, or instances of Q(?) ||<br /> |- <br /> | --vu1-inst-p || || instant P, not stall on WAITP, or instances of P(?) ||<br /> |- <br /> | --vu1-jr-cache-policy || newprog,sameprog,auto || PCSX2 use newprog as default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu1-jr-cache-policy=sameprog<br /> |-<br /> | --vu1-jalr-cache-policy || newprog,sameprog,auto || PCSX2 use newprog as default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu1-jalr-cache-policy=sameprog<br /> |- <br /> | --vu1-use-rcp || || use sse rcp ||<br /> |- <br /> | --vu1-use-rsqrt || || use sse rsqrt ||<br /> |- <br /> | --vu1-di-bits || || ||<br /> |- <br /> | --vu1-injection || 0, 1 or enable/disable depend on emu revision || || --vu1-injection=1<br /> |-<br /> | --vu1-native-patch || 0,1 || use native patches from recompiler || --vu1-native-patch=1<br /> |- <br /> | --vtune-vu || || ||<br /> |- <br /> | --vu-jit-disasm || 0, 1, 2 || seems to be debug print only option. || 0,1=mips,2=x86<br /> |- <br /> | --vu1-mpg-cycles || cycles_per_Microprogram || set initial cycles for vu1 microprograms || --vu1-mpg-cycles=1000<br /> |-<br /> | --cop2-opt-flags || [0,1,2] - 1=safe, 2=unsafe || Optimize flags when do VU recompilation (1 is safe, 2 update sticky, and mac flag on every status flag update) [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --cop2-opt-flags=1<br /> |- <br /> | --cop2-opt-vf00 || || optimization for vf00? Not really sure here as vf00 is a special register where x,y,z are hard coded to 0.0 and w is hard-coded to 1.0. Not sure what to optimize here. ||<br /> |- <br /> | --cop2-const-prop || || Constant propagation [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L312 More info] ||<br /> |- <br /> | --cop2-no-clamping || || No clamping for COP2 (default 1) || --cop2-no-clamping=0<br /> |-<br /> | --cop2-no-clamp-range || start,end offset (0x0 - 0x1FFFFFF) || No clamping for COP2 in selected range || --cop2-no-clamp-range=0x123456,0x134567<br /> |- <br /> | --cop2-clamp-operands || 0,1 || clamp on operand stage || --cop2-clamp-operands=1<br /> |- <br /> | --cop2-clamp-results || 0,1 || clamp for results of operations || --cop2-clamp-results=1<br /> |- <br /> | --cop2-regalloc || || PCSX2 seems to have this enabled by default. ||<br /> |- <br /> | --cop2-inst-q || || instant Q, not stall on VWAITQ, , or instances of Q(?) ||<br /> |- <br /> | --cop2-inst-p || || ? ||<br /> |- <br /> | --cop2-use-rcp || || use sse rcp ||<br /> |- <br /> | --cop2-use-rsqrt || 0,1 || use sse rsqrt || --cop2-use-rsqrt=0<br /> |- <br /> | --cop2-di-bits || 0,1 || || --cop2-di-bits=1<br /> |- <br /> | --cop2-accurate-range || start,end offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-range=0x123456,0x134567<br /> |- <br /> | --cop2-accurate-mul || offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-mul=0x123456<br /> |- <br /> | --cop2-accurate-mul-range || start,end offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-mul-range=0x123456,0x134567<br /> |- <br /> | --cop2-accurate-addsub || start,end offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-addsub=0x123456<br /> |- <br /> | --cop2-accurate-addsub-range || start,end offset (0x0 - 0x1FFFFFF) || || --cop2-accurate-addsub-range=0x123456,0x134567<br /> |}<br /> <br /> ====GS/VIF====<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Values !! Notes !! Usage <br /> |-<br /> | --vif-ignore-invalid-cmd || 0,1 || Ignore invalid vif commands || --vif-ignore-invalid-cmd=1<br /> |-<br /> | --vif1-ignore-cmd-ints || 0,1 || || --vif1-ignore-cmd-ints=1<br /> |-<br /> | --vif1-instant-xfer || 0,1 || &quot;Instant VIF transfer&quot; Default 1. Correct behavior is 0, but we don't know how accurate VIF timing is in that emu. || --vif1-instant-xfer=0<br /> |-<br /> | --vif-thread-chunk-size || int/kilowords || ||<br /> |-<br /> | --force-frame-blend || 0, 1 || || --force-frame-blend=1<br /> |-<br /> | --framelimit-mode || --framelimit-mode || normal,fast,fastest,slow,slower,slowest || --framelimit-mode=slowest<br /> |-<br /> | --gs-scanout-delay || hsync_count/integer || ||<br /> |- <br /> | --gs-fieldswap-delay || || Wait longer than usual to change field ||<br /> |- <br /> | --gs-use-deferred-l2h || || Some delay option for L2H (local to host, GS to EE)|| -gs-use-deferred-l2h=1 <br /> |- <br /> | --l2h-2d-params || TRXREG,BITBLTBUF,height || || --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> |- <br /> | --gs-uprender || none,2x2 || Rendering upscaler (use higher internal resolution) || --gs-uprender=2x2<br /> |- <br /> | --gs-upscale || none, gpu, edgesmooth, motionvec, point, || after recompilation upscaler? || --gs-upscale=EdgeSmooth<br /> |- <br /> | --gs-aspect-ratio || aspect/float (default=0.81) || || --gs-aspect-ratio=0.65<br /> |- <br /> | --gs-progressive || || Force progressive scan? ||<br /> |- <br /> | --gs-force-bilinear || 0,1 || force bilinear filtering || --gs-force-bilinear=1<br /> |-<br /> | --gs-frontend-opt-mode || (0-2?) || || --gs-frontend-opt-mode=1<br /> |- <br /> | --gs-use-mipmap || 0,1 || Required for CL kernels using mipmaping || --gs-use-mipmap=1<br /> |- <br /> | --gs-use-clut-merge || 0.1 || Required for CL kernels using merging CLUT || --gs-use-clut-merge=1<br /> |- <br /> | --gs-kernel-cl || h2lpool, clutmerge, mipmap, DarkCloud2, fantavision || Kernel Variant || --gs-kernel-cl=&quot;clutmerge&quot;<br /> |- <br /> | --gs-kernel-cl-up || h2lpool2x2, OptRightTri, clutmerge2x2, mipmap2x2, up2x2simple, up2x2skipinterp || Kernel Variant Upscaler || --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> |- <br /> | --gs-optimize-30fps || || || --gs-optimize-30fps=1<br /> |- <br /> | --gs-motion-factor || motion factor || [value 25 is used on NTSC-U game in official PKG, so unknown what it is] || --gs-motion-factor=25<br /> |-<br /> | --gs-override-small-tri-area || || || <br /> |-<br /> | --gs-check-trans-rejection68 || 0,1? || || --gs-check-trans-rejection68=1<br /> |- <br /> | --gs-check-trans-rejection || || ||<br /> |- <br /> | --gs-skip-dirty-flush-on-mipmap || 0,1 || Require mipmap GS CL kernel || --gs-skip-dirty-flush-on-mipmap=1<br /> |- <br /> | --gs-packed15-fmv-opt || 0,1 || || --gs-packed15-fmv-opt=1<br /> |- <br /> | --gs-scanout-offsetx || relative offset/ignored || Directly overwrite GS register? || --gs-scanout-offsetx=27<br /> |- <br /> | --gs-scanout-offsety || relative offset/ignored || || <br /> |-<br /> | --gs-dirty-page-policy || 0,1? || || --gs-dirty-page-policy=1<br /> |-<br /> | --force-pal-60hz || 0,1 || Force 60hz PAL mode || --force-pal-60hz=1<br /> |-<br /> | --gs-flush-ad-xyz || always, safe, off, 0 || || --gs-flush-ad-xyz=safe<br /> |-<br /> | --gs-render-tile-threshold || || || --gs-render-tile-threshold=300000<br /> |-<br /> | --gs-uv-shift-pointsampling || || || --gs-uv-shift-pointsampling=1<br /> |-<br /> | --safe-area-min || area/float (range 0.9 to 1.0) || || --safe-area-min=0.9<br /> |-<br /> | --threaded-gs || 0,1 (more?) || || --threaded-gs=0<br /> |-<br /> | --gs-opt-frbuff-switch || || || --gs-opt-frbuff-switch=1<br /> |-<br /> | --gs-ignore-rect-correction || || || --gs-ignore-rect-correction=1<br /> |-<br /> | --idec-cycles-per-qwc || int/multiplier || || --idec-cycles-per-qwc=768<br /> |-<br /> |}<br /> <br /> === XXXX-YYYYY_config.lua ===<br /> <br /> It is most powerful config. Allow direct patching EE/IOP/VU memory, hooks registers, hook dma. Everything can be done here. <br /> <br /> If needed it can hook registers by using register names from alias files. Alias files (ee-cpr0-alias.lua, ee-gpr-alias.lua, ee-hwaddr.lua) are stored in lua_include folder, and can be included to config by using require ( &quot;alias file name&quot; ).<br /> <br /> '''Known functions: <br /> '''<br /> Require cleanup.<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Usage !! Notes<br /> |-<br /> | apiRequest || apiRequest(&lt;api version&gt;) || example: apiRequest(0.1) <br /> Different emu versions support different highest api. <br /> Calling api is mandatory. some commands require higher version. Highest known version is 2.3 api from JAK 2,3,X game emulator.<br /> |-<br /> ! !! getEmuObject class !! <br /> |-<br /> | getEmuObject || local emuObj = getEmuObject() || Required for all functions using emuObj, that include: &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;LoadConfig SaveConfig GetPad AddVsyncHook<br /> RemoveVsyncHook AddEntryPointHook RemoveEntryPointHook<br /> AddLoginHook RemoveLoginHook AddLogoutHook RemoveLogoutHook<br /> CheckEntitlement AddImageHook AddGifTagHook SwapMemCard<br /> SetFormattedCard OpenDiscTray CloseDiscTray SwitchDisc<br /> EnableImposeMenu GetDiscId GetDiscTitleId<br /> AddSectorReadHook AddMCWriteHook ShowDiscSwitchInfo GetPs4SystemLang SetPs2Lang<br /> ThrottleNorm ThrottleFast ThrottleMax AddAssertionHook <br /> SetGsTitleFix SetDeinterlace SetDisplayAspectWide SetDisplayAspectNormal <br /> ForceRefreshRate LoadFsShader SetDisplaySafeArea PadSetLightBar <br /> emuAddPadHook PadPressureStickRemap SetVolumes GetVolumes <br /> SetAudioRoute GetAudioRoute AddSnapshotLoadedHook<br /> RemoveSnapshotLoadedHook IsNeoMode IsToolingVerbose emuMediaPatch &lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |LoadConfig || ||<br /> |-<br /> |SaveConfig || ||<br /> |-<br /> |GetPad || emuObj.GetPad(&lt;gamepad button by bits&gt;)|| example usage for reading input: <br /> &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;local CheckInputs = function()<br /> <br /> local pad_bits = emuObj.GetPad()<br /> local UP = pad_bits &amp; 0x0010<br /> local DOWN = pad_bits &amp; 0x0040<br /> local LEFT = pad_bits &amp; 0x0080<br /> local RIGHT = pad_bits &amp; 0x0020<br /> local Triangle = pad_bits &amp; 0x1000<br /> local Cross = pad_bits &amp; 0x4000<br /> local Square = pad_bits &amp; 0x8000<br /> local Circle = pad_bits &amp; 0x2000<br /> local L1 = pad_bits &amp; 0x0400<br /> local L2 = pad_bits &amp; 0x0100<br /> local L3 = pad_bits &amp; 0x0002<br /> local R1 = pad_bits &amp; 0x0800<br /> local R2 = pad_bits &amp; 0x0200<br /> local R3 = pad_bits &amp; 0x0004<br /> local Select = pad_bits &amp; 0x0001<br /> local Start = pad_bits &amp; 0x0008 <br /> <br /> if (L2 ~= 0) then<br /> &lt;here function that should be done when L2 is pushed&gt;<br /> end<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(CheckInputs) &lt;to trigger check at every vsync&gt;&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |AddVsyncHook || emuObj.AddVsyncHook(&lt;task to be done every vsync&gt;) || emuObj.AddVsyncHook(my_function) <br /> my_function can be anything, from simple patches, to extensive hook.<br /> Example usage can be found in SLUS-21550 features file.<br /> |-<br /> |RemoveVsyncHook || emuObj.RemoveVsyncHook(&lt;previously added task to be removed&gt;) || emuObj.RemoveVsyncHook(my_function)<br /> |-<br /> |AddEntryPointHook || emuObj.AddEntryPointHook(&lt;task&gt;) || Task to be done at ps2 game main elf entry point (right where game is loaded).<br /> |-<br /> |RemoveEntryPointHook || ||<br /> |-<br /> |AddLoginHook || ||<br /> |-<br /> |RemoveLoginHook || ||<br /> |-<br /> |AddLogoutHook || ||<br /> |-<br /> |RemoveLogoutHook || ||<br /> |-<br /> |CheckEntitlement || ||<br /> |-<br /> |AddImageHook || ||<br /> |-<br /> |AddGifTagHook || ||<br /> |-<br /> |SwapMemCard || ||<br /> |-<br /> |SetFormattedCard || emuObj.SetFormattedCard(&lt;&quot;file name&quot;&gt;) || emuObj.SetFormattedCard(&quot;custom_formatted.card&quot;)<br /> Allow to use custom memory card. <br /> |-<br /> |OpenDiscTray || ||<br /> |-<br /> |CloseDiscTray || ||<br /> |-<br /> |SwitchDisc || emuObj.SwitchDisc(&lt;disc ID&gt;) || ID can be provided as is, or for example read from memory or register when needed.<br /> |-<br /> | EnableImposeMenu || emuObj.EnableImposeMenu(&lt;true/false&gt;) || EnableImposeMenu(false)<br /> |-<br /> | GetDiscId || emuObj.GetDiscId() || Return DiscId in XXXX_YYY.ZZ format<br /> |-<br /> | GetDiscTitleId || ||<br /> |-<br /> | AddSectorReadHook || emuObj.AddSectorReadHook(&lt;sector, unk, task&gt;) || Hook to do task when disc image sector is read. Not all values are known (ex. emuObj.AddSectorReadHook(776480, 32, &lt;task/function&gt;) )<br /> |-<br /> |AddMCWriteHook || ||<br /> |-<br /> |ShowDiscSwitchInfo || ||<br /> |-<br /> | GetPs4SystemLang || emuObj.GetPs4SystemLang() || Return PS4 system language (in unknown format).<br /> |-<br /> | SetPs2Lang || emuObj.SetPs2Lang(&lt;Lang ID&gt;) || Set emulated PS2 language, correct Lang IDs are 0-18.<br /> &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;0 - japanese<br /> 1 - english<br /> 2 - french<br /> 3 - spanish<br /> 4 - german<br /> 5 - italian<br /> 6 - dutch<br /> 7 - portuguese<br /> 8 - russian<br /> 9 - korean<br /> 10 - traditonal-chinese<br /> 11 - simplified-chinese<br /> 12 - finnish<br /> 13 - swedish<br /> 14 - danish<br /> 15 - norwegian<br /> 16 - polish<br /> 17 - portuguese-brazil<br /> 18 - english-uk&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |ThrottleNorm ||emuObj.ThrottleNorm() || Enable default framelimiter (50/60 fps depend on region).<br /> |-<br /> |ThrottleFast || emuObj.ThrottleFast() || Faster than default, but exact value is unknown.<br /> |-<br /> |ThrottleMax || emuObj.ThrottleMax() || Disable framelimiter at all, usually used during static loadings in official packages.<br /> |-<br /> |AddAssertionHook || ||<br /> |-<br /> | SetGsTitleFix || || [[PS2_Emulation#SetGsTitleFix|More info]]<br /> |-<br /> |SetDeinterlace || emuObj.SetDeinterlace(0 , 1?) || emuObj.SetDeinterlace(0)<br /> |-<br /> |SetDisplayAspectWide || emuObj.SetDisplayAspectWide() || Force display area to 16:9 (If game not support widescreen, it will be stretched).<br /> |-<br /> |SetDisplayAspectNormal || emuObj.SetDisplayAspectNormal() || Force display area to 4:3.<br /> |-<br /> |ForceRefreshRate || emuObj.ForceRefreshRate(&lt;hz&gt;) || emuObj.ForceRefreshRate(50) correct values are 0, 50, 60 where 0 = default. <br /> |-<br /> |LoadFsShader || emuObj.LoadFsShader(&lt;slot?&gt;, &quot;&lt;path&gt;&quot;) || &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;Shaders must be loaded right after GS has been initialized. <br /> Example:<br /> Global_InitGpuResources = function()<br /> emuObj.LoadFsShader(1, &quot;./shader.sb&quot;)<br /> end<br /> <br /> That only load Fragment Shader to program memory, to use it we need BindFragmentShader, <br /> and if depend on shader SetShaderParams.&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |SetDisplaySafeArea || ||<br /> |-<br /> |PadSetLightBar || emuObj.PadSetLightBar(&lt;port, red, green, blue&gt;) || Set DS4 light bar color. Correct port values are 0-3, correct light values are 0-255.<br /> |-<br /> |emuAddPadHook || ||<br /> |-<br /> |PadPressureStickRemap || ||<br /> |-<br /> |SetVolumes || emuObj.SetVolumes('global', 'main', 'bgm') || Set volume, usually setting global is enough. Example: emuObj.SetVolumes(0.31, 1.0, 1.0) values, in floats 1.0 = 100%<br /> |-<br /> |GetVolumes || emuObj.GetVolumes() || Return current volume levels for ('global', 'main', 'bgm') in floating point values.<br /> |-<br /> |SetAudioRoute || ||<br /> |-<br /> |GetAudioRoute || ||<br /> |-<br /> | CountFrameOnPS2 || ||<br /> |-<br /> |AddSnapshotLoadedHook || ||<br /> |-<br /> |RemoveSnapshotLoadedHook || ||<br /> |-<br /> | IsNeoMode || emuObj.IsNeoMode() || Check that PS4 run in NEO (PRO) mode. Return 1/0<br /> |-<br /> | IsToolingVerbose || ||<br /> |-<br /> | emuMediaPatch || emuMediaPatch(disc sector, 12/24 + offset, { original data }, { replace data }) || Replace 4 bytes from loaded iso file. For unknown reason we always need to add 12 to real offset for DVD game, and 24 for CD game. <br /> |-<br /> ! !! getIOPObject class !! <br /> |-<br /> | getIOPObject || local iopObj = getIOPObject() || Required for all functions using iopObj, that include: &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;ReplaceMem64 ReplaceMem32 ReplaceMem16 ReplaceMem8 ReadMemFloat<br /> WriteMemFloat WriteMem64 WriteMem32 WriteMem16 WriteMem8<br /> ReadMemStr AddHook RemoveHook GetGpr SetGpr GetPc SetPc<br /> GetCPR0 SetCPR0 iopInsnReplace&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |ReplaceMem64 || ||<br /> |-<br /> |ReplaceMem32 || ||<br /> |-<br /> |ReplaceMem16 || ||<br /> |-<br /> |ReplaceMem8 || ||<br /> |-<br /> |ReadMemFloat || iopObj.ReadMemFloat(&lt;address&gt;) || iopObj.ReadMemFloat(0x28c3c)<br /> |-<br /> |WriteMemFloat || iopbj.WriteMemFloat(&lt;address&gt;, &lt;value&gt;) || iopObj.WriteMemFloat(0x65364, 1.3333333)<br /> |-<br /> | ReadMem64 || &lt;pre&gt;iopObj.ReadMem64(&lt;iop memory offset&gt;)&lt;/pre&gt; || <br /> |-<br /> | WriteMem64 || &lt;pre&gt;iopObj.WriteMem64(&lt;iop memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || <br /> |-<br /> | ReadMem32 || &lt;pre&gt;iopObj.ReadMem32(&lt;iop memory offset&gt;)&lt;/pre&gt; || Read 4 bytes from offset, examples: iopObj.ReadMem32(0x1198)<br /> iopObj.ReadMem32(gp - 348)<br /> |-<br /> | WriteMem32 || &lt;pre&gt;iopObj.WriteMem32(&lt;iop memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 4 bytes to offset, example: iopObj.WriteMem32(0x89ac, 0x001b70f0)<br /> |-<br /> | ReadMem16 || &lt;pre&gt;iopObj.ReadMem16(&lt;iop memory offset&gt;)&lt;/pre&gt; || Read 2 bytes from offset, example: iopObj.ReadMem16(0x1198)<br /> |-<br /> | WriteMem16 || &lt;pre&gt;iopObj.WriteMem16(&lt;iop memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 2 bytes to offset, example: iopObj.WriteMem16(0x89ac, 0x70f0)<br /> |-<br /> | ReadMem8 || &lt;pre&gt;iopObj.ReadMem8(&lt;iop memory offset&gt;)&lt;/pre&gt; || Read 1 byte from offset, example: iopObj.ReadMem8(0x1198)<br /> |-<br /> | WriteMem8 || &lt;pre&gt;iopObj.WriteMem8(&lt;iop memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 1 byte to offset, example: iopObj.WriteMem8(0x89ac, 0xf0)<br /> |-<br /> |ReadMemStr || ||<br /> |-<br /> |AddHook || ||<br /> |-<br /> |RemoveHook || ||<br /> |-<br /> |GetGpr || iopObj.GetGPR(&lt;gpr register&gt;) || iopObj.GetGPR(a1)<br /> |-<br /> |SetGpr || iopObj.SetGPR(&lt;gpr register&gt; ,&lt;value&gt;) || example: iopObj.SetGPR(gpr.v0 ,3)<br /> |-<br /> |GetPc || ||iopObj.GetPc(), can be used also with additional var. like iopObj.GetPc()+8<br /> |-<br /> |SetPc || iopObj.SetPC(&lt;PC&gt;) ||iopObj.SetPC(0x6B80)<br /> |-<br /> |GetCPR0 || iopObj.GetCPR0(&lt;COP0 register&gt;) ||<br /> |-<br /> |SetCPR0 || iopObj.SetCPR0(&lt;COP0 register&gt;) ||<br /> |-<br /> | iopInsnReplace || iopInsnReplace(IOP memory offset, Original opcode (BE), Replace opcode (BE)) || Replace 4 bytes opcode in iop memory, correct memory range is 0x0 to 0x1FFFFF<br /> |-<br /> ! !! getEEObject class !!<br /> |-<br /> | getEEObject || local eeObj = getEEObject() || Required for all functions using eeObj<br /> |-<br /> |ReplaceMem64 || ||<br /> |-<br /> |ReplaceMem32 || ||<br /> |-<br /> |ReplaceMem16 || ||<br /> |-<br /> |ReplaceMem8 || ||<br /> |-<br /> |ReadMemFloat || eeObj.ReadMemFloat(&lt;address&gt;) || eeObj.ReadMemFloat(0x258c3c)<br /> |-<br /> |WriteMemFloat || eeObj.WriteMemFloat(&lt;address&gt;, &lt;value&gt;) || eeObj.WriteMemFloat(0x365364, 1.3333333)<br /> |-<br /> |ReadMem128 || &lt;pre&gt;eeObj.ReadMem128(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 16 bytes from offset, examples: eeObj.ReadMem128(0x100198)<br /> |-<br /> |ReadMemFloat128 || &lt;pre&gt;eeObj.ReadMemFloat128(&lt;ee memory offset&gt;)&lt;/pre&gt; || return 16 bytes from offset in float form<br /> |-<br /> |WriteMem128 || ||<br /> |-<br /> |WriteMemFloat128 || ||<br /> |-<br /> | ReadMem64 || &lt;pre&gt;eeObj.ReadMem64(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 8 bytes from offset, examples: eeObj.ReadMem64(0x100198)<br /> |-<br /> | WriteMem64 || &lt;pre&gt;eeObj.WriteMem64(&lt;ee memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || <br /> |-<br /> | ReadMem32 || &lt;pre&gt;eeObj.ReadMem32(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 4 bytes from offset, examples: eeObj.ReadMem32(0x100198)<br /> eeObj.ReadMem32(gp - 31348)<br /> |-<br /> | WriteMem32 || &lt;pre&gt;eeObj.WriteMem32(&lt;ee memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 4 bytes to offset, example: eeObj.WriteMem32(0x2c89ac, 0x001b70f0)<br /> |-<br /> | ReadMem16 || &lt;pre&gt;eeObj.ReadMem16(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 2 bytes from offset, example: eeObj.ReadMem16(0x100198)<br /> |-<br /> | WriteMem16 || &lt;pre&gt;eeObj.WriteMem16(&lt;ee memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 2 bytes to offset, example: eeObj.WriteMem16(0x2c89ac, 0x70f0)<br /> |-<br /> | ReadMem8 || &lt;pre&gt;eeObj.ReadMem8(&lt;ee memory offset&gt;)&lt;/pre&gt; || Read 1 byte from offset, example: eeObj.ReadMem8(0x100198)<br /> |-<br /> | WriteMem8 || &lt;pre&gt;eeObj.WriteMem8(&lt;ee memory offset&gt;, &lt;data&gt;)&lt;/pre&gt; || Write 1 byte to offset, example: eeObj.WriteMem8(0x2c89ac, 0xf0)<br /> |-<br /> |ReadMemStr || eeObj.ReadMemStr(address/register) || Read string from address until null terminator<br /> |-<br /> | AddHook || eeObj.AddHook(&lt;ee offset&gt;, &lt;original opcode&gt;, &lt;definied hook name&gt;) || example: &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;local W1 = <br /> function()<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> <br /> local ws1 = eeObj.AddHook(0x1c9840, 0xaf808c78, W1)&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |RemoveHook || || <br /> |-<br /> |AddPreHook || ||<br /> |-<br /> |RemovePreHook || ||<br /> |-<br /> |RemovePostHook || ||<br /> |-<br /> |GetGpr64 || eeObj.GetGPR64(&lt;gpr register&gt;) || example: eeObj.GetGPR64(t3)<br /> |-<br /> |SetGpr64 || ||<br /> |-<br /> | GetGprFloat || || Get gpr value as float value<br /> |-<br /> | SetGprFloat || || Set gpr value as float value<br /> |-<br /> |GetGpr / GetGPR || eeObj.GetGPR(&lt;gpr register&gt;) || eeObj.GetGPR(t3)<br /> |-<br /> |SetGpr / SetGPR || eeObj.SetGPR(&lt;gpr register&gt; ,&lt;value&gt;) || example: eeObj.SetGPR(gpr.a3 ,1)<br /> Require defined getEEObject() as eeObj<br /> |-<br /> | GetFprHex || eeObj.GetFprHex(&lt;FPU register (0-31)&gt;)|| Get/return floating point register value as hex string<br /> |-<br /> | SetFprHex || eeObj.SetFprHex(&lt;FPU register (0-31), value (u32)&gt;)|| Set floating point register value as hex string<br /> |-<br /> | GetFpr / GetFPR || eeObj.GetFpr(&lt;register number&gt;) || example eeObj.GetFpr(14)<br /> |-<br /> | SetFpr / SetFPR || eeObj.SetFpr(&lt;fpr register number&gt;, &lt;value&gt;) || Simple example eeObj.SetFpr(14, 50.0) will set frp 14 to 50.0<br /> But we can also combine commands to add/sub from registers<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0) this will add 50.0 to current fpr 14 value<br /> |-<br /> |GetPc || ||eeObj.GetPc(), can be used also with additional var. like eeObj.GetPc()+4<br /> |-<br /> |SetPc || eeObj.SetPC(&lt;PC&gt;) ||eeObj.SetPC(0x266B80)<br /> |-<br /> |GetCPR0 || eeObj.GetCPR0(&lt;COP0 register&gt;) || <br /> |-<br /> |SetCPR0 || eeObj.SetCPR0(&lt;COP0 register&gt;) || <br /> |-<br /> |SchedulerDelayEvent || eeObj.SchedulerDelayEvent(&quot;event&quot;, cycles) || Parrapa use eeObj.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500) Possible events are gif.dma, vif0.dma, vif1.dma, sif0.dma, sif1.dma, ipu0.dma, ipu1.dma . This command allow to delay certain DMA transfer by cycles. <br /> |-<br /> |DmaAddHook || ||<br /> |-<br /> |DmaRemoveHook || ||<br /> |-<br /> |WaitVu1 || ||<br /> |-<br /> |Vu1MpgCycles || eeObj.Vu1MpgCycles(&lt;cycles&gt;) || eeObj.Vu1MpgCycles(100) Values is cycles that VU1 microprogram should run before force end<br /> |-<br /> |GetPcRingBuffer || ||<br /> |-<br /> |WriteMemStr || eeObj.WriteMemStr(address, string) || <br /> |-<br /> |FastForwardClock || ||<br /> |-<br /> |AdvanceClock || ||<br /> |-<br /> |WriteMemStrZ || || eeObj.WriteMemStrZ(string pointer, string) . Pointer can be read from GPR<br /> |-<br /> |Precompile || ||<br /> |-<br /> |CalcInsnHash || ||<br /> |-<br /> |AddJitResetHook || ||<br /> |-<br /> |RemoveJitResetHook || ||<br /> |-<br /> |getOverlayObject || || local eeOverlay = eeObj.getOverlayObject()<br /> |-<br /> | GetVif1Cycles || eeObj.GetVif1Cycles() || local vif1_cycles = eeObj.GetVif1Cycles() create vif_cycles value that can be used later, you can rename it as you wish.<br /> |-<br /> ! !! getGLSObject class !!<br /> |-<br /> | getGLSObject || || <br /> |-<br /> |Enable || ||<br /> |-<br /> |EnableServerRecording || || <br /> |-<br /> |Pause || || <br /> |-<br /> ! !! getGsObject class !!<br /> |-<br /> | getGsObject || local gsObj = getGsObject() || <br /> |-<br /> |SetL2HMode || ||<br /> |-<br /> |SetUprenderMode || ||<br /> |-<br /> |SetUpscaleMode || ||<br /> |-<br /> |GetFramesInQueue || ||<br /> |-<br /> |SetFrameSkipping || ||<br /> |-<br /> |SetDeinterlaceShift || || gsObj.SetDeinterlaceShift(0)<br /> |-<br /> ! !! getAudioObject class !!<br /> |-<br /> | getAudioObject || || <br /> |-<br /> | muteStreamingAll || || <br /> |-<br /> | muteStreamingMain || || <br /> |-<br /> | muteStreamingBGM || || <br /> |-<br /> ! !! getRemotePlayObject class !!<br /> |-<br /> | getRemotePlayObject || || <br /> |-<br /> | Enable || || <br /> |-<br /> ! !! getVideoRecordingObject class !!<br /> |-<br /> | getVideoRecordingObject || ||<br /> |-<br /> | Enable || || <br /> |-<br /> ! !! getSharePlayObject class !!<br /> |-<br /> | getSharePlayObject || || <br /> |-<br /> | Enable || || <br /> |-<br /> ! !! getSpriteObject group !!<br /> |-<br /> |getSpriteObject || ||<br /> |-<br /> |Enable || ||<br /> |-<br /> |Disable || ||<br /> |-<br /> |BindFragmentShader || ||<br /> |-<br /> |SetShaderParams || || &lt;div align=&quot;left&quot;&gt;<br /> &lt;pre&gt; Is not clear that params depend on shader, or are somehow hardcoded.<br /> Example usage:<br /> <br /> local sprite0 = getSpriteObject(0)<br /> local scanlineParams = {<br /> 240.0, -- float scanlineCount<br /> 0.7, -- float scanlineHeight;<br /> 1.5, -- float scanlineBrightScale;<br /> 0.5, -- float scanlineAlpha;<br /> 0.5 -- float vignetteStrength;<br /> }<br /> <br /> sprite0.SetShaderParams(scanlineParams)&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> |BindTexture || ||<br /> |-<br /> |SetPosXY || ||<br /> |-<br /> |SetSizeXY || ||<br /> |-<br /> |SetPosUV || ||<br /> |-<br /> |SetSizeUV || ||<br /> |-<br /> |PrintContext || ||<br /> |-<br /> |SetBlendColor || sprite&lt;X&gt;.SetBlendColor(&lt;R,G,B,A&gt;) in floats, max val. 1.0 || &lt;div align=&quot;left&quot;&gt;<br /> &lt;pre&gt;local sprite0 = getSpriteObject(0)<br /> sprite0.SetBlendColor(1.0,1.0,1.0,1.0)&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> ! !! Not require Obj call group, or unknown !! <br /> |-<br /> | eeInsnReplace || eeInsnReplace(EE memory offset, Original opcode (BE), Replace opcode (BE)) || Replace 4 bytes opcode in ee memory, correct memory range is 0x0 to 0x1FFFFFFF<br /> |-<br /> | vuInsnReplace || &lt;pre&gt;vuInsnReplace(vu 0/1, vu memory offset divided by 8, (original opcode&lt;&lt;32) | original opcode, (replace opcode&lt;&lt;32) | replace opcode) &lt;/pre&gt;|| Replace 2 x 4 bytes in VU memory, correct memory range depend on selected VU, left shift by 32 is used for VU lower opcodes. Command will fail if size is above 254. &lt;pre&gt;example:<br /> vuInsnReplace(0, 0x167, (0x000002ff &lt;&lt; 32) | 0x520507ff,(0x000002ff &lt;&lt; 32) | 0x8000033c)<br /> Replace 64 bits of VU0 at offset 0xB38&lt;/pre&gt;<br /> |-<br /> | eeNativeFunction || eeNativeFunction(&lt;ee offset&gt;, &lt;original opcode&gt;, &lt;function&gt;) || eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> Different emulators can have different functions included, vide SO3. Require api 1.4 or higher.<br /> But functions from this list should be available in every emu:<br /> &lt;pre&gt;ieee754_acosf ieee754_asinf ieee754_sqrtf<br /> fabs cosf fabsf<br /> sinf acosf asinf<br /> sqrtf fptoui fptodp<br /> litodp dptoli dptofp<br /> memcpy memset strlen&lt;/pre&gt; <br /> |-<br /> | eeNativeHook || eeNativeHook(&lt;ee ofset&gt;, &lt;original opcode&gt;, &lt;action&gt;) || eeNativeHook require apiRequest(1.4) or higher.<br /> |-<br /> | GsCustomShader || || <br /> |-<br /> | getTrophyObject || local trophyObj = getTrophyObject() || Required for all functions using trophyObj<br /> |-<br /> | getDmaObject || local dmaObj = getDmaObject() || Depreciated API - use EE:DmaAddHook / EE:DmaRemoveHook instead. Is not clear when it was depreciated, JAK emu don't use it.<br /> |-<br /> | Unlock || || <br /> |-<br /> | getScreenShotObject || || <br /> |-<br /> | IsUnlocked || || <br /> |-<br /> | InsnOverlay || InsnOverlay({&lt;opcode, opcode, opcode...&gt;}) || example: &lt;div align=&quot;left&quot;&gt;&lt;pre&gt;InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })&lt;/pre&gt;&lt;/div&gt;<br /> |-<br /> | eeDebugBreak || || <br /> |-<br /> | CsBindShader || || <br /> |-<br /> | CsSetParamInt32 || || <br /> |-<br /> | CsSetParamFloat || || <br /> |-<br /> | CsResetContext || || <br /> |-<br /> | CsPrintContext || || <br /> |-<br /> | PsBindShader || || <br /> |-<br /> | PsSetParamInt32 || || <br /> |-<br /> | PsSetParamFloat || || <br /> |-<br /> | PsResetContext || || <br /> |-<br /> | PsPrintContext || || <br /> |-<br /> |}<br /> &lt;b&gt;Note:&lt;/b&gt; eeObj, emuObj, gsObj, etc are described as required, this is not really true. You can set functions locals they use as whatever you want, but due to specify of that emulator it will be better to keep official naming used in official configs.<br /> <br /> ===Registers for hook===<br /> Registers defined in alias files. <br /> <br /> '''GetGpr/SetGpr<br /> '''<br /> &lt;pre&gt;gpr.zero gpr.at <br /> gpr.v0 gpr.v1 <br /> gpr.a0 gpr.a1 gpr.a2 gpr.a3 <br /> gpr.t0 gpr.t1 gpr.t2 gpr.t3 <br /> gpr.t4 gpr.t5 gpr.t6 gpr.t7 <br /> gpr.s0 gpr.s1 gpr.s2 gpr.s3 <br /> gpr.s4 gpr.s5 gpr.s6 gpr.s7 <br /> gpr.t8 gpr.t9<br /> gpr.k0 gpr.k1 <br /> gpr.gp gpr.sp gpr.fp gpr.ra <br /> gpr.lo gpr.hi gpr.sa<br /> <br /> example: eeObj.GetGpr(gpr.a1) &lt;/pre&gt;<br /> <br /> '''GetCPR0/SetCPR0<br /> '''<br /> &lt;pre&gt;cpr.index cpr.pagemask<br /> cpr.random cpr.wired <br /> cpr.entrylo0 cpr.badvaddr<br /> cpr.entrylo1 cpr.count <br /> cpr.context cpr.entryhi <br /> <br /> <br /> cpr.compare cpr.config cpr.taglo <br /> cpr.status cpr.badpaddr cpr.taghi <br /> cpr.cause cpr.hwbk cpr.errorepc<br /> cpr.epc cpr.pccr <br /> cpr.prid<br /> <br /> example: eeObj.GetCPR0(cpr.status) &lt;/pre&gt;<br /> <br /> ===SetGsTitleFix===<br /> <br /> One of very important commands in ps2 emu lua, allow to change GS behavior.<br /> Part of EmuObject() class, used frequently in official configs. <br /> &lt;br&gt;Example usage from official config files: https://pastebin.com/yf802Up3<br /> <br /> <br /> '''Commands''' <br /> <br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Command !! Notes<br /> |-<br /> |globalSet || used with workLoadThreshold or waveThreshold or loadThreshold<br /> |-<br /> |reserved ||<br /> |-<br /> |forceBiLinear ||<br /> |-<br /> |ignoreSubBuffCov|| ignore ? buffer coverage<br /> |-<br /> |trianglesAsParticles||<br /> |-<br /> |ignoreAreaUpdate||<br /> |-<br /> |SetSelfRender||<br /> |-<br /> |ignoreSprite||<br /> |-<br /> |clipScissors||<br /> |-<br /> |forcePoint||<br /> |-<br /> |forcePointSampling||<br /> |-<br /> |setRejectionArea||<br /> |-<br /> |ignoreUpRender|| Ignore uprender for texture type described in params<br /> |-<br /> |includeAreaUpdate||<br /> |-<br /> |forceSimpleFetch||<br /> |-<br /> |fetchFromCurrBuff||<br /> |-<br /> |ignoreUpShiftTri||<br /> |-<br /> |skipPacked||<br /> |-<br /> |changeAlpha||<br /> |-<br /> |ignoreUpRenderTimeout||<br /> |-<br /> |}<br /> <br /> '''Arguments/variables<br /> '''<br /> {| cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; border=&quot;1&quot; class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;<br /> ! Argument !! Notes<br /> |-<br /> |alpha_mask || <br /> |-<br /> |alphaIsNot || alpha - is not X<br /> |-<br /> |texMode || 1 - Point? , 2 - bilinear <br /> |-<br /> |twIsLess || texture width - is less than X<br /> |-<br /> |thIsLess || texture height - is less than X<br /> |-<br /> |twIsNot || texture width - is not X<br /> |-<br /> |thIsNot || texture width - is not X<br /> |-<br /> |psmIsNot || texture pixel storage format - is not X<br /> &lt;pre&gt;PSMCT32 = 0 PSMT4HL = 36<br /> PSMCT24 = 1 PSMT4HH = 44<br /> PSMCT16 = 2 PSMZ32 = 48<br /> PSMCT16S = 10 PSMZ24 = 49<br /> PSMT8 = 19 PSMZ16 = 50<br /> PSMT4 = 20 PSMZ16S = 58<br /> PSMT8H = 27 &lt;/pre&gt;<br /> |-<br /> |zmsk || Z (depth) draw mask<br /> &lt;pre&gt;update Z buffer = 0<br /> don't update Z buffer = 1<br /> <br /> When 1 depth test result will be ignored&lt;/pre&gt;<br /> |-<br /> |tw || texture width<br /> |-<br /> |th || texture height<br /> |-<br /> |ztst || Z (depht) test method<br /> &lt;pre&gt;ZNOUSE = 0<br /> ZALWAYS = 1<br /> ZGEQUAL = 2<br /> ZGREATER = 3<br /> <br /> 0 - All pixels fail<br /> 1 - All pixels pass<br /> 2 - Pass if Z grater or equal to Z buffer<br /> 3 - Pass if Z grater than Z buffer&lt;/pre&gt;<br /> |-<br /> |mipIsGt || mip level is grater than X (?)<br /> |-<br /> |mmin || MMIN flag <br /> &lt;pre&gt;NEAREST = 0<br /> LINEAR = 1<br /> NEAREST_MIPMAP_NEAREST = 2<br /> NEAREST_MIPMAP_LINEAR = 3<br /> LINEAR_MIPMAP_NEAREST = 4<br /> LINEAR_MIPMAP_LINEAR = 5&lt;/pre&gt;<br /> |-<br /> |prim || GS primitive type <br /> &lt;pre&gt;Point = 0<br /> Line = 1<br /> LineStrip = 2<br /> Triangle = 3<br /> TriangleStrip = 4<br /> TriangleFan = 5<br /> Sprite = 6&lt;/pre&gt;<br /> |-<br /> |primIsNot || GS primitive type - is not<br /> &lt;pre&gt;Point = 0<br /> Line = 1<br /> LineStrip = 2<br /> Triangle = 3<br /> TriangleStrip = 4<br /> TriangleFan = 5<br /> Sprite = 6&lt;/pre&gt;<br /> |-<br /> |fillArea || <br /> |-<br /> |frameW || <br /> |-<br /> |renderSelf || <br /> |-<br /> |hasClut || <br /> |-<br /> |alphaTest || <br /> |-<br /> |primTest || <br /> |-<br /> |workLoadThreshold || <br /> |-<br /> |alpha || &lt;pre&gt; example: alpha=0x80000044<br /> alpha=0&lt;/pre&gt;<br /> |-<br /> |texType || (1-3, more? )<br /> |-<br /> |tbp || texture base pointer<br /> |-<br /> |cbp || CLUT buffer base pointer<br /> |-<br /> |psm || texture pixel storage format<br /> &lt;pre&gt;PSMCT32 = 0 PSMT4HL = 36<br /> PSMCT24 = 1 PSMT4HH = 44<br /> PSMCT16 = 2 PSMZ32 = 48<br /> PSMCT16S = 10 PSMZ24 = 49<br /> PSMT8 = 19 PSMZ16 = 50<br /> PSMT4 = 20 PSMZ16S = 58<br /> PSMT8H = 27 &lt;/pre&gt;<br /> |-<br /> |mxl || maximum mip level (0-6)<br /> |-<br /> |fbmask || ? <br /> |-<br /> |totalArea || <br /> |-<br /> |packedRegs || <br /> |-<br /> |packedRegsLo || <br /> |-<br /> |packedRegsHi || <br /> |-<br /> |packedRegsNum || <br /> |-<br /> |packedFlags || <br /> |-<br /> |packedPrim || <br /> |-<br /> |areaNumFrames || <br /> |-<br /> |waveThreshold || <br /> |-<br /> |loadThreshold || <br /> |-<br /> |fixSpriteDivTab || <br /> |}<br /> <br /> <br /> ===Example configs===<br /> <br /> ====Official example====<br /> &lt;pre&gt;<br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> eeInsnReplace(0x13BCD0, 0x3c023f80, 0x3C023F40) -- Zoom<br /> eeInsnReplace(0x1153B4, 0x3c023f80, 0x3C023FAB) -- Y-FOV<br /> <br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9 <br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> ====Custom config.lua example====<br /> <br /> Here is the first custom lua config created by the community:<br /> <br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix black screen SLUS-20064<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100ffff, 0x00000000) -- bc0f 0x1CF3CC to nop<br /> &lt;/pre&gt;<br /> <br /> This is very basic command to replace part of EE memory with other instruction. <br /> * apiRequest(0.1) - Is required for every config. Used version depend on your original eboot highest supported api. 0.1 seems to be enough for basic patches like here. 0.4 is highest known for now. <br /> * -- Fix black screen SLUS-20064 is comment<br /> * eeInsnReplace(0x1CF3CC, 0x4100ffff, 0x00000000) is our true command here. We are replacing here 0x4100FFFF to 0x00000000 at 0x1CF3CC memory offset. Like you can see we need to add what opcode is replaced. Not only patch, and memory offset.<br /> * -- bc0f 0x1CF3CC to nop is just another comment, in this case explaining what is changed<br /> <br /> ==PS3 Config support==<br /> <br /> Emulator support configs in format known from ps2_netemu/ps2classic from PS3. This feature was officially used in Arc the Lad Twilight of the Spirits ps2-ps4 classic.&lt;br/&gt;<br /> To enable ps3 style config add this to config-emu-ps4.txt:<br /> <br /> *--lopnor-config=1<br /> *--ps2-title-id=TITLE-ID<br /> <br /> Config file need to be in folder ...'''/patches/{TITLE-ID}/''' and file need to have name '''{TITLE-ID}_lopnor.cfgbin'''. title id need to be in XXXX-YYYYY format (ex. SLUS-12345). <br /> &lt;br&gt;Example path: /patches/SLUS-12345/SLUS-12345_lopnor.cfgbin<br /> &lt;br&gt;Tester confirmed that configs work like that. We don't even need to edit them, they work as is.<br /> <br /> <br /> '''Config repository:''' https://github.com/Zarh/ManaGunZ/tree/master/pkgfiles/USRDIR/sys/CONFIG<br /> Just download as raw file, and rename correctly.<br /> <br /> Note that not all configs will be supported. Tested are ICE AGE 2, and DOA2, work fine, Rayman config not work due to unsupported command.<br /> Please keep in mind that not all commands seems to be recognized, good candidates are configs with [Net] Command ID : 0xZZ<br /> where 0xZZ is 0x01 (not sure about that one), 0x09, 0x0A, 0x0B, 0x0F, 0x10, 0x26, 0x27<br /> You can check that here, but sadly only for GX/SOFT configs (most of overall anyway): https://github.com/Zarh/Get_CONFIG/blob/master/log.txt<br /> *More about PS3 style configs/commands: https://www.psdevwiki.com/ps3/PS2_Emulation#Game_CONFIG<br /> *Log from loading that kind of config: https://pastebin.com/ZpUyU8DE<br /> <br /> = PS2 Bios =<br /> <br /> ==Description==<br /> <br /> The PS2 bios is the file '''PS20220WD20050620.crack''' included in every PS2 game .pkg. It Is '''exactly''' the same BIOS that Sony used in ps2_netemu.self in PS3. Due to lack of many X modules homebrew compatibility is limited, and many of those need to be recompiled to use non X versions of modules, or need to load open source versions of them thru mc/cdvd. Important non X module that is missing is libsd, and homebrew that need it, will most likely fail to boot, or error.<br /> &lt;br&gt;Bios is know to blacklist some titles, and refuse to boot them. This include all titles with 00000000 000000A0 flag from that [[PS2_Emulation#Game_ID/DiscID in PS20220WD20050620.crack | list (click here)]]<br /> <br /> Bios version seems to be Developement v2.20 from Japan region (22/01/2007), but it's of course not limited to booting only NTSC-J games.<br /> Emulator not support USB peripherals, but this seems to be not limitation of BIOS, as it is used also in CECH C/E PS3 consoles. <br /> There are signs that different bios version exist, named PS20190AC20030623_nordram_miniOSD.bin. This bios have included handy extensions for debugging, and can debug print with &quot;debug osd verbosity&quot; from CLI set to &quot;verbose&quot;. Most noticeable difference for both bios files seems to be special RDRAM module. <br /> &lt;br&gt;<br /> &lt;br&gt;'''PS20220WD20050620.crack file MD5: 83AD2B530C9C102A561BA1CDC6D996D5'''<br /> <br /> ==Files inside ROM image==<br /> <br /> {| class=&quot;wikitable&quot; style=&quot;font-size:small;&quot;<br /> ! File !! Offset in exported bin !! Description !! File type (exportable)<br /> |-<br /> | RESET || 0x00 || Bootstrap code for the EE and IOP. || BIN<br /> |-<br /> | ROMDIR || 0x2780 || The ROMDIR part of the ROM image, which provides information on the location and name of files contained in the image. || BIN<br /> |-<br /> | EXTINFO || 0x2CC0 || Contains the &quot;EXTINFO&quot; for all files in the ROM image. || BIN<br /> |-<br /> | SBIN || 0x3330 || Seems to be the pad controller library for the PS1 monitor. || BIN<br /> |-<br /> | LOGO || 0xA2D0 || PS1 logo? || BIN<br /> |-<br /> | IOPBTCONF || 00x1EA20 || Boot configuration file for the IOP, during the final phase of the IOP reset. If no UDNL module is specified, the IOP will only have a single IOP reset in the reboot process, with the modules listed in IOPBTCONF. || BIN<br /> |-<br /> | IOPBTCON2 || 0x1EB10 || Boot configuration file for the IOP, for the first phase of the IOP reset (before UDNL is loaded). || BIN<br /> |-<br /> | SYSMEM || 0x1EBE0 || System Memory Manager. || ELF<br /> |-<br /> | LOADCORE || 0x1FE00 || The core of IOP module loading. Provides the lowest level of IOP module loading functions. Also handles the startup of the IOP. || ELF<br /> |-<br /> | EXCEPMAN || 0x22380 || Exception manager. || ELF<br /> |-<br /> | INTRMANP || 0x22F60 || Interrupt Manager. According to wisi, it is for PS mode. || ELF<br /> |-<br /> | INTRMANI || 0x24970 || Interrupt Manager. According to wisi, it is for IOP mode. || ELF<br /> |-<br /> | SSBUSC || 0x267B0 || SSBUS Controller library. The SSBUS seems to be the bus that all peripherals get connected to. It seems to have the power to control the mapping of the device registers, as well as access timing. || ELF<br /> |-<br /> | TIMEMANP || 0x26F20 || Timer Manager (PS mode) || ELF<br /> |-<br /> | TIMEMANI || 0x27B00 || Timer Manager (IOP mode) || ELF<br /> |-<br /> | DMACMAN || 0x28730 || DMA Controller Manager. || ELF<br /> |-<br /> | SYSCLIB || 0x2BE30 || System C Library. || ELF<br /> |-<br /> | HEAPLIB || 0x2E590 || Memory HEAP LIBrary (i.e. thvpool, thfpool) || ELF<br /> |-<br /> | THREADLIB || 0x2F290 || Multi_Thread_Manager || ELF<br /> |-<br /> | VBLANK || 0x38020 || V-Blank management || ELF<br /> |-<br /> | IOMAN || 0x38DB0 || IO Manager || ELF<br /> |-<br /> | MODLOAD || 0x3AD20 || IOP module loader. || ELF<br /> |-<br /> | ROMDRV || 0x3D070 || ROM driver. Provides access to the boot ROM (rom0). || ELF<br /> |-<br /> | ADDDRV || 0x3DF60 || Adds support for the DVD ROM (rom1:), via ROMDRV. || ELF<br /> |-<br /> | STDIO || 0x3D3C0 || Standard I/O library. || ELF<br /> |-<br /> | SIFMAN || 0x3EFB0 || SIF manager. || ELF<br /> |-<br /> | SIFINIT || 0x40550 || Initializes the SIF. || ELF<br /> |-<br /> | EESYNC || 0x40970 || For synchronizing with the EE, at the end of IOP resets. EESYNC from DNAS images are evil; they also perform a memory wipe of the region from 0x00084000 to .0x00100000. || ELF<br /> |-<br /> | EENULL || 0x40E10 || The idle thread (id #0) module, in ps2 loaded to 0x00081FC0. || BIN<br /> |-<br /> | PS1ID || 0x40E50 || Only found in newer boot ROMs || BIN<br /> |-<br /> | LIBFI || 0x40E60 || Not present in the boot ROM of the SCPH-10000 and SCPH-15000. || BIN<br /> |-<br /> | PS1VERJ || 0x40F50 || || BIN<br /> |-<br /> | PS1VERA || 0x40F60 || || BIN<br /> |-<br /> | PS1VERE || 0x40F70 || || BIN<br /> |-<br /> | PS1VERC || 0x40F80 || || BIN<br /> |-<br /> | PS1VERH || 0x40F90 || || BIN<br /> |-<br /> | OSDSYS || 0x40FA0 || The browser || BIN<br /> |-<br /> | - || 0x40FB0 || || BIN<br /> |-<br /> | RDRAM || 0x41000 || Provides a RDRAM test for the EE at power-on. This is run from RESET. || BIN<br /> |-<br /> | EELOADCNF || 0x43D50 || Contains the IOP boot configuration file for EELOAD. || BIN<br /> |-<br /> | SIFCMD || 0x43F00 || SIF command module. Contains the SIF command and SIF RPC functions. || ELF<br /> |-<br /> | REBOOT || 0x46140 || The reboot service. Receives IOP reset packets from the EE, from across the SIF. || ELF<br /> |-<br /> | LOADFILE || 0x46910 || The RPC server for MODLOAD || ELF<br /> |-<br /> | EECONF || 0x49070 || Loads part of the system configuration from the MECHACON EEPROM. Also configures and resets some peripherals, depending on the model version. In slimlines, and possibly on PS3 EECONF will also load the MAC address. || ELF<br /> |-<br /> | - || 0x49FF0 || || BIN<br /> |-<br /> | IOPBOOT || 0x4A000 || IOP bootup program || BIN<br /> |-<br /> | - || 0x4B160 || || BIN<br /> |-<br /> | TBIN || 0x4B800 || The PS1 monitor program. Seems to be the PS1 BIOS. This is started by RESET, when the IOP is in PS1 mode. || BIN<br /> |-<br /> | XSHA1 || 0x59770 || sha1 - this only present in PS3. It is used as additional antipiracy check. It seems that it calculate disc main elf checksum and compares it with some database. Config related?|| ELF<br /> |-<br /> | XLOADFILE || 0x5A740 || Updated module || ELF<br /> |-<br /> | SIO2MAN || 0x5D7F0 || SIO2 manager. Provides access to the SIO2 interface. || ELF<br /> |-<br /> | - || 0x5F420 || || BIN<br /> |-<br /> | MCSERV || 0x61340 || RPC server for MCMAN. || ELF<br /> |-<br /> | - || 0x63040 || || BIN<br /> |-<br /> | KROMG || 0x64000 || || BIN<br /> |-<br /> | - || 0x65CC0 || || BIN<br /> |-<br /> | KROM || 0x66000 || Kanji ROM? Not sure where this is used. || BIN<br /> |-<br /> | - || 0x7FE70 || || BIN<br /> |-<br /> | ROMVER || 0x7FF00 || ROM version. || BIN<br /> |-<br /> | - || 0x7FF10 || || BIN<br /> |-<br /> | VERSTR || 0x7FF30 || Version string. Probably PS1 ROM will use this because that this string is also present in PlayStation consoles. || BIN<br /> |-<br /> | - || 0x7FF90 || || BIN<br /> |-<br /> | ROMGSCRT || 0x80000 || || BIN<br /> |-<br /> | NCDVDMAN || 0x82D30 || It seems to be a heavily stripped-down CDVDMAN module, with no support for some S-command functions like sceCdRI. || ELF<br /> |-<br /> | SECRMAN || 0x8F770 || Security Manager. Signing is NOT done with the one in ROM, but with a special version that comes with the utility discs. Looks like PS3 units have a different SECRMAN module from retail sets, similar to PS2 TOOL one. || ELF<br /> |-<br /> | MCMAN || 0x93C30 || Memory Card Manager. || ELF<br /> |-<br /> | PADMAN || 0xA30C0 || Pad manager. || ELF<br /> |-<br /> | CDVDMAN || 0xAC810 || The CD/DVD manager. || ELF<br /> |-<br /> | CDVDFSV || 0xB4BC0 || The RPC server for CDVDMAN. || ELF<br /> |-<br /> | FILEIO || 0xBCF80 || RPC server for IOMAN. Sony has greatly changed the semantics and design of FILEIO after some point. Connecting an old FILEIO EE RPC client to a newer server will result in a severe IOP crash. || ELF<br /> |-<br /> | CLEARSPU || 0xBF080 || Seems to clear/reset the SPU, but is known to cause crashes under some conditions. Not sure if it's buggy or not. Only used by the OSDSYS of the SCPH-10000 and SCPH-15000, probably retained for backward-compatibility. || ELF<br /> |-<br /> | UDNL || 0xC0CC0 || It is responsible for selecting the modules and starting the IOP, during the final phase of the IOP reset where the desired modules are to be loaded into the IOP. || ELF<br /> |-<br /> | IGREETING || 0xC2BC0 || Displays boot information (i.e. IOP boot type, EBOOTP, IBOOTP, switch positions for DSW602 and the type of DSW602 board installed || ELF<br /> |-<br /> | EELOAD || 0xC3C20 || The EE ELF loader, which is loaded by LoadExecPS2() to 0x00082000 in PS2 for loading ELFs. || BIN<br /> |-<br /> | XCDVDMAN || 0xD2DA0 || cdvd_driver - Updated module || ELF<br /> |-<br /> | XCDVDFSV || 0xE1B30 || cdvd_ee_driver - Updated module || ELF<br /> |-<br /> | OSDSND || 0xEFF60 || OSD sound library. This is actually the tentative sound driver, which is called &quot;librspu2&quot; in the Sony SDK. || ELF<br /> |-<br /> | PS2LOGO || 0x11ABB0 || Displays the PlayStation 2 logo from the inserted disc. For newer consoles, if the logo cannot be decrypted properly, it will fall back to the browser. Not actually required to boot games, but the Sony OSDSYS boots PS2 games through this program. || ELF<br /> |-<br /> | XPARAM2 || 0x137500 || File store per title settings for IOP emulation (XPARAM available also in real PS2 since 750XX where Deckard powerPC was introduced) || ELF<br /> |-<br /> | OSDSYS || 0x139A00 || The browser || BIN<br /> |-<br /> | PIOPRP || 0x177880 || Present in the PS3 ps2_(gx/soft/net)emu; contains version 3.1.0 of the IOP software (compared to version 1.3.4 on the root). || BIN<br /> |-<br /> | KERNEL || 0x1BB7E0 || The EE kernel || BIN<br /> |}<br /> Description source: https://gist.github.com/uyjulian/25291080f083987d3f3c134f593483c5<br /> <br /> == Game_ID/DiscID in PS20220WD20050620.crack ==<br /> <br /> There are 193 titleIDs listed inside XPARAM2.ELF file of PS2 Bios included in PS20220WD20050620.crack. XPARAM2.ELF is called by OSDSYS, then ID check is performed. If titleID match to one of included in the table, different IOP emulation settings are applied. This include blacklisting for some specific titles. <br /> <br /> Original PS2 bios from models with emulated IOP, include similar list file called XPARAM.ELF. Title IDs there are not the same, although some of them exist on both lists.<br /> <br /> {| class=&quot;wikitable sortable&quot; || <br /> |- <br /> ! Command !! Name<br /> |-<br /> | 0x00 || TITLE_MASK <br /> |-<br /> | 0x01 || SIO2_MASK<br /> |-<br /> | 0x02 || DEV9_MASK<br /> |-<br /> | 0x03 || USB_MASK<br /> |-<br /> | 0x04 || SIF_DMA_SYNC<br /> |-<br /> | 0x05 || SIF_DMA_LOAD<br /> |-<br /> | 0x06 || DMAC_CH10_INT_DELAY<br /> |-<br /> | 0x07 || MECHA_RECOGTIME<br /> |-<br /> | 0x08 || CPU_DELAY<br /> |-<br /> | 0x09 || DEV5_INT_SPEED<br /> |-<br /> | 0x0A || CDVD_READ_DELAY<br /> |-<br /> | 0x0B || SPU2_BEHAVIOR<br /> |-<br /> |}<br /> <br /> {| class=&quot;wikitable sortable&quot; || <br /> |- <br /> ! ID !! Title !! Command !! Value !! Remarks <br /> |- <br /> |PBPX_952.01 || DVD Utility Disc Version 1.00 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.02 || DVD Utility Disc Version 1.01 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.03 || DVD Utility Disc Version 1.01 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.06 || DVD Player (Version 2.01) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.07 || DVD Player (Version 2.10) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.08 || DVD Player (Version 2.10) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.09 || DVD Player (Version 2.10) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.10 || DVD Utility Disc Version 2.10 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.11 || DVD Utility Disc Version 1.00 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.21 || DVD Player (Version 2.12) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.22 || DVD Player (Version 2.14) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.24 || DVD Player (Version 2.16) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.28 || || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.35 || || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_952.39 || Online Start Up Disc v3.0 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_955.01 || Linux for PS2 Beta Release 1 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_955.07 || Playstation 2 Linux Runtime Environment v1.0 (Disc 1) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_955.09 || Linux for PS2 Release 1.0 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PBPX_955.18 || || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PDPX_991.09 || DVD Player (Version 3.04) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PSXC_002.01 || PSX Update Disc 1.10 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PSXC_002.02 || PSX Update Disc 1.20 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PSXC_002.03 || PSX Update Disc 1.31 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |PTPX_970.38 || || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCAJ_201.25 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCAJ_201.26 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCES_532.02 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCKA_200.49 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCPM_621.15 || || 0x00 || 0x1000000 || TITLE_MASK<br /> |-<br /> |SCPM_621.16 || || 0x00 || 0x1000000 || TITLE_MASK<br /> |-<br /> |SCPN_601.01 || PlayStation BB Navigator (Version 0.10) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPN_601.30 || PlayStation BB Navigator (Version 0.20) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPN_601.40 || PlayStation BB Navigator (Version 0.30) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPN_601.50 || PlayStation BB Navigator (Version 0.31) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPN_601.60 || PlayStation BB Navigator (Version 0.32) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPS_110.01 || I.Q. Remix || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPS_110.10 || Yoake no Mariko (Performance Pack Edition) || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SCPS_110.18 || Yoake no Mariko || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SCPS_110.21 || Yoake no Mariko 2nd Act (Limited Edition) || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SCPS_110.22 || Yoake no Mariko 2nd Act || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SCPS_150.38 || Lifeline || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SCPS_150.39 || Lifeline || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SCPS_170.01 || Gran Turismo 4 || 0x0B || 0x10000000 || SPU2_BEHAVIOR<br /> |-<br /> |SCPS_175.01 || Linux (for PlayStation2) Release 1.0 || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SCPS_200.39 || || 0x00 || 0x4000000 || TITLE_MASK<br /> |-<br /> |SCUS_971.67 || PaRappa the Rapper 2 || 0x04 || 0x2000 || SIF_DMA_SYNC<br /> |-<br /> |SCUS_972.69 || Final Fantasy XI [Disc 2] || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLES_500.48 || Donald Duck: Quack Attack || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_500.62 || Orphen: Scion of Sorcery || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLES_503.64 || City Crisis || 0x0A || 0x80BB8 || CDVD_READ_DELAY<br /> |-<br /> |SLES_504.46 || Shadow Man 2: The Second Coming || 0x0A || 0x80600 || CDVD_READ_DELAY<br /> |-<br /> |SLES_505.40 || Simpsons: Road Rage || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_506.08 || Shadow Man 2: The Second Coming || 0x0A || 0x80600 || CDVD_READ_DELAY<br /> |-<br /> |SLES_506.28 || Simpsons: Road Rage || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_507.28 || Tiger Woods PGA Tour 2002 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLES_507.29 || || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLES_512.82 || Tiger Woods PGA Tour 2003 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLES_514.79 || Def Jam Vendetta || 0x01 || 0x802 || SIO2_MASK<br /> |-<br /> |SLES_518.41 || SpyHunter 2 || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_518.44 || Time Crisis 3 || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_519.97 || SWAT: Global Strike Team || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_520.97 || SWAT: Global Strike Force || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLES_530.37 || Super Monkey Ball Deluxe || 0x01 || 0x802 || SIO2_MASK<br /> |-<br /> |SLES_536.68 || Micro Machines v4 || 0x01 || 0x801 || SIO2_MASK<br /> |-<br /> |SLES_537.55 || Castlevania: Curse of Darkness || 0x04 || 0x10 || SIF_DMA_SYNC<br /> |-<br /> |SLES_537.96 || FIFA Street 2 || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPM_620.42 || Kurogane no Houkou: Warship Commander || 0x01 || 0x3000 || SIO2_MASK<br /> |-<br /> |SLPM_620.62 || Gitaroo Man One || 0x0A || 0x80540 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_621.05 || Taikou Risshiden IV || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPM_621.24 || Ready 2 Rumble Boxing: Round 2 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_621.25 || Gauntlet: Dark Legacy || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLPM_621.25 || Gauntlet: Dark Legacy || 0x09 || 0x2B470005 || DEV5_INT_SPEED<br /> |-<br /> |SLPM_621.35 || Final Fantasy: XI (Beta Version) || 0x00 || 0xA0000000 || TITLE_MASK, 0xA0000000 = Blacklist, boot after removing flag<br /> |-<br /> |SLPM_621.54 || DDRMAX Dance Dance Revolution 6thMix || 0x08 || 0x1A5E || CPU_DELAY<br /> |-<br /> |SLPM_622.39 || Supercar Street Challenge || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_623.69 || Karaoke Revolution: J-Pop Vol.1 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.79 || Karaoke Revolution: J-Pop Vol.2 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.80 || Karaoke Revolution: J-Pop Vol.3 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.81 || Karaoke Revolution: J-Pop Vol.4 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.82 || Karaoke Revolution: Love &amp; Ballad || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_623.83 || Karaoke Revolution: Night Selection 2003 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.14 || Karaoke Revolution: Dreams &amp; Memories || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.37 || Suisui Sweet: Amai Ai no Mitsukekata || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_624.50 || Karaoke Revolution: Anime Song Selection || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.51 || Karaoke Revolution: J-Pop Vol.5 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.54 || Karaoke Revolution: J-Pop Vol.6 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.55 || Karaoke Revolution: J-Pop Vol.7 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.56 || Karaoke Revolution: J-Pop Vol.8 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.57 || Karaoke Revolution: Snow &amp; Party || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.64 || Pop'n Taisen Pazurudame Online || 0x08 || 0x1F40 || CPU_DELAY<br /> |-<br /> |SLPM_624.79 || Karaoke Revolution: J-Pop Vol.9 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_624.91 || Mega Man: The Power Battle || 0x04 || 0x2000 || SIF_DMA_SYNC<br /> |-<br /> |SLPM_624.92 || Karaoke Revolution: Kids Song Selection || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_625.28 || Karaoke Revolution: Kazoku Idol Sengen (Bundle Edition) || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_625.29 || Karaoke Revolution: Kazoku Idol Sengen || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_650.86 || A Visual Mix: Ayumi Hamasaki Dome Tour 2001 (Disc 1) || 0x08 || 0x1450 || CPU_DELAY<br /> |-<br /> |SLPM_650.87 || A Visual Mix: Ayumi Hamasaki Dome Tour 2001 (Disc 2) || 0x08 || 0x1450 || CPU_DELAY<br /> |-<br /> |SLPM_650.90 || Spy Hunter || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPM_651.97 || Nobunaga's Ambition Online || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_652.09 || Star Ocean: Till the End of Time || 0x0B || 0x20014 || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_654.38 || Star Ocean: Till the End of Time (Director's Cut) (Disc 1) || 0x0B || 0x20014 || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_654.39 || Star Ocean: Till the End of Time (Director's Cut) (Disc 2) || 0x0B || 0x20014 || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_654.88 || Grand Theft Auto: Vice City || 0x0A || 0x300 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_654.88 || Grand Theft Auto: Vice City || 0x09 || 0x36000200 || DEV5_INT_SPEED<br /> |-<br /> |SLPM_656.33 || I Love Baseball: Pro Yakyu wo Koyonaku || 0x08 || 0xFA0 || CPU_DELAY<br /> |-<br /> |SLPM_656.98 || Love Songs: ADV Futaba Riho 14-sai Natsu || 0x0A || 0x80380 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_657.05 || Final Fantasy XI: Chains of Promathia (Expansion Disc) || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_657.06 || Final Fantasy XI: Chains of Promathia (All-In-One Edition) || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_657.19 || Burnout 3: Takedown || 0x01 || 0x1C00 || SIO2_MASK<br /> |-<br /> |SLPM_657.83 || Nobunaga no Yabou Online: Tappi no Shou || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_658.94 || Winning Post 6: 2005 Version || 0x01 || 0x2400 || SIO2_MASK<br /> |-<br /> |SLPM_659.34 || Maple Colors || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_659.53 || Final Fantasy: XI (Entry Disc 2005) || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_659.84 || Grand Theft Auto: San Andreas || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_660.33 || The Sword of Etheria || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLPM_660.33 || The Sword of Etheria || 0x00 || 0x2000000 || TITLE_MASK<br /> |-<br /> |SLPM_660.48 || The Sword of Etheria || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLPM_660.48 || The Sword of Etheria || 0x00 || 0x2000000 || TITLE_MASK<br /> |-<br /> |SLPM_660.57 || Taito Memories Vol.1 || 0x08 || 0xCE4 || CPU_DELAY<br /> |-<br /> |SLPM_661.56 || Marheaven: Arm Fight Dream || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPM_661.75 || Akumajo Dracula: Yami no Juin || 0x08 || 0x60 || CPU_DELAY<br /> |-<br /> |SLPM_661.75 || Akumajo Dracula: Yami no Juin || 0x0B || 0x2001C || SPU2_BEHAVIOR<br /> |-<br /> |SLPM_663.93 || Final Fantasy XI: Treasures of Aht Urhgan (All-In-One Edition) || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPM_663.93 || Final Fantasy XI: Treasures of Aht Urhgan (All-In-One Edition) || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPM_663.93 || Final Fantasy XI: Treasures of Aht Urhgan (All-In-One Edition) || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_663.94 || Final Fantasy XI: Treasures of Aht Urhgan || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_664.36 || Aria the Natural || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPM_664.36 || Aria the Natural || 0x00 || 0xA000000 || TITLE_MASK<br /> |-<br /> |SLPM_665.39 || Nobunaga no Yabou Online: Haten no Shou || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPM_665.58 || Tomb Raider: Legend || 0x08 || 0x3E8 || CPU_DELAY<br /> |-<br /> |SLPM_665.74 || Detective Evangelion || 0x00 || 0x2000000 || TITLE_MASK<br /> |-<br /> |SLPM_680.07 || Karaoke Revolution (Trial) || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPM_680.10 || || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPS_200.08 || Morita Shogi || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLPS_200.20 || FIFA 2000 World Championship || 0x04 || 0x2001 || SIF_DMA_SYNC<br /> |-<br /> |SLPS_200.37 || Go Go Golf || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPS_200.38 || Grappler Baki: Baki Saidai no Tournament || 0x08 || 0x1194 || CPU_DELAY<br /> |-<br /> |SLPS_200.53 || Tenshi no Present: Marle Oukoku Monogatari (Limited Edition) || 0x0B || 0x20000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_200.66 || Tenshi no Present: Marle Oukoku Monogatari || 0x0B || 0x20000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_201.01 || City Crisis || 0x0A || 0x80BB8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_201.11 || Magical Sports Pro Baseball 2001 || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPS_201.72 || Koushien: Konpeki no Sora || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPS_201.73 || Hard Hitter 2 || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_201.97 || Surfing Air Show with RatBoy || 0x09 || 0x2B47000A || DEV5_INT_SPEED<br /> |-<br /> |SLPS_201.99 || F1 2002 || 0x0B || 0x20005 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_202.00 || Final Fantasy XI || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLPS_204.04 || Rakushou! Pachi-Slot Sengen 2 || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_204.29 || Hissatsu Pachi-Slot Evolution: Ninja Hattori-Kun V || 0x08 || 0x1B58 || CPU_DELAY<br /> |-<br /> |SLPS_204.55 || Simple 2000 Series Vol.94: The Aka-Champion - Come on Baby || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_250.08 || Sorcerous Stabber Orphen || 0x08 || 0xC1C || CPU_DELAY<br /> |-<br /> |SLPS_250.71 || A Visual Mix: Ayumi Hamasaki Dome Tour 2001 || 0x08 || 0x1450 || CPU_DELAY<br /> |-<br /> |SLPS_250.72 || A Visual Mix: Ayumi Hamasaki Dome Tour 2001 || 0x08 || 0x1450 || CPU_DELAY<br /> |-<br /> |SLPS_250.81 || Saishuu Densha || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_251.36 || Kuon no Kizuna Sairin Mikotonori || 0x0A || 0x805DC || CDVD_READ_DELAY<br /> |-<br /> |SLPS_251.42 || Tiger Woods PGA Tour 2002 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_251.50 || Only You || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_252.37 || Only You || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_252.75 || Def Jam: Vendetta || 0x01 || 0x802 || SIO2_MASK<br /> |-<br /> |SLPS_252.78 || Memories Off: Mix || 0x0A || 0x80300 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_252.90 || Time Crisis 3 || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLPS_253.15 || One Piece: Grand Battle 3 || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPS_253.57 || 3-Nen B-Gumi Kinpachi Sensei: Densetsu no Kyoudan ni Tate! || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPS_253.79 || Tokyo Majin Gakuen: Kaihoujyou Kefurokou || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_254.06 || Hitman: Contracts || 0x08 || 0xDAC || CPU_DELAY<br /> |-<br /> |SLPS_254.18 || Ace Combat 5: The Unsung War || 0x0A || 0x500000 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_255.10 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_255.85 || Monster Farm 5: Circus Caravan || 0x07 || 5 || MECHA_RECOGTIME<br /> |-<br /> |SLPS_255.86 || Tales of the Abyss || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_256.04 || Ar tonelico Qoga: Knell of Ar Ciel || 0x00 || 0xA000000 || TITLE_MASK<br /> |-<br /> |SLPS_256.67 || Daito Giken Premium Pachi-Slot Collection: Yoshimune || 0x01 || 0x1800 || SIO2_MASK<br /> |-<br /> |SLPS_256.98 || Fatal Fury Battle Archives Volume 2 || 0x00 || 0xA000000 || TITLE_MASK<br /> |-<br /> |SLPS_257.08 || The Familiar of Zero (Limited Edition) || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_257.09 || The Familiar of Zero || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLPS_257.21 || HimeHibi - Princess Days || 0x0B || 0x8000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLPS_257.22 || Routes PE (Limited Edition) || 0x08 || 0x3E8 || CPU_DELAY<br /> |-<br /> |SLPS_257.27 || Routes PE || 0x08 || 0x3E8 || CPU_DELAY<br /> |-<br /> |SLPS_732.49 || Ar tonelico Qoga: Knell of Ar Ciel (Platinum) || 0x00 || 0xA000000 || TITLE_MASK<br /> |-<br /> |SLUS_200.11 || Orphen: Ocion of Sorcery || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLUS_200.11 || Orphen: Ocion of Sorcery || 0x09 || 0x8000010 || DEV5_INT_SPEED<br /> |-<br /> |SLUS_200.77 || Donald Duck: Go'in Quackers || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_202.74 || City Crisis || 0x0A || 0x80BB8 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_203.05 || Simpsons: Road Rage || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_203.64 || Tiger Woods PGA Tour 2002 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_204.13 || Shadowman 2 || 0x0A || 0x80600 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_204.33 || SWAT: Global Strike Team || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_204.88 || Star Ocean: Til the end of Time [Disc 1] || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLUS_205.72 || Tiger Woods PGA Tour 2003 || 0x0A || 0x803E8 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_205.90 || Spyhunter 2 || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_206.35 || Muppets Party Cruise || 0x01 || 0x801 || SIO2_MASK<br /> |-<br /> |SLUS_206.39 || Def Jam Vendetta || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_206.86 || Splashdown: Rides Gone Wild || 0x0A || 0x80400 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_208.38 || All-Star Baseball 2005 || 0x01 || 0x802 || SIO2_MASK<br /> |-<br /> |SLUS_208.51 || Ace Combat 5: The Unsung War || 0x0A || 0x500000 || CDVD_READ_DELAY<br /> |-<br /> |SLUS_208.91 || Star Ocean: Til the end of Time [Disc 2] || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLUS_209.18 || Super Monkey Ball: Deluxe || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_210.59 || Tekken 5 || 0x0B || 0x40000000 || SPU2_BEHAVIOR<br /> |-<br /> |SLUS_210.70 || Final Fantasy XI: Chains of Promathia || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLUS_210.89 || Karaoke Revolution Vol.3 || 0x08 || 0x1388 || CPU_DELAY<br /> |-<br /> |SLUS_213.31 || Sonic Riders || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_213.39 || Puzzle Challenge || 0x01 || 0x800 || SIO2_MASK<br /> |-<br /> |SLUS_214.04 || Final Fantasy XI: Treasures of Aht Urhgan || 0x02 || 0xB || DEV9_MASK<br /> |-<br /> |SLUS_214.52 || Valkyrie Profile 2: Silmeria || 0x08 || 0x1388 || CPU_DELAY<br /> |- <br /> |}<br /> <br /> = Folder/File layout =<br /> <br /> Example: Max Payne Classic<br /> <br /> &lt;pre&gt;<br /> ├── config-emu-ps4.txt<br /> ├── docs<br /> │   └── revision.h<br /> ├── eboot.bin<br /> ├── feature_data<br /> │   └── SLES-50326_features.lua<br /> ├── formatted.card<br /> ├── image<br /> │   └── disc01.iso<br /> ├── lua_include<br /> │   ├── ee-cpr0-alias.lua<br /> │   ├── ee-gpr-alias.lua<br /> │   ├── ee-hwaddr.lua<br /> │   ├── language.lua<br /> │   ├── pad-and-key.lua<br /> │   ├── ps2.lua<br /> │   └── utils.lua<br /> ├── patches<br /> │   └── SLES-50326_cli.conf<br /> ├── PS20220WD20050620.crack<br /> ├── ps2-emu-compiler.self<br /> ├── sce_companion_httpd<br /> │   └── html<br /> │   ├── BackCover.jpg<br /> │   ├── base<br /> │   │   ├── arrow_up.png<br /> │   │   └── sprites.png<br /> │   ├── css<br /> │   │   ├── default-skin.png<br /> │   │   └── styles.min.css<br /> │   ├── index.html<br /> │   ├── js<br /> │   │   └── app.min.js<br /> │   ├── large<br /> │   │   ├── Box01.jpg<br /> │   │   ├── Box04.jpg<br /> │   │   ├── landscape<br /> │   │   │   ├── Box01.jpg<br /> │   │   │   ├── Box04.jpg<br /> │   │   │   ├── Page01.jpg<br /> │   │   │   ├── Page02.jpg<br /> │   │   │   ├── Page03.jpg<br /> │   │   │   ├── Page04.jpg<br /> │   │   │   ├── Page05.jpg<br /> │   │   │   ├── Page06.jpg<br /> │   │   │   ├── Page07.jpg<br /> │   │   │   ├── Page08.jpg<br /> │   │   │   ├── Page09.jpg<br /> │   │   │   ├── Page10.jpg<br /> │   │   │   ├── Page11.jpg<br /> │   │   │   ├── Page12.jpg<br /> │   │   │   ├── Page13.jpg<br /> │   │   │   ├── Page14.jpg<br /> │   │   │   ├── Page15.jpg<br /> │   │   │   ├── Page16.jpg<br /> │   │   │   ├── Page17.jpg<br /> │   │   │   ├── Page18.jpg<br /> │   │   │   ├── Page19.jpg<br /> │   │   │   ├── Page20.jpg<br /> │   │   │   ├── Page21.jpg<br /> │   │   │   ├── Page22.jpg<br /> │   │   │   ├── Page23.jpg<br /> │   │   │   ├── Page24.jpg<br /> │   │   │   ├── Page25.jpg<br /> │   │   │   ├── Page26.jpg<br /> │   │   │   ├── Page27.jpg<br /> │   │   │   ├── Page28.jpg<br /> │   │   │   ├── Page29.jpg<br /> │   │   │   ├── Page30.jpg<br /> │   │   │   ├── Page31.jpg<br /> │   │   │   ├── Page32.jpg<br /> │   │   │   ├── Page33.jpg<br /> │   │   │   ├── Page34.jpg<br /> │   │   │   ├── Page35.jpg<br /> │   │   │   ├── Page36.jpg<br /> │   │   │   ├── Page37.jpg<br /> │   │   │   ├── Page38.jpg<br /> │   │   │   ├── Page39.jpg<br /> │   │   │   ├── Page40.jpg<br /> │   │   │   ├── Page41.jpg<br /> │   │   │   ├── Page42.jpg<br /> │   │   │   ├── Page43.jpg<br /> │   │   │   ├── Page44.jpg<br /> │   │   │   ├── Page45.jpg<br /> │   │   │   ├── Page46.jpg<br /> │   │   │   ├── Page47.jpg<br /> │   │   │   ├── Page48.jpg<br /> │   │   │   ├── Page49.jpg<br /> │   │   │   ├── Page50.jpg<br /> │   │   │   ├── Page51.jpg<br /> │   │   │   ├── Page52.jpg<br /> │   │   │   ├── Page53.jpg<br /> │   │   │   ├── Page54.jpg<br /> │   │   │   ├── Page55.jpg<br /> │   │   │   ├── Page56.jpg<br /> │   │   │   ├── Page57.jpg<br /> │   │   │   ├── Page58.jpg<br /> │   │   │   └── Page59.jpg<br /> │   │   ├── Page01.jpg<br /> │   │   ├── Page02.jpg<br /> │   │   ├── Page03.jpg<br /> │   │   ├── Page04.jpg<br /> │   │   ├── Page05.jpg<br /> │   │   ├── Page06.jpg<br /> │   │   ├── Page07.jpg<br /> │   │   ├── Page08.jpg<br /> │   │   ├── Page09.jpg<br /> │   │   ├── Page100.jpg<br /> │   │   ├── Page101.jpg<br /> │   │   ├── Page102.jpg<br /> │   │   ├── Page103.jpg<br /> │   │   ├── Page104.jpg<br /> │   │   ├── Page105.jpg<br /> │   │   ├── Page106.jpg<br /> │   │   ├── Page107.jpg<br /> │   │   ├── Page108.jpg<br /> │   │   ├── Page109.jpg<br /> │   │   ├── Page10.jpg<br /> │   │   ├── Page110.jpg<br /> │   │   ├── Page111.jpg<br /> │   │   ├── Page112.jpg<br /> │   │   ├── Page113.jpg<br /> │   │   ├── Page114.jpg<br /> │   │   ├── Page115.jpg<br /> │   │   ├── Page116.jpg<br /> │   │   ├── Page11.jpg<br /> │   │   ├── Page12.jpg<br /> │   │   ├── Page13.jpg<br /> │   │   ├── Page14.jpg<br /> │   │   ├── Page15.jpg<br /> │   │   ├── Page16.jpg<br /> │   │   ├── Page17.jpg<br /> │   │   ├── Page18.jpg<br /> │   │   ├── Page19.jpg<br /> │   │   ├── Page20.jpg<br /> │   │   ├── Page21.jpg<br /> │   │   ├── Page22.jpg<br /> │   │   ├── Page23.jpg<br /> │   │   ├── Page24.jpg<br /> │   │   ├── Page25.jpg<br /> │   │   ├── Page26.jpg<br /> │   │   ├── Page27.jpg<br /> │   │   ├── Page28.jpg<br /> │   │   ├── Page29.jpg<br /> │   │   ├── Page30.jpg<br /> │   │   ├── Page31.jpg<br /> │   │   ├── Page32.jpg<br /> │   │   ├── Page33.jpg<br /> │   │   ├── Page34.jpg<br /> │   │   ├── Page35.jpg<br /> │   │   ├── Page36.jpg<br /> │   │   ├── Page37.jpg<br /> │   │   ├── Page38.jpg<br /> │   │   ├── Page39.jpg<br /> │   │   ├── Page40.jpg<br /> │   │   ├── Page41.jpg<br /> │   │   ├── Page42.jpg<br /> │   │   ├── Page43.jpg<br /> │   │   ├── Page44.jpg<br /> │   │   ├── Page45.jpg<br /> │   │   ├── Page46.jpg<br /> │   │   ├── Page47.jpg<br /> │   │   ├── Page48.jpg<br /> │   │   ├── Page49.jpg<br /> │   │   ├── Page50.jpg<br /> │   │   ├── Page51.jpg<br /> │   │   ├── Page52.jpg<br /> │   │   ├── Page53.jpg<br /> │   │   ├── Page54.jpg<br /> │   │   ├── Page55.jpg<br /> │   │   ├── Page56.jpg<br /> │   │   ├── Page57.jpg<br /> │   │   ├── Page58.jpg<br /> │   │   ├── Page59.jpg<br /> │   │   ├── Page60.jpg<br /> │   │   ├── Page61.jpg<br /> │   │   ├── Page62.jpg<br /> │   │   ├── Page63.jpg<br /> │   │   ├── Page64.jpg<br /> │   │   ├── Page65.jpg<br /> │   │   ├── Page66.jpg<br /> │   │   ├── Page67.jpg<br /> │   │   ├── Page68.jpg<br /> │   │   ├── Page69.jpg<br /> │   │   ├── Page70.jpg<br /> │   │   ├── Page71.jpg<br /> │   │   ├── Page72.jpg<br /> │   │   ├── Page73.jpg<br /> │   │   ├── Page74.jpg<br /> │   │   ├── Page75.jpg<br /> │   │   ├── Page76.jpg<br /> │   │   ├── Page77.jpg<br /> │   │   ├── Page78.jpg<br /> │   │   ├── Page79.jpg<br /> │   │   ├── Page80.jpg<br /> │   │   ├── Page81.jpg<br /> │   │   ├── Page82.jpg<br /> │   │   ├── Page83.jpg<br /> │   │   ├── Page84.jpg<br /> │   │   ├── Page85.jpg<br /> │   │   ├── Page86.jpg<br /> │   │   ├── Page87.jpg<br /> │   │   ├── Page88.jpg<br /> │   │   ├── Page89.jpg<br /> │   │   ├── Page90.jpg<br /> │   │   ├── Page91.jpg<br /> │   │   ├── Page92.jpg<br /> │   │   ├── Page93.jpg<br /> │   │   ├── Page94.jpg<br /> │   │   ├── Page95.jpg<br /> │   │   ├── Page96.jpg<br /> │   │   ├── Page97.jpg<br /> │   │   ├── Page98.jpg<br /> │   │   └── Page99.jpg<br /> │   ├── medium<br /> │   │   ├── Box01.jpg<br /> │   │   ├── Box04.jpg<br /> │   │   ├── landscape<br /> │   │   │   ├── Box01.jpg<br /> │   │   │   ├── Box04.jpg<br /> │   │   │   ├── Page01.jpg<br /> │   │   │   ├── Page02.jpg<br /> │   │   │   ├── Page03.jpg<br /> │   │   │   ├── Page04.jpg<br /> │   │   │   ├── Page05.jpg<br /> │   │   │   ├── Page06.jpg<br /> │   │   │   ├── Page07.jpg<br /> │   │   │   ├── Page08.jpg<br /> │   │   │   ├── Page09.jpg<br /> │   │   │   ├── Page10.jpg<br /> │   │   │   ├── Page11.jpg<br /> │   │   │   ├── Page12.jpg<br /> │   │   │   ├── Page13.jpg<br /> │   │   │   ├── Page14.jpg<br /> │   │   │   ├── Page15.jpg<br /> │   │   │   ├── Page16.jpg<br /> │   │   │   ├── Page17.jpg<br /> │   │   │   ├── Page18.jpg<br /> │   │   │   ├── Page19.jpg<br /> │   │   │   ├── Page20.jpg<br /> │   │   │   ├── Page21.jpg<br /> │   │   │   ├── Page22.jpg<br /> │   │   │   ├── Page23.jpg<br /> │   │   │   ├── Page24.jpg<br /> │   │   │   ├── Page25.jpg<br /> │   │   │   ├── Page26.jpg<br /> │   │   │   ├── Page27.jpg<br /> │   │   │   ├── Page28.jpg<br /> │   │   │   ├── Page29.jpg<br /> │   │   │   ├── Page30.jpg<br /> │   │   │   ├── Page31.jpg<br /> │   │   │   ├── Page32.jpg<br /> │   │   │   ├── Page33.jpg<br /> │   │   │   ├── Page34.jpg<br /> │   │   │   ├── Page35.jpg<br /> │   │   │   ├── Page36.jpg<br /> │   │   │   ├── Page37.jpg<br /> │   │   │   ├── Page38.jpg<br /> │   │   │   ├── Page39.jpg<br /> │   │   │   ├── Page40.jpg<br /> │   │   │   ├── Page41.jpg<br /> │   │   │   ├── Page42.jpg<br /> │   │   │   ├── Page43.jpg<br /> │   │   │   ├── Page44.jpg<br /> │   │   │   ├── Page45.jpg<br /> │   │   │   ├── Page46.jpg<br /> │   │   │   ├── Page47.jpg<br /> │   │   │   ├── Page48.jpg<br /> │   │   │   ├── Page49.jpg<br /> │   │   │   ├── Page50.jpg<br /> │   │   │   ├── Page51.jpg<br /> │   │   │   ├── Page52.jpg<br /> │   │   │   ├── Page53.jpg<br /> │   │   │   ├── Page54.jpg<br /> │   │   │   ├── Page55.jpg<br /> │   │   │   ├── Page56.jpg<br /> │   │   │   ├── Page57.jpg<br /> │   │   │   ├── Page58.jpg<br /> │   │   │   └── Page59.jpg<br /> │   │   ├── Page01.jpg<br /> │   │   ├── Page02.jpg<br /> │   │   ├── Page03.jpg<br /> │   │   ├── Page04.jpg<br /> │   │   ├── Page05.jpg<br /> │   │   ├── Page06.jpg<br /> │   │   ├── Page07.jpg<br /> │   │   ├── Page08.jpg<br /> │   │   ├── Page09.jpg<br /> │   │   ├── Page100.jpg<br /> │   │   ├── Page101.jpg<br /> │   │   ├── Page102.jpg<br /> │   │   ├── Page103.jpg<br /> │   │   ├── Page104.jpg<br /> │   │   ├── Page105.jpg<br /> │   │   ├── Page106.jpg<br /> │   │   ├── Page107.jpg<br /> │   │   ├── Page108.jpg<br /> │   │   ├── Page109.jpg<br /> │   │   ├── Page10.jpg<br /> │   │   ├── Page110.jpg<br /> │   │   ├── Page111.jpg<br /> │   │   ├── Page112.jpg<br /> │   │   ├── Page113.jpg<br /> │   │   ├── Page114.jpg<br /> │   │   ├── Page115.jpg<br /> │   │   ├── Page116.jpg<br /> │   │   ├── Page11.jpg<br /> │   │   ├── Page12.jpg<br /> │   │   ├── Page13.jpg<br /> │   │   ├── Page14.jpg<br /> │   │   ├── Page15.jpg<br /> │   │   ├── Page16.jpg<br /> │   │   ├── Page17.jpg<br /> │   │   ├── Page18.jpg<br /> │   │   ├── Page19.jpg<br /> │   │   ├── Page20.jpg<br /> │   │   ├── Page21.jpg<br /> │   │   ├── Page22.jpg<br /> │   │   ├── Page23.jpg<br /> │   │   ├── Page24.jpg<br /> │   │   ├── Page25.jpg<br /> │   │   ├── Page26.jpg<br /> │   │   ├── Page27.jpg<br /> │   │   ├── Page28.jpg<br /> │   │   ├── Page29.jpg<br /> │   │   ├── Page30.jpg<br /> │   │   ├── Page31.jpg<br /> │   │   ├── Page32.jpg<br /> │   │   ├── Page33.jpg<br /> │   │   ├── Page34.jpg<br /> │   │   ├── Page35.jpg<br /> │   │   ├── Page36.jpg<br /> │   │   ├── Page37.jpg<br /> │   │   ├── Page38.jpg<br /> │   │   ├── Page39.jpg<br /> │   │   ├── Page40.jpg<br /> │   │   ├── Page41.jpg<br /> │   │   ├── Page42.jpg<br /> │   │   ├── Page43.jpg<br /> │   │   ├── Page44.jpg<br /> │   │   ├── Page45.jpg<br /> │   │   ├── Page46.jpg<br /> │   │   ├── Page47.jpg<br /> │   │   ├── Page48.jpg<br /> │   │   ├── Page49.jpg<br /> │   │   ├── Page50.jpg<br /> │   │   ├── Page51.jpg<br /> │   │   ├── Page52.jpg<br /> │   │   ├── Page53.jpg<br /> │   │   ├── Page54.jpg<br /> │   │   ├── Page55.jpg<br /> │   │   ├── Page56.jpg<br /> │   │   ├── Page57.jpg<br /> │   │   ├── Page58.jpg<br /> │   │   ├── Page59.jpg<br /> │   │   ├── Page60.jpg<br /> │   │   ├── Page61.jpg<br /> │   │   ├── Page62.jpg<br /> │   │   ├── Page63.jpg<br /> │   │   ├── Page64.jpg<br /> │   │   ├── Page65.jpg<br /> │   │   ├── Page66.jpg<br /> │   │   ├── Page67.jpg<br /> │   │   ├── Page68.jpg<br /> │   │   ├── Page69.jpg<br /> │   │   ├── Page70.jpg<br /> │   │   ├── Page71.jpg<br /> │   │   ├── Page72.jpg<br /> │   │   ├── Page73.jpg<br /> │   │   ├── Page74.jpg<br /> │   │   ├── Page75.jpg<br /> │   │   ├── Page76.jpg<br /> │   │   ├── Page77.jpg<br /> │   │   ├── Page78.jpg<br /> │   │   ├── Page79.jpg<br /> │   │   ├── Page80.jpg<br /> │   │   ├── Page81.jpg<br /> │   │   ├── Page82.jpg<br /> │   │   ├── Page83.jpg<br /> │   │   ├── Page84.jpg<br /> │   │   ├── Page85.jpg<br /> │   │   ├── Page86.jpg<br /> │   │   ├── Page87.jpg<br /> │   │   ├── Page88.jpg<br /> │   │   ├── Page89.jpg<br /> │   │   ├── Page90.jpg<br /> │   │   ├── Page91.jpg<br /> │   │   ├── Page92.jpg<br /> │   │   ├── Page93.jpg<br /> │   │   ├── Page94.jpg<br /> │   │   ├── Page95.jpg<br /> │   │   ├── Page96.jpg<br /> │   │   ├── Page97.jpg<br /> │   │   ├── Page98.jpg<br /> │   │   └── Page99.jpg<br /> │   ├── small<br /> │   │   ├── Box01.jpg<br /> │   │   ├── Box04.jpg<br /> │   │   ├── landscape<br /> │   │   │   ├── Box01.jpg<br /> │   │   │   ├── Box04.jpg<br /> │   │   │   ├── Page01.jpg<br /> │   │   │   ├── Page02.jpg<br /> │   │   │   ├── Page03.jpg<br /> │   │   │   ├── Page04.jpg<br /> │   │   │   ├── Page05.jpg<br /> │   │   │   ├── Page06.jpg<br /> │   │   │   ├── Page07.jpg<br /> │   │   │   ├── Page08.jpg<br /> │   │   │   ├── Page09.jpg<br /> │   │   │   ├── Page10.jpg<br /> │   │   │   ├── Page11.jpg<br /> │   │   │   ├── Page12.jpg<br /> │   │   │   ├── Page13.jpg<br /> │   │   │   ├── Page14.jpg<br /> │   │   │   ├── Page15.jpg<br /> │   │   │   ├── Page16.jpg<br /> │   │   │   ├── Page17.jpg<br /> │   │   │   ├── Page18.jpg<br /> │   │   │   ├── Page19.jpg<br /> │   │   │   ├── Page20.jpg<br /> │   │   │   ├── Page21.jpg<br /> │   │   │   ├── Page22.jpg<br /> │   │   │   ├── Page23.jpg<br /> │   │   │   ├── Page24.jpg<br /> │   │   │   ├── Page25.jpg<br /> │   │   │   ├── Page26.jpg<br /> │   │   │   ├── Page27.jpg<br /> │   │   │   ├── Page28.jpg<br /> │   │   │   ├── Page29.jpg<br /> │   │   │   ├── Page30.jpg<br /> │   │   │   ├── Page31.jpg<br /> │   │   │   ├── Page32.jpg<br /> │   │   │   ├── Page33.jpg<br /> │   │   │   ├── Page34.jpg<br /> │   │   │   ├── Page35.jpg<br /> │   │   │   ├── Page36.jpg<br /> │   │   │   ├── Page37.jpg<br /> │   │   │   ├── Page38.jpg<br /> │   │   │   ├── Page39.jpg<br /> │   │   │   ├── Page40.jpg<br /> │   │   │   ├── Page41.jpg<br /> │   │   │   ├── Page42.jpg<br /> │   │   │   ├── Page43.jpg<br /> │   │   │   ├── Page44.jpg<br /> │   │   │   ├── Page45.jpg<br /> │   │   │   ├── Page46.jpg<br /> │   │   │   ├── Page47.jpg<br /> │   │   │   ├── Page48.jpg<br /> │   │   │   ├── Page49.jpg<br /> │   │   │   ├── Page50.jpg<br /> │   │   │   ├── Page51.jpg<br /> │   │   │   ├── Page52.jpg<br /> │   │   │   ├── Page53.jpg<br /> │   │   │   ├── Page54.jpg<br /> │   │   │   ├── Page55.jpg<br /> │   │   │   ├── Page56.jpg<br /> │   │   │   ├── Page57.jpg<br /> │   │   │   ├── Page58.jpg<br /> │   │   │   └── Page59.jpg<br /> │   │   ├── Page01.jpg<br /> │   │   ├── Page02.jpg<br /> │   │   ├── Page03.jpg<br /> │   │   ├── Page04.jpg<br /> │   │   ├── Page05.jpg<br /> │   │   ├── Page06.jpg<br /> │   │   ├── Page07.jpg<br /> │   │   ├── Page08.jpg<br /> │   │   ├── Page09.jpg<br /> │   │   ├── Page100.jpg<br /> │   │   ├── Page101.jpg<br /> │   │   ├── Page102.jpg<br /> │   │   ├── Page103.jpg<br /> │   │   ├── Page104.jpg<br /> │   │   ├── Page105.jpg<br /> │   │   ├── Page106.jpg<br /> │   │   ├── Page107.jpg<br /> │   │   ├── Page108.jpg<br /> │   │   ├── Page109.jpg<br /> │   │   ├── Page10.jpg<br /> │   │   ├── Page110.jpg<br /> │   │   ├── Page111.jpg<br /> │   │   ├── Page112.jpg<br /> │   │   ├── Page113.jpg<br /> │   │   ├── Page114.jpg<br /> │   │   ├── Page115.jpg<br /> │   │   ├── Page116.jpg<br /> │   │   ├── Page11.jpg<br /> │   │   ├── Page12.jpg<br /> │   │   ├── Page13.jpg<br /> │   │   ├── Page14.jpg<br /> │   │   ├── Page15.jpg<br /> │   │   ├── Page16.jpg<br /> │   │   ├── Page17.jpg<br /> │   │   ├── Page18.jpg<br /> │   │   ├── Page19.jpg<br /> │   │   ├── Page20.jpg<br /> │   │   ├── Page21.jpg<br /> │   │   ├── Page22.jpg<br /> │   │   ├── Page23.jpg<br /> │   │   ├── Page24.jpg<br /> │   │   ├── Page25.jpg<br /> │   │   ├── Page26.jpg<br /> │   │   ├── Page27.jpg<br /> │   │   ├── Page28.jpg<br /> │   │   ├── Page29.jpg<br /> │   │   ├── Page30.jpg<br /> │   │   ├── Page31.jpg<br /> │   │   ├── Page32.jpg<br /> │   │   ├── Page33.jpg<br /> │   │   ├── Page34.jpg<br /> │   │   ├── Page35.jpg<br /> │   │   ├── Page36.jpg<br /> │   │   ├── Page37.jpg<br /> │   │   ├── Page38.jpg<br /> │   │   ├── Page39.jpg<br /> │   │   ├── Page40.jpg<br /> │   │   ├── Page41.jpg<br /> │   │   ├── Page42.jpg<br /> │   │   ├── Page43.jpg<br /> │   │   ├── Page44.jpg<br /> │   │   ├── Page45.jpg<br /> │   │   ├── Page46.jpg<br /> │   │   ├── Page47.jpg<br /> │   │   ├── Page48.jpg<br /> │   │   ├── Page49.jpg<br /> │   │   ├── Page50.jpg<br /> │   │   ├── Page51.jpg<br /> │   │   ├── Page52.jpg<br /> │   │   ├── Page53.jpg<br /> │   │   ├── Page54.jpg<br /> │   │   ├── Page55.jpg<br /> │   │   ├── Page56.jpg<br /> │   │   ├── Page57.jpg<br /> │   │   ├── Page58.jpg<br /> │   │   ├── Page59.jpg<br /> │   │   ├── Page60.jpg<br /> │   │   ├── Page61.jpg<br /> │   │   ├── Page62.jpg<br /> │   │   ├── Page63.jpg<br /> │   │   ├── Page64.jpg<br /> │   │   ├── Page65.jpg<br /> │   │   ├── Page66.jpg<br /> │   │   ├── Page67.jpg<br /> │   │   ├── Page68.jpg<br /> │   │   ├── Page69.jpg<br /> │   │   ├── Page70.jpg<br /> │   │   ├── Page71.jpg<br /> │   │   ├── Page72.jpg<br /> │   │   ├── Page73.jpg<br /> │   │   ├── Page74.jpg<br /> │   │   ├── Page75.jpg<br /> │   │   ├── Page76.jpg<br /> │   │   ├── Page77.jpg<br /> │   │   ├── Page78.jpg<br /> │   │   ├── Page79.jpg<br /> │   │   ├── Page80.jpg<br /> │   │   ├── Page81.jpg<br /> │   │   ├── Page82.jpg<br /> │   │   ├── Page83.jpg<br /> │   │   ├── Page84.jpg<br /> │   │   ├── Page85.jpg<br /> │   │   ├── Page86.jpg<br /> │   │   ├── Page87.jpg<br /> │   │   ├── Page88.jpg<br /> │   │   ├── Page89.jpg<br /> │   │   ├── Page90.jpg<br /> │   │   ├── Page91.jpg<br /> │   │   ├── Page92.jpg<br /> │   │   ├── Page93.jpg<br /> │   │   ├── Page94.jpg<br /> │   │   ├── Page95.jpg<br /> │   │   ├── Page96.jpg<br /> │   │   ├── Page97.jpg<br /> │   │   ├── Page98.jpg<br /> │   │   └── Page99.jpg<br /> │   └── thumbnails<br /> │   ├── BoxThumb01.jpg<br /> │   ├── BoxThumb04.jpg<br /> │   ├── landscape<br /> │   │   ├── BoxThumb01.jpg<br /> │   │   ├── BoxThumb04.jpg<br /> │   │   ├── Thumb01.jpg<br /> │   │   ├── Thumb02.jpg<br /> │   │   ├── Thumb03.jpg<br /> │   │   ├── Thumb04.jpg<br /> │   │   ├── Thumb05.jpg<br /> │   │   ├── Thumb06.jpg<br /> │   │   ├── Thumb07.jpg<br /> │   │   ├── Thumb08.jpg<br /> │   │   ├── Thumb09.jpg<br /> │   │   ├── Thumb10.jpg<br /> │   │   ├── Thumb11.jpg<br /> │   │   ├── Thumb12.jpg<br /> │   │   ├── Thumb13.jpg<br /> │   │   ├── Thumb14.jpg<br /> │   │   ├── Thumb15.jpg<br /> │   │   ├── Thumb16.jpg<br /> │   │   ├── Thumb17.jpg<br /> │   │   ├── Thumb18.jpg<br /> │   │   ├── Thumb19.jpg<br /> │   │   ├── Thumb20.jpg<br /> │   │   ├── Thumb21.jpg<br /> │   │   ├── Thumb22.jpg<br /> │   │   ├── Thumb23.jpg<br /> │   │   ├── Thumb24.jpg<br /> │   │   ├── Thumb25.jpg<br /> │   │   ├── Thumb26.jpg<br /> │   │   ├── Thumb27.jpg<br /> │   │   ├── Thumb28.jpg<br /> │   │   ├── Thumb29.jpg<br /> │   │   ├── Thumb30.jpg<br /> │   │   ├── Thumb31.jpg<br /> │   │   ├── Thumb32.jpg<br /> │   │   ├── Thumb33.jpg<br /> │   │   ├── Thumb34.jpg<br /> │   │   ├── Thumb35.jpg<br /> │   │   ├── Thumb36.jpg<br /> │   │   ├── Thumb37.jpg<br /> │   │   ├── Thumb38.jpg<br /> │   │   ├── Thumb39.jpg<br /> │   │   ├── Thumb40.jpg<br /> │   │   ├── Thumb41.jpg<br /> │   │   ├── Thumb42.jpg<br /> │   │   ├── Thumb43.jpg<br /> │   │   ├── Thumb44.jpg<br /> │   │   ├── Thumb45.jpg<br /> │   │   ├── Thumb46.jpg<br /> │   │   ├── Thumb47.jpg<br /> │   │   ├── Thumb48.jpg<br /> │   │   ├── Thumb49.jpg<br /> │   │   ├── Thumb50.jpg<br /> │   │   ├── Thumb51.jpg<br /> │   │   ├── Thumb52.jpg<br /> │   │   ├── Thumb53.jpg<br /> │   │   ├── Thumb54.jpg<br /> │   │   ├── Thumb55.jpg<br /> │   │   ├── Thumb56.jpg<br /> │   │   ├── Thumb57.jpg<br /> │   │   ├── Thumb58.jpg<br /> │   │   └── Thumb59.jpg<br /> │   ├── Thumb01.jpg<br /> │   ├── Thumb02.jpg<br /> │   ├── Thumb03.jpg<br /> │   ├── Thumb04.jpg<br /> │   ├── Thumb05.jpg<br /> │   ├── Thumb06.jpg<br /> │   ├── Thumb07.jpg<br /> │   ├── Thumb08.jpg<br /> │   ├── Thumb09.jpg<br /> │   ├── Thumb100.jpg<br /> │   ├── Thumb101.jpg<br /> │   ├── Thumb102.jpg<br /> │   ├── Thumb103.jpg<br /> │   ├── Thumb104.jpg<br /> │   ├── Thumb105.jpg<br /> │   ├── Thumb106.jpg<br /> │   ├── Thumb107.jpg<br /> │   ├── Thumb108.jpg<br /> │   ├── Thumb109.jpg<br /> │   ├── Thumb10.jpg<br /> │   ├── Thumb110.jpg<br /> │   ├── Thumb111.jpg<br /> │   ├── Thumb112.jpg<br /> │   ├── Thumb113.jpg<br /> │   ├── Thumb114.jpg<br /> │   ├── Thumb115.jpg<br /> │   ├── Thumb116.jpg<br /> │   ├── Thumb11.jpg<br /> │   ├── Thumb12.jpg<br /> │   ├── Thumb13.jpg<br /> │   ├── Thumb14.jpg<br /> │   ├── Thumb15.jpg<br /> │   ├── Thumb16.jpg<br /> │   ├── Thumb17.jpg<br /> │   ├── Thumb18.jpg<br /> │   ├── Thumb19.jpg<br /> │   ├── Thumb20.jpg<br /> │   ├── Thumb21.jpg<br /> │   ├── Thumb22.jpg<br /> │   ├── Thumb23.jpg<br /> │   ├── Thumb24.jpg<br /> │   ├── Thumb25.jpg<br /> │   ├── Thumb26.jpg<br /> │   ├── Thumb27.jpg<br /> │   ├── Thumb28.jpg<br /> │   ├── Thumb29.jpg<br /> │   ├── Thumb30.jpg<br /> │   ├── Thumb31.jpg<br /> │   ├── Thumb32.jpg<br /> │   ├── Thumb33.jpg<br /> │   ├── Thumb34.jpg<br /> │   ├── Thumb35.jpg<br /> │   ├── Thumb36.jpg<br /> │   ├── Thumb37.jpg<br /> │   ├── Thumb38.jpg<br /> │   ├── Thumb39.jpg<br /> │   ├── Thumb40.jpg<br /> │   ├── Thumb41.jpg<br /> │   ├── Thumb42.jpg<br /> │   ├── Thumb43.jpg<br /> │   ├── Thumb44.jpg<br /> │   ├── Thumb45.jpg<br /> │   ├── Thumb46.jpg<br /> │   ├── Thumb47.jpg<br /> │   ├── Thumb48.jpg<br /> │   ├── Thumb49.jpg<br /> │   ├── Thumb50.jpg<br /> │   ├── Thumb51.jpg<br /> │   ├── Thumb52.jpg<br /> │   ├── Thumb53.jpg<br /> │   ├── Thumb54.jpg<br /> │   ├── Thumb55.jpg<br /> │   ├── Thumb56.jpg<br /> │   ├── Thumb57.jpg<br /> │   ├── Thumb58.jpg<br /> │   ├── Thumb59.jpg<br /> │   ├── Thumb60.jpg<br /> │   ├── Thumb61.jpg<br /> │   ├── Thumb62.jpg<br /> │   ├── Thumb63.jpg<br /> │   ├── Thumb64.jpg<br /> │   ├── Thumb65.jpg<br /> │   ├── Thumb66.jpg<br /> │   ├── Thumb67.jpg<br /> │   ├── Thumb68.jpg<br /> │   ├── Thumb69.jpg<br /> │   ├── Thumb70.jpg<br /> │   ├── Thumb71.jpg<br /> │   ├── Thumb72.jpg<br /> │   ├── Thumb73.jpg<br /> │   ├── Thumb74.jpg<br /> │   ├── Thumb75.jpg<br /> │   ├── Thumb76.jpg<br /> │   ├── Thumb77.jpg<br /> │   ├── Thumb78.jpg<br /> │   ├── Thumb79.jpg<br /> │   ├── Thumb80.jpg<br /> │   ├── Thumb81.jpg<br /> │   ├── Thumb82.jpg<br /> │   ├── Thumb83.jpg<br /> │   ├── Thumb84.jpg<br /> │   ├── Thumb85.jpg<br /> │   ├── Thumb86.jpg<br /> │   ├── Thumb87.jpg<br /> │   ├── Thumb88.jpg<br /> │   ├── Thumb89.jpg<br /> │   ├── Thumb90.jpg<br /> │   ├── Thumb91.jpg<br /> │   ├── Thumb92.jpg<br /> │   ├── Thumb93.jpg<br /> │   ├── Thumb94.jpg<br /> │   ├── Thumb95.jpg<br /> │   ├── Thumb96.jpg<br /> │   ├── Thumb97.jpg<br /> │   ├── Thumb98.jpg<br /> │   └── Thumb99.jpg<br /> ├── sce_module<br /> │   ├── libc.prx<br /> │   └── libSceFios2.prx<br /> ├── sce_sys<br /> │   ├── about<br /> │   │   └── right.sprx<br /> │   └── keystone<br /> └── trophy_data<br /> └── SLES-50326_trophies.lua<br /> <br /> &lt;/pre&gt;<br /> <br /> =Links=<br /> *More info: http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/<br /> *More emulator configurations examples: https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List <br /> <br /> {{Reverse Engineering}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=284382 PS2 Classics Emulator Compatibility List 2022-01-26T18:48:10Z <p>162.199.155.139: /* D */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator freezes after PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || {{notavailable}} || ? || --vu1=jit-sync allows game to boot past PS2 logo (known in Japan as &quot;''Tsukiyo ni Saraba&quot; [ツキヨニサラバ]'').<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{playable}} || ? || Works perfectly with Star Ocean emu &amp; Jak 3 v2.<br /> |-<br /> | 7 Sins || {{playable}} || ? || ? || <br /> |-<br /> | FCEUmm PS2 (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} ||<br /> |-<br /> | POPStarter (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu fails to load past title screen.&lt;/span&gt;<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || {{unplayable}} || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J Version how are unable to reach the Title screen.&lt;/span&gt;<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Lightning || ? || ? || {{playable}} || Works with both several Emulators. Memory card saved files only with Rogue Emulator. SLES-51503 tested on PS4 FW 6.xx.<br /> |-<br /> | Activision Anthology || {{playable}} || {{playable}} || ? || works. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator runs very slow.&lt;/span&gt;<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Adventure of Tokyo Disney Sea || ? || ? || {{playable}} || Works.<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details. With Jak, the game works very well on Original PS4.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{playable}} || {{notavailable}} || Config Available. Full Fix. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv2 emulator, the screen goes black after the titlescreen.&lt;/span&gt;<br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark || ? || ? || {{playable}} || Fully works. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator doesn't load past Atari logo.&lt;/span&gt;<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || {{unplayable}} || No noticeable issues, plays great. Saving and Loading works. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version hangs when trying to check the memory card with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || works.<br /> |-<br /> | american idol || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Angelique Trois || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{minorissues}} || ? || Config Available (fixes game speed); graphic corruption, no sound effects play<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play. Jakv2 emu freezes when the game starting up.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues. &lt;span style=&quot;color:white; background:#FF1000&gt;The game crashed after the 3DO Logo with Jakv2 emulator.&lt;/span&gt;<br /> |-<br /> | Army Men: RTS || ? || {{playable}} || ? || Works Perfectly. Use psychonauts v2 emu. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{playable}} || ? || Works. Config Available.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Rogue emulator, the screen goes black after you reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{playable}} || ? || {{playable}} || Everything is perfect on JakEMU V2, the game looks great and there are no slowdowns or glitches. Just remap accelerate to triggers or the car would have accelerating issues<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Backyard Wrestling : Don't Try This At Home || ? || {{Unplayable}} || ? || Freezes after Ps2 load screen<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baldur's Gate : Dark Alliance II || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baroque || ? || {{playable}} || ? || Config Available<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets. Before you can load the title screen, the game freezes with KOF98 Emulator.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||{{unplayable}}|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts, and japanese version still not working on both Rogue and Jak Emulators as well.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || Works perfectly with Jak v2 emu.<br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | BEN 10: ALIEN FORCE || ? || {{playable}} || ? || Excellent and runs just like it does on PS2. Use jak v2 emu. Jakv1 emu works very well.<br /> |-<br /> | Ben 10 Alien Force: Vilgax Attacks || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game starts and launches perfectly into the main menu, but then immediately crashes when trying to play a new game on the first level, although the textures and everything was looking nice... maybe needs a custom config. PS2 Classics GUI used.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? || PAL version runs perfectly, no issues noticed. Used PS2 Classics GUI for conversion (Default emu).<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{minorissues}} || Has English patch. Game might crash if bombs subweapons hits too many enemies on-screen.<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Big Mutha Truckers || {{playable}} || {{playable}} || ? || works flawlessly.<br /> |-<br /> | Big Mutha Truckers 2 || {{unplayable}} || {{playable}} || ? || USA region works flawlessly but Europe region runs, but doesn't seem to work.<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{playable}} || ? || Freezes at the start of first level fixed with config here<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blitz - The League || ? || {{unplayable}} || ? || Crashes after you pick the arena<br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bomber Man Land 2 || ? || ? || {{playable}} ||<br /> |-<br /> | Bouncer, The || ? || {{playable}} || {{playable}} || NTSC-U, NTSC-J tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Britney's Dance Beat || ? || {{playable}} || ? || Game plays perfectly fine no issues at all.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || {{playable}} || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog.<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Cars: Mater-National Championship || {{playable}} || ? || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || Works perfectly with Jakv2.<br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen is almost completely black. It is very hard to see whats going on.&lt;/span&gt;<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Chaos Legion || ? || {{playable}} || ? || No known issues works perfectly fine.<br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} || High Language Barrier.<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Champions: Return to Arms || ? || {{majorissues}} || ? || Working with Rouge V1 but has mayjor graphical glitches. Otherwise stable FPS<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || {{minorissues}} || {{playable}} || ? || Does not work with JAK emulator. Works well with rogue emulator. Very minor graphic glitch on the bottom of the screen when Alyssa is on panic mode.<br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues. Used Jak v2 (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_53158 Crashes after ps2 logo&lt;br&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable.<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Use Rogue v1 emu. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || {{minorissues}} || {{playable}} || ? || No issues noticed on NTSC. Menu and loading screens flicker on PAL version.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_51523 Crashes on game loading screen&lt;br&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect.<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issues with squad nothing that really affects gameplay, audio stutters here and there. Use PS2 FPKG v0.6 go to emulator settings tab and tick fix graphical glitches, do not use uprender 2x2 otherwise it lags. Jak v2 emu used. First stage has a glitch where the controls become inverted after activating the cell switch where movement becomes inverted for both the player and cpu, save the game and reload to fix this.<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed. Works perfectly with Jakv2<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Corvette || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{playable}} || {{minorissues}} || {{notavailable}} || Character models are flickering, bad/weird looking, and the map flickers sometimes. Else works fine. '''EDIT:''' Game now works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{playable}} || {{playable}} || ? || Require config to boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Crash_Nitro_Kart|Emulator config]]. Emu used=JakX v2<br /> |- <br /> | Crash of the Titans || {{playable}} || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds. PAL version works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background. High Language Barrier. With Jakv1 emu, the game crashed after the PS2 bios intro.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 6thMix DDRMAX || ? || {{unplayable}} || ? || Boots fine, but on the song selection screen, the X and Up/Down directional inputs fail to register, making song selection and difficulty change impossible.<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution DDR Festival || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS. Rogue Emu crashes Console.<br /> |-<br /> | Dance Dance Revolution Extreme || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme 2 || ? || {{unplayable}} || ? || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Party Collection || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution SuperNOVA || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution SuperNOVA 2 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dance Dance Revolution X2 || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{playable}} || ? || Require config file [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283079 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] JakX emu used.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{minorissues}} || {{unplayable}} || NTSC - Shadow Model Is Glitchy. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before starts.&lt;/span&gt;<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms, because used '''edgesmooth''' upscale in '''PS2-FPKG_v0.6'''.<br /> ''Edited:'' broblems disappears if you set '''Upscale''' value on '''none''' or '''gpu''' in '''PS2-FPKG_v0.6'''.&lt;br&gt;<br /> If you want '''Force 60hz PAL mode''' in the game and '''force bilinear filtering''', write in the config:<br /> --gs-force-bilinear=1<br /> --force-pal-60hz=1<br /> May be useful for other games too =)<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || {{unplayable}} || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering. There is a black bar at the bottom of the screen - doesn't affect gameplay at all.<br /> |-<br /> | Di Gi Charat Fantasy Excellent || {{notavailable}} || {{notavailable}} || {{playable}} || Full Speed. Very Good Audio. High Language Barrier. Tries to check the memory card.<br /> |-<br /> | Digimon Rumble Arena 2 || {{playable}} || {{playable}} || {{playable}} || Use --fpu-no-clamping=1 to fix menu screen. &lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || {{playable}} || ? || The game works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || {{unplayable}} || Low frame rate. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs fine but ingame skips completely heavily with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 (Collector's Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Game freeze randomly during combat.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || {{playable}} || Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{majorissues}} || {{majorissues}} || {{majorissues}} || Tested with Jak v2 emulator, still random freezes like budokai 3, it seems like if u only play the map &quot; Hyperbolic Time Chamber &quot; u dont get any freeze, so I think it has something to do with the maps, because u cant get kicked out of this map like in others.<br /> |-<br /> | Dragon Ball Z: Sagas || {{notavailable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{playable}} || {{playable}} || ? || Config @PSX-Place. Works fine<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches. With GBA Emulator (mGBA 3DS), it does work perfect for me on O2DS console so enough.<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv1 emulator, the game won´t boot after the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not seem to reset after you complete the final Mission.&lt;/span&gt; &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version still loads perfect but Atari logo, and loading screen skips very heavily, and has glitches than US and PAL versions. GTA 3 v1 Emulator stops to the Atari logo due to few beggining.&lt;/span&gt;<br /> |-<br /> | Driver - Parallel Lines (AKA. Driver 4 - Parallel Lines in Japan by UbiSoft) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:#FF1000;&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dual Hearts || ? || {{playable}} || ? || Works perfectly with emu GTA 3 v1<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |-<br /> | Dynasty warriors 3 Extreme legends || {{playable}} || ? || ? || runs perfect with jakv2<br /> |-<br /> | Dynasty warriors 4 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 6 || ? || {{minorissues}} || ? || flickering<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | ESPN-NBA2K5 || ? || {{unplayable}} || ? || crashes error CE-34878-0. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 used. Don't use upscale render otherwise it causes crashes.<br /> |-<br /> | Enthusia: Professional Racing || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{playable}} || ? || To boot past PS2 logo, and fix severe graphical issues, use config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Eternal_Poison|[1]]]<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues. High Language Barrier.<br /> |-<br /> | Everblue 2 || {{playable}} || {{playable}} || ? || To fix geometry/terrain pop-in at edges of screen, use config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Everblue_2|[1]]]. Note: SLES config work also for SLUS version of game.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues. Jak v2 emu used.<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues. Use Bully v2 to fix desynced sounds.<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise. The game boots with jakv2 emulator.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{playable}} || {{playable}} || ? || config @psx-place<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || JakV2 gives black screen after the first cutscene. Really bad slowdown, graphics appear to render perfectly. Requires RogueV1<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || {{minorissues}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan] Game very few times freezes when picking up items or going into Finder mode, very bad on last boss.<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan] UNDUB causes crashes.<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak v2 emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan] UNDUB USA version works fine.<br /> |-<br /> | Fate/Unlimited Codes || ? || ? || {{playable}} || Seemingly perfect using Jak emu<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || {{playable}} || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || {{minorissues}} || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fighter Maker 2 || {{notavailable}} || {{playable}} || {{playable}} || Works with no issues with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;Game immediately crashes on boot-up with Rogue emu.&lt;/span&gt;<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN although the English patched version require additional steps to boot [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-47#post-240636]).<br /> |-<br /> | Final Fight: Streetwise || {{majorissues}} || {{majorissues}} || ? || PAL &amp; NTSC: Huge FPS drop during introducing characters and exploring city, needs a fix.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || {{playable}} || ? || Config Available<br /> |-<br /> | FlatOut 2|| {{playable}} || {{playable}} || ? || config available @PSX-Place<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || SLES_51467 Crashes after PS2 logo.&lt;br&gt;SLUS_20658 Works with no issues.<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |- <br /> | Fullmetal Alchemist 2 Curse of the Crimson Elixir || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Prequel to Broken Angel.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || {{unplayable}} || ? || SLUS-20225 doesn't boot on Jakv2, pagefaults after intro video on Roguev1<br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{playable}} || ? || Custom Config required to fix missing characters &amp; textures. Check Emulator Configuration for additional details.<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{playable}} || ? || Config Available<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || {{playable}} || {{unplayable}} || ? || PAL Version works perfectly with the GTA3 v1 emu<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{unplayable}} || {{playable}} || ? || NTSC Version Has fix Available<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{playable}} || {{playable}} || Requires vu1=jit-sync .<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || Ghost cars are solid and not transparent on Rogue V1 emu. Major graphical issues occur on Special Stage Route 11 and the B-6 License Test on Rogue V1 emu which can only be fixed by restarting the game however they can still be completed regardless.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || {{playable}} || {{playable}} || ? || Lags on 9.00 Tested NTSC U / Fix Available<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{playable}} || {{playable}} || ? || Fix Available<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in PCSX2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the game hangs at the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || {{unplayable}} || the game stop at black screen after the loading of the title screen ends. NTSC-J Version does not boot.<br /> <br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Gungrave || {{minorissues}} || {{minorissues}} ||? || Works fine, config available for graphical glitches. (If anyone can fix glitches please add fix)<br /> |-<br /> | Gungrave Overdose|| ? || {{playable}} ||? || Works fine used kinetica v2 emu to fix missing title screen and other graphical glitches<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Hello Kitty: Roller Rescue || ? || ? || {{playable}} || <br /> |-<br /> | Headhunter || {{minorissues}} || {{playable}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. use emu Jakx v2 for NTSC version<br /> |-<br /> | Headhunter Redemption || {{playable}} || {{minorissues}} || ? || Works fine. NTSC version works fine but seems to have a shadow double image issue.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped. With Jakv2 emu, the game throws an unhandled pagefault error screen.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{playable}} || {{playable}} || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons can be fixed using config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Hunter_the_Reckoning_Wayward|[1]]].<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ice Age 2: Meltdown || ? || {{playable}} || ? || Use config to fix hang on logo. [[Talk:PS2_Classics_Emulator_Compatibility_List#Ice_Age_2_Meltdown]] <br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || {{playable}} ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{playable}} || ? || Config @PSX-Place<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Initial D Special Stage || ? || {{unplayable}} || ? || Game crashes after the PS2. This behavior also happens on PS2 slims/later models so cant be fixed with a patch<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background:#ff1000; color:white;&quot; | PAL Custom Image doesn't boot past the PS2 logo<br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || {{unplayable}} || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in. Similar issue to Driver 3 JP except it hangs after logo with PAL.<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || {{unplayable}} || Black Screen during the Intro FMV. You can hear Music playing. JAP doesn't boot up.<br /> |-<br /> | James Bond 007: Everything or Nothing || {{unplayable}} || {{majorissues}} || ? || Low framerate. PAL version doesn't work. &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || {{unplayable}} || {{majorissues}} || {{unplayable}} || Framerate slowdowns throughout the opening level. PAL version is broken. JAP runs fullspeed but freeze a lot and has gfx glitches. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jaws Unleashed || ? || {{playable}} || ? || Use config file to fix freeze at loading screen before main menu. [[Talk:PS2_Classics_Emulator_Compatibility_List#Jaws_Unleashed|[1]]]<br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Juiced || ? || ? || {{majorissues}} || Very low frame rate<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |-<br /> | Jurassic park: Operation genesis || ? || {{unplayable}} || ? || my english is a little short, hace a several graphics issues, I play in PC with PCSX2 emulator and with software emulation and mipmaping activated and run fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Kappa no Kai-kata: How to Breed Kappas || ? || ? || {{playable}} || The game runs Almost Full Speed. Very Good Audio. Very High Language Barrier. Couldn´t figure out how to check the memory card.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater's Pro Surfer (Kelly Slater's Pro Surfer 2003) || {{playable}} || ? || {{unplayable}} || Works fine. Bully emu used. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J emulator runs fine but ingame skips very heavily.&lt;/span&gt;<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Kengo 3 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Works great Story Mode and VS Mode, some enemies heads appear as black or white in extra modes but nothing game-breaking. <br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{playable}} || {{notavailable}} || PAL works with Bully emu. NTSC works perfectly with Psychonauts v2 emu<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || {{playable}} || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | King of Colloseum 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor glitches appear in the ring mat.<br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue emulator runs perfect but ingame skips too heavily when trying to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match || {{notavailable}} || {{notavailable}} || ? || PS4 version released 9/2/2021 (d/m/y) seems to not be PS2 version despite using PS2 game ID in title_id.<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{playable}} || Use Lua, and Txt config from that post to fix all issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-45#post-238835 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] '''Jak v2 emulator used'''<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || {{unplayable}} || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version works but ingame skips very heavily when trying to access the memory card.&lt;/span&gt; <br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before you can try to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv1 emu, the screen goes black before you can try to check the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || Use config file from that post to fix gameplay issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-77#post-285124 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{minorissues}} || {{minorissues}} || {{unplayable}} || Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]''). &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs well but ingame skips too heavily.&lt;/span&gt;<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{playable}} || ? || Fix Available for freeze in fights<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || {{minorissues}} || {{playable}} || {{minorissues}} || Use config file from that post to fix freezing. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-78#post-285400 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]. Game additionally require fix for Sugoroku minigame, that is only availble for NTSC-U version (post below in link). Pal/Ntsc-J still have that minor bug. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Le Avventure di Lupin III - Lupin la Morte, Zenigata l'Amore || {{unplayable}} || ? || ? || Black Screen when you try and load on PS2.<br /> |-<br /> | Le Avventure di &quot;Lupin III&quot; - Il tesoro del Re Stregone || {{unplayable}} || ? || ? || All cut scenes are perfect, however when in game some assets don't load.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> | Leisure Suit Larry: Magna Cum Laude || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Le Mans 24 Hours (2000) || {{playable}} || {{playable}} || {{unplayable}} || No known issues. &lt;span style=&quot;color:white; background:red&gt;Japan version runs horribly slow, but in-game skips heavily.&lt;/span&gt;<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || {{majorissues}} || {{majorissues}} || ? || Playable, but game does not reset after death. EU version has less than US version.<br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || {{playable}} || ? || No known issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;With KOF98 Emulator, this game doesn't reset after pressing start.&lt;/span&gt;<br /> |-<br /> | Looney Tunes: Space Race || {{majorissues}} || {{minorissues}} || ? || Playable, with minor graphic issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;PAL-E has less than US version.&lt;/span&gt;<br /> |-<br /> | Lord of the Rings: Aragorn's Quest, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lord of the Rings: The Fellowship of the Ring, The || {{minorissues}} || {{minorissues}} || {{notavailable}} || Small FPS drops in level with smoke or fog.<br /> |-<br /> | Lord of the Rings: The Return of the King, The || {{playable}} || ? || {{unplayable}} || No known issues. NTSC-J version does not work. Jak v2 emu used.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 2002 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Madden NFL 2003 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2004 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2005 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2006 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2007 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{majorissues}} || ? || Game does boot but graphics are dark and broken. Tested with Jak V2. Probably needs a proper patch.<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{playable}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282586 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{minorissues}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282620 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] There are still audio issues, and some framerate issues. <br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{minorissues}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]].Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{playable}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{majorissues}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || {{playable}} || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || {{minorissues}} || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save also feels like an Earth Quake Happend During The Cutscenes.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || {{unplayable}} || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging... &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has less than USA/Europe versions.&lt;/span&gt;<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Mercury Meltdown Remix || ? || {{playable}} || ? || Runs flawlessly. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{minorissues}} || ? || ? || cars do not load properly and slowed music in garage.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || {{unplayable}} || {{minorissues}} || ? || No noticeable issues, seems to work perfect, I have had issues with graphics on cars, PAL version gets error message &quot;An error has occurred in the following application. Midnight Club 3 - DUB Edition Remix&quot;. Error code: CE-34878-0.<br /> |-<br /> | Midway Arcade Treasures || ? || {{minorissues}} || ? || Intro FMV and interviews(in History section of some games) run slow with choppy audio, but all games tested run perfectly<br /> |-<br /> | Midway Arcade Treasures 3 || ? || {{unplayable}} || ? || Freezes on startup. Black screen.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || {{playable}} || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. Practise mode indicates input working fine on PAL.<br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Mortal_Kombat_-_Shaolin_Monks|[1]]]<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || {{minorissues}} || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | mr Golf || {{playable}} || ? || ? || <br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Musashi: Samurai Legend (Musashiden II: Blade Master) || {{playable}} || {{playable}} || ? || seems to run fine at native.<br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MVP Baseball 2005 || ? || {{playable}} || ? || No known issues<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || {{playable}} || {{playable}} || {{playable}} || <br /> |-<br /> | Namco Museum - 50th Anniversary || {{playable}} || {{playable}} || {{playable}} || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || {{playable}} || {{playable}} || ? || Didn't notice or encounter any issues. UNDUB doesn't work with multiple emulators.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 emu used. Uprender 2x2 to fix blurry graphics. (Does not slow gameplay speed.)<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu), also tested with NeoGeo+(v2) and no issues.<br /> |-<br /> | Naruto: Ultimate Ninja 3 || {{playable}} || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || {{minorissues}} || Flickering issues.<br /> |-<br /> | NASCAR: Dirt to Daytona || {{notavailable}} || {{playable}} || {{notavailable}} || Works great.<br /> |-<br /> | NASCAR: Thunder 2004 || ? || {{minorissues}} || ? || Very playable but some minor graphical issues and some flickering during gameplay.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> Additional full fix exist, but is not precised on which version of game it work. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283081 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] <br /> |-<br /> | Need for Speed: Most Wanted (Black Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Major reflections glitches with minor sound stuttering. Total framedrop on open areas.<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{playable}} || {{playable}} || {{playable}} || Require config file to fix framerate. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277075 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277174 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? ||<br /> |-<br /> | NHL 04 || ? || {{majorissues}} || ? || NTSC version is playable, saving does not work, there are minor slowdowns and choppy cutscenes on the base PS4. Due to the game not saving, its not possible to complete it. Needs a patch or a save from pcsx2<br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || {{majorissues}} || {{unplayable}} || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version loads Full speed, but has many glitches than US/EU versions with both KOF98 and Jakv1 emulators.&lt;/span&gt;<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues. Jakv2 used.<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak). UNDUB works great.<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || wont boot with jakv2 use rogue1 or v2. UNDUB works great.<br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || {{minorissues}} || {{minorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements. Use config from this post to fix most issues in US &amp; JP versions: [https://psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-76#post-285056]<br /> <br /> Ps2-fpkg doesn't seem to work with this game. Tested with PAL and JP english-patched iso and both stuck at the memory card screen.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{playable}} || ? || Working perfectly with the okage v2 emu<br /> |-<br /> | Pac-Man World 2 || {{minorissues}} || {{minorissues}} || {{majorissues}} || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level. &lt;span style=&quot;color:black; background:#FFAA00&gt;JAP has gfx glitches than the US version.&lt;/span&gt;<br /> |-<br /> | Pac-Man World 3 || {{unplayable}} || {{unplayable}} || ? || USA: Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, KOF98, Roguev2, no go on any of them. &lt;br/&gt; EUR: Doesn't boot up. Sound plays but No video then freezes console instantly.<br /> |-<br /> | Pac-Man World Rally || {{unplayable}} || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Power Rangers: Super Legends || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Pro Evolution Soccer 6 (Winning Eleven: Pro Evolution Soccer 2007) || ? || {{playable}} || ? || No issues detected.<br /> |-<br /> | Pro Evolution Soccer 2009 (J.League Winning Eleven 2009: Club Championship) || ? || {{playable}} || {{unplayable}} || Absolutely fine. No issues noted for the NTSC-U/C Version. However, the NTSC-J Version won't even start.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || {{playable}} || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. JAP works fine. Known in Japan as Puyo Puyo Fever. &lt;span style=&quot;color:white; background:#FF1000&gt;KOR98 Emulator you're unable to press start on title screen.&lt;/span&gt;<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. High Language Barrier.<br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion. Rogue Emulator throws unhandled pagefault error screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || {{notavailable}} || {{minorissues}} || ? || Fully playable at full speed with no graphical issues. But Cheats are required to accomplish it. First, use [[Talk:PS2 Classics Emulator Compatibility List#Radiata Stories|Emulator Configuration]]. The game was affected by slowdown and screen tearing if many characters were in the same screen, also shadows weren't correctly displayed. You can use this extensive [ patch by Maori-Jigglypuff] to fix all that, just use &lt;strong&gt;ps2 patch engine&lt;/strong&gt; to patch the ISO (only for SLUS-21262). Lastly hold down triangle and cross before the PS2 logo disappears to enable progressive scan. This eliminates the screen shaking. The game is marked as minor issues because there's a minor glitch that happens after a battle during the results screen: the camera rarely points to the characters during that screen.<br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || {{playable}} || {{unplayable}} || Crashes when going in-game, menu very laggy. US version working fine with Jak emulator. Korean version doesn't boot up after PS2 logo.<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || {{playable}} || ? || USA version runs fine. &lt;span style=&quot;color:white; background:#FF1000&gt;GTA3 v1 emulator runs very slow.&lt;/span&gt;<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Ready 2 Rumble Boxing: Round 2 || ? || {{playable}} || {{notavailable}} || Works using KOF98/Jak Emulator. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator freeze before starts.&lt;/span&gt;<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || {{playable}} || Black screen after PS2 logo. NTSC-J works perfect.<br /> |-<br /> | Red Star, The || {{playable}} || {{unplayable}} || ? || PAL: No issues noticed. NTSC-U/C: Crashes at the start of the second stage as Makita, unsure about as Kyuzo but assuming the same. <br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || {{playable}} || {{playable}} || Very poor performance. USA version works perfect. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator fails before the game starts.&lt;/span&gt;<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed USA version works fine.<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable}} || {{playable}} || Works Fine. No issues found. &lt;span style=&quot;color:black; background:90ff90&gt;NTSC-J version works well.&lt;/span&gt;<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Rocky Legends || ? || {{minorissues}} || ? || small graphical error on main menu doesn't affect anything <br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || {{playable}} || {{minorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance. The audio stuttering on FMVs doesn't happen if using Rogue emulator.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | S.L.A.I. Steel Lancer Arena International ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator. Game takes a little to start.<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> | Samurai Warriors || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2|| {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || {{playable}} || ? || Fix for distorted audio (PAL). Seems to work for the NTSC-U version as well. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{playable}} || {{playable}} || ? || Require config file to fix hang at boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Second_Sight|[1]]]<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20: Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22: Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || {{notavailable}} || {{notavailable}} || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || {{notavailable}} || {{notavailable}} || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sega Soccer Slam || {{Unplayable}} || ? || ? || Stops before loading the menu.<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{playable}} || ? || ? || Works perfectly. Use RECVX emu for full speed gameplay.<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{minorissues}} || {{minorissues}} || ? || Both PAL and NTSC versions run fine with JakEMU V2. Minor slowdows in combat on the base ps4<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun Palmer's Pro Snowboarder || {{minorissues}} || {{minorissues}} || {{unplayable}} || Working fine. Minor graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has many glitches than US and PAL versions.&lt;/span&gt;<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background:#FF1000; color:white;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || {{playable}} || {{minorissues}} || {{playable}} || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable. NTSC-J - aside from minor interlacing(about the same as in PCSX2, to note) in FMVs, works perfect.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || {{Playable}} || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || {{minorissues}} || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899.Pal version sometimes freezes at first loadingscreen<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims 2 Pets || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{unplayable}} || Black screen. Didn't have this game work on PS4 Pro?<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | Sitting ducks || ? || {{playable}} || ? || Works.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now<br /> |-<br /> | Smuggler's Run 2 || ? || {{unplayable}} || ? || Doesn't work, just crashes. Rogue Emulator hangs on a Black screen.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect. Image with Widescreen Patch does not boot on either emulator.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{minorissues}} || {{minorissues}} || {{minorissues}} || Minor graphical issues, but playable. Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_2|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-60#post-280195 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Require config file. Crashes on certain stages. Story mode and Chronicles of The sword unplayable because of this. JakX V2 used. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_3|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-61#post-280864 [2]]<br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu. game doesn't start when using JakV2.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || {{unplayable}} || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult. &lt;span style=&quot;color:white; background:#FF1000&gt;JP version will freeze after ps2 logo.&lt;/span&gt;<br /> |-<br /> | Spider-Man 3 || {{unplayable}} || {{unplayable}} || ? || Freezes on loading screen after the first level. Require config file to fix framerate, and graphical issues. [[Talk:PS2_Classics_Emulator_Compatibility_List#Spider-Man_3|[1]]]<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{unplayable}} || {{unplayable}} || ? || Game is running smooth; however, there is a bug with the combat system which makes it impossible to progress the game.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || {{majorissues}} || {{unplayable}} || ? || Freezes after PS2 logo. EU version runs but with big dips in framerate randomly slowing down gameplay and audio, cutscenes also suffer from slow audio. (EU version tested on PS4 Slim 9.00).<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{minorissues}} || ? || Minor performance issues. Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-278758 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Street Hoops || ? || {{playable}} || ? || runs with no problems<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{majorissues}} || {{majorissues}} || {{unplayable}} || NTSC version works using KOF98/JAK/ROGUE emulators. This game hangs a bit in the main menu. Also it working fine with GTA3 Emulator, as well with Europe. &lt;span style=&quot;color:white; background:#FF1000&gt;JAP version doesn't boot past PS2 logo.&lt;/span&gt;<br /> |-<br /> | Stuntman 2: Ignition || {{unplayable}} || {{unplayable}} || ? || Doesn't work, just crashes. Jakv1 emulator shows a black screen, through you can hear the sound.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{notavailable}} || {{minorissues}} || ? || Check [[Talk:PS2 Classics Emulator Compatibility List#Suikoden_III|Emulator Configuration]] (PAL Version saw a &quot;PS2 Classics&quot; Version only available for the PlayStation 3 [EP0101-NPED00294_00-GSUIKODEN3000001]).<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || {{playable}} || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball Adventure || ? || {{minorissues}} || ? || Apart from some minute graphic artifacts here and there (there are light reflections that look like arcs on the walls), the game plays totally fine with no disruptions whatsoever. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | Super Robot Wars Z || {{notavailable}} || {{notavailable}} || {{Playable}} || No issues detected. <br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Sword of Samurai || {{minorissues}} || ? || ? || extreme flickering but playable <br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works. With jakv2 emu, the screen goes black after the infogrames logo.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive: Eve of Destruction (Driven to Destruction) || ? || {{minorissues}} || {{notavailable}} || Slight frame drop during heavy particle effects, otherwise fine.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu, choppy sound and video.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | The Suffering || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#90FF90&quot;&gt;Sometimes an inverted '''white player model appears''' on the screen, it only appears on the '''first level''', game '''playable''' good enough!&lt;/span&gt;<br /> I used [https://www.psx-place.com/threads/release-ps2-fpkg-0-6-by-jabu-new-tool-to-convert-ps2-games-for-ps4.30350 PS2-FPKG_v0.6] converter with the [https://github.com/Zarh/ManaGunZ/tree/master/pkgfiles/USRDIR/sys/CONFIG config] for PS3 game, it's already present in converter. When converting, check the box '''Auto-Add PS3 Config''', and '''uncheck''' the rest, then choose '''Destroy All Humans V2 emu''', just put [https://mega.nz/folder/tFgjFApL#F8XIfrGKQwsL9ebgm1FLzw this] '''Destroy All Humans V2 emu''' folder into '''PS2-FPKG_v0.6\emus\''' and just select it in the program.<br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Tiger Woods PGA Tour 2004 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisble at times. (Possible draw distance problem?)<br /> |-<br /> | Tiger Woods PGA Tour 2005 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisible when hit making it hard to see where it is.<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{playable}} || {{playable}} || {{playable}} || Black screen after playstation 2 screen can be fixed with —vu1=jit-sync . <br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tokyo Xtreme Racer 3 || ? || {{playable}} || ? || Perfect, game can be finished from start to finish with 0 issues. Just remap the accelerate to triggers since same issue as in auto moddelista<br /> |-<br /> | Tokyo Xtreme Racer: Drift 2 || ? || {{unplayable}} || ? || Menu works almost perfectly with only pop-ups like tooltips and confirmation info text not showing up. In game presents a black screen with only the UI loaded in.<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || {{playable}} || Only works with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before the game starts in this either Japan version.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || {{unplayable}} || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || {{unplayable}} || ? || Black screen after first cutscene, can't go in-menu.<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || {{majorissues}} || Minor frame rate issues on first level, else works fine. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not reset after pressing start on the titlescreen in JAP version.&lt;/span&gt;<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Pro Skater 4 || {{Playable}} || {{Playable}} || {{Unplayable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 4|Emulator Configuration]] for additional details. JAP is totally broken (black screen).<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> | Torrente 3 - The Protector || {{playable}} || ? || ? || Works fine, no noticeable issues.<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> |Total Immersion Racing ||{{unplayable}}||?||?|| Stuck at loading screen<br /> |-<br /> | Tourist Trophy || {{minorissues}} || {{minorissues}} || ? || Small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses because of ground textures not rendering.<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || {{minorissues}} || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:#FF1000;&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;. There were some FPS drops when I tested on PS4 slim. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator still goes into the Infogrames logo then freezes as tested by unknown.&lt;/span&gt;<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || {{unplayable}} || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{playable}} || {{playable}} || {{playable}} || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Urban_Reign|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-279431 [2&lt;nowiki&gt;]&lt;/nowiki&gt;] Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | V-Rally III (V-Rally 3) || {{playable}} || {{playable}} || {{playable}} || working. If you'll test the game on a PS4 Pro FW 5.05. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator will freeze after Atari logo.&lt;/span&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{majorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area and certain area. No significant issue.<br /> Japanese voice dub version will random freeze, no solutions.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches. FPS drops can be fixed using config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Van_Helsing|[1]]]<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{playable}} || {{notavailable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Rogue v1 &amp; Rogue v2. Widescreen patch causes graphics to not render. Only use uprender 2x2 to fix issue but causes enemies deaths to lag the game for a few seconds. Use RECVX emu if you can with uprender 2x2 for widescreen and full speed.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || Use RECVX emu for best experience. Fixes sound effects not playing. Jak emus causes no sound effects from sword to play. <br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> | Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || Perfect emulation. &lt;span style=&quot;color:white; background:#FFAA00&gt;With Jakv2 emu, the game does not reset during gameplay.&lt;/span&gt;<br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> | Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> | Worms 3D || {{playable}} || ? || ? || <br /> |-<br /> | Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE All Stars || ? || {{playable}} || ? || Works flawlessly with no problems<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || {{minorissues}} || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown vs. Raw 2007 || ? || {{playable}} || ? ||<br /> |-<br /> | WWE SmackDown vs. Raw 2008 || ? || {{minorissues}} || ? || Some graphical issues on the main menu and the arena selecttion screen but main gameplay Works flawlessly<br /> |-<br /> | WWE SmackDown vs. Raw 2009 || {{playable}} || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2010 || ? || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends|[1]]]<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{playable}} || ? || Require config file. [[https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends_II|[1]]]<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#FFFF90&quot;&gt;If you use the PS4 PS2 Classics GUI by The Darkprogramer it will run fine - no graphical glitches.&lt;/span&gt; very bad graphical glitches when tested on JakV2 &amp; RogueV1.<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || {{playable}} || Works fine with Jak v2 emulator.<br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{playable}} || ? || ? || Seems to work fine, played around an hour on PS4 FW 9.00.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case. (this game was also published for PS4 as &quot;ZONE OF THE ENDERS THE 2nd RUNNER : M∀RS&quot;)<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=284381 PS2 Classics Emulator Compatibility List 2022-01-26T18:46:14Z <p>162.199.155.139: /* I */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator freezes after PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || {{notavailable}} || ? || --vu1=jit-sync allows game to boot past PS2 logo (known in Japan as &quot;''Tsukiyo ni Saraba&quot; [ツキヨニサラバ]'').<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{playable}} || ? || Works perfectly with Star Ocean emu &amp; Jak 3 v2.<br /> |-<br /> | 7 Sins || {{playable}} || ? || ? || <br /> |-<br /> | FCEUmm PS2 (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} ||<br /> |-<br /> | POPStarter (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu fails to load past title screen.&lt;/span&gt;<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || {{unplayable}} || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J Version how are unable to reach the Title screen.&lt;/span&gt;<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Lightning || ? || ? || {{playable}} || Works with both several Emulators. Memory card saved files only with Rogue Emulator. SLES-51503 tested on PS4 FW 6.xx.<br /> |-<br /> | Activision Anthology || {{playable}} || {{playable}} || ? || works. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator runs very slow.&lt;/span&gt;<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Adventure of Tokyo Disney Sea || ? || ? || {{playable}} || Works.<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details. With Jak, the game works very well on Original PS4.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{playable}} || {{notavailable}} || Config Available. Full Fix. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv2 emulator, the screen goes black after the titlescreen.&lt;/span&gt;<br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark || ? || ? || {{playable}} || Fully works. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator doesn't load past Atari logo.&lt;/span&gt;<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || {{unplayable}} || No noticeable issues, plays great. Saving and Loading works. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version hangs when trying to check the memory card with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || works.<br /> |-<br /> | american idol || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Angelique Trois || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{minorissues}} || ? || Config Available (fixes game speed); graphic corruption, no sound effects play<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play. Jakv2 emu freezes when the game starting up.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues. &lt;span style=&quot;color:white; background:#FF1000&gt;The game crashed after the 3DO Logo with Jakv2 emulator.&lt;/span&gt;<br /> |-<br /> | Army Men: RTS || ? || {{playable}} || ? || Works Perfectly. Use psychonauts v2 emu. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{playable}} || ? || Works. Config Available.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Rogue emulator, the screen goes black after you reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{playable}} || ? || {{playable}} || Everything is perfect on JakEMU V2, the game looks great and there are no slowdowns or glitches. Just remap accelerate to triggers or the car would have accelerating issues<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Backyard Wrestling : Don't Try This At Home || ? || {{Unplayable}} || ? || Freezes after Ps2 load screen<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baldur's Gate : Dark Alliance II || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baroque || ? || {{playable}} || ? || Config Available<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets. Before you can load the title screen, the game freezes with KOF98 Emulator.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||{{unplayable}}|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts, and japanese version still not working on both Rogue and Jak Emulators as well.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || Works perfectly with Jak v2 emu.<br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | BEN 10: ALIEN FORCE || ? || {{playable}} || ? || Excellent and runs just like it does on PS2. Use jak v2 emu. Jakv1 emu works very well.<br /> |-<br /> | Ben 10 Alien Force: Vilgax Attacks || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game starts and launches perfectly into the main menu, but then immediately crashes when trying to play a new game on the first level, although the textures and everything was looking nice... maybe needs a custom config. PS2 Classics GUI used.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? || PAL version runs perfectly, no issues noticed. Used PS2 Classics GUI for conversion (Default emu).<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{minorissues}} || Has English patch. Game might crash if bombs subweapons hits too many enemies on-screen.<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Big Mutha Truckers || {{playable}} || {{playable}} || ? || works flawlessly.<br /> |-<br /> | Big Mutha Truckers 2 || {{unplayable}} || {{playable}} || ? || USA region works flawlessly but Europe region runs, but doesn't seem to work.<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{playable}} || ? || Freezes at the start of first level fixed with config here<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blitz - The League || ? || {{unplayable}} || ? || Crashes after you pick the arena<br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bomber Man Land 2 || ? || ? || {{playable}} ||<br /> |-<br /> | Bouncer, The || ? || {{playable}} || {{playable}} || NTSC-U, NTSC-J tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Britney's Dance Beat || ? || {{playable}} || ? || Game plays perfectly fine no issues at all.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || {{playable}} || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog.<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Cars: Mater-National Championship || {{playable}} || ? || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || Works perfectly with Jakv2.<br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen is almost completely black. It is very hard to see whats going on.&lt;/span&gt;<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Chaos Legion || ? || {{playable}} || ? || No known issues works perfectly fine.<br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} || High Language Barrier.<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Champions: Return to Arms || ? || {{majorissues}} || ? || Working with Rouge V1 but has mayjor graphical glitches. Otherwise stable FPS<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || {{minorissues}} || {{playable}} || ? || Does not work with JAK emulator. Works well with rogue emulator. Very minor graphic glitch on the bottom of the screen when Alyssa is on panic mode.<br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues. Used Jak v2 (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_53158 Crashes after ps2 logo&lt;br&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable.<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Use Rogue v1 emu. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || {{minorissues}} || {{playable}} || ? || No issues noticed on NTSC. Menu and loading screens flicker on PAL version.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_51523 Crashes on game loading screen&lt;br&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect.<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issues with squad nothing that really affects gameplay, audio stutters here and there. Use PS2 FPKG v0.6 go to emulator settings tab and tick fix graphical glitches, do not use uprender 2x2 otherwise it lags. Jak v2 emu used. First stage has a glitch where the controls become inverted after activating the cell switch where movement becomes inverted for both the player and cpu, save the game and reload to fix this.<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed. Works perfectly with Jakv2<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Corvette || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{playable}} || {{minorissues}} || {{notavailable}} || Character models are flickering, bad/weird looking, and the map flickers sometimes. Else works fine. '''EDIT:''' Game now works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{playable}} || {{playable}} || ? || Require config to boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Crash_Nitro_Kart|Emulator config]]. Emu used=JakX v2<br /> |- <br /> | Crash of the Titans || {{playable}} || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds. PAL version works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background. High Language Barrier. With Jakv1 emu, the game crashed after the PS2 bios intro.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 6thMix DDRMAX || ? || {{unplayable}} || ? || Boots fine, but on the song selection screen, the X and Up/Down directional inputs fail to register, making song selection and difficulty change impossible.<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution DDR Festival || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS. Rogue Emu crashes Console.<br /> |-<br /> | Dance Dance Revolution Extreme || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme 2 || ? || {{unplayable}} || ? || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Party Collection || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution SuperNOVA || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution SuperNOVA 2 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dance Dance Revolution X2 || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{playable}} || ? || Require config file [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283079 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] JakX emu used.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{minorissues}} || {{unplayable}} || NTSC - Shadow Model Is Glitchy. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before starts.&lt;/span&gt;<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms, because used '''edgesmooth''' upscale in '''PS2-FPKG_v0.6'''.<br /> ''Edited:'' broblems disappears if you set '''Upscale''' value on '''none''' or '''gpu''' in '''PS2-FPKG_v0.6'''.&lt;br&gt;<br /> If you want '''Force 60hz PAL mode''' in the game and '''force bilinear filtering''', write in the config:<br /> --gs-force-bilinear=1<br /> --force-pal-60hz=1<br /> May be useful for other games too =)<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || {{unplayable}} || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering. There is a black bar at the bottom of the screen - doesn't affect gameplay at all.<br /> |-<br /> | Di Gi Charat Fantasy Excellent || {{notavailable}} || {{notavailable}} || {{playable}} || Full Speed. Very Good Audio. High Language Barrier. Tries to check the memory card.<br /> |-<br /> | Digimon Rumble Arena 2 || {{playable}} || {{playable}} || {{playable}} || Use --fpu-no-clamping=1 to fix menu screen. &lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || {{playable}} || ? || The game works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || {{unplayable}} || Low frame rate. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs fine but ingame skips completely heavily with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 (Collector's Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Game freeze randomly during combat.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || {{playable}} || Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{majorissues}} || {{majorissues}} || {{majorissues}} || Tested with Jak v2 emulator, still random freezes like budokai 3, it seems like if u only play the map &quot; Hyperbolic Time Chamber &quot; u dont get any freeze, so I think it has something to do with the maps, because u cant get kicked out of this map like in others.<br /> |-<br /> | Dragon Ball Z: Sagas || {{notavailable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{unplayable}} || ? || ? || Incredible low performance, estimate around 50% native speed. A lot of audio stutter and scratching due to slow speed.<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches. With GBA Emulator (mGBA 3DS), it does work perfect for me on O2DS console so enough.<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv1 emulator, the game won´t boot after the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not seem to reset after you complete the final Mission.&lt;/span&gt; &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version still loads perfect but Atari logo, and loading screen skips very heavily, and has glitches than US and PAL versions. GTA 3 v1 Emulator stops to the Atari logo due to few beggining.&lt;/span&gt;<br /> |-<br /> | Driver - Parallel Lines (AKA. Driver 4 - Parallel Lines in Japan by UbiSoft) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:#FF1000;&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dual Hearts || ? || {{playable}} || ? || Works perfectly with emu GTA 3 v1<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |-<br /> | Dynasty warriors 3 Extreme legends || {{playable}} || ? || ? || runs perfect with jakv2<br /> |-<br /> | Dynasty warriors 4 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 6 || ? || {{minorissues}} || ? || flickering<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | ESPN-NBA2K5 || ? || {{unplayable}} || ? || crashes error CE-34878-0. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 used. Don't use upscale render otherwise it causes crashes.<br /> |-<br /> | Enthusia: Professional Racing || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{playable}} || ? || To boot past PS2 logo, and fix severe graphical issues, use config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Eternal_Poison|[1]]]<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues. High Language Barrier.<br /> |-<br /> | Everblue 2 || {{playable}} || {{playable}} || ? || To fix geometry/terrain pop-in at edges of screen, use config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Everblue_2|[1]]]. Note: SLES config work also for SLUS version of game.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues. Jak v2 emu used.<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues. Use Bully v2 to fix desynced sounds.<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise. The game boots with jakv2 emulator.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{playable}} || {{playable}} || ? || config @psx-place<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || JakV2 gives black screen after the first cutscene. Really bad slowdown, graphics appear to render perfectly. Requires RogueV1<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || {{minorissues}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan] Game very few times freezes when picking up items or going into Finder mode, very bad on last boss.<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan] UNDUB causes crashes.<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak v2 emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan] UNDUB USA version works fine.<br /> |-<br /> | Fate/Unlimited Codes || ? || ? || {{playable}} || Seemingly perfect using Jak emu<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || {{playable}} || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || {{minorissues}} || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fighter Maker 2 || {{notavailable}} || {{playable}} || {{playable}} || Works with no issues with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;Game immediately crashes on boot-up with Rogue emu.&lt;/span&gt;<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN although the English patched version require additional steps to boot [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-47#post-240636]).<br /> |-<br /> | Final Fight: Streetwise || {{majorissues}} || {{majorissues}} || ? || PAL &amp; NTSC: Huge FPS drop during introducing characters and exploring city, needs a fix.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || {{playable}} || ? || Config Available<br /> |-<br /> | FlatOut 2|| {{playable}} || {{playable}} || ? || config available @PSX-Place<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || SLES_51467 Crashes after PS2 logo.&lt;br&gt;SLUS_20658 Works with no issues.<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |- <br /> | Fullmetal Alchemist 2 Curse of the Crimson Elixir || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Prequel to Broken Angel.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || {{unplayable}} || ? || SLUS-20225 doesn't boot on Jakv2, pagefaults after intro video on Roguev1<br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{playable}} || ? || Custom Config required to fix missing characters &amp; textures. Check Emulator Configuration for additional details.<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{playable}} || ? || Config Available<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || {{playable}} || {{unplayable}} || ? || PAL Version works perfectly with the GTA3 v1 emu<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{unplayable}} || {{playable}} || ? || NTSC Version Has fix Available<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{playable}} || {{playable}} || Requires vu1=jit-sync .<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || Ghost cars are solid and not transparent on Rogue V1 emu. Major graphical issues occur on Special Stage Route 11 and the B-6 License Test on Rogue V1 emu which can only be fixed by restarting the game however they can still be completed regardless.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || {{playable}} || {{playable}} || ? || Lags on 9.00 Tested NTSC U / Fix Available<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{playable}} || {{playable}} || ? || Fix Available<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in PCSX2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the game hangs at the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || {{unplayable}} || the game stop at black screen after the loading of the title screen ends. NTSC-J Version does not boot.<br /> <br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Gungrave || {{minorissues}} || {{minorissues}} ||? || Works fine, config available for graphical glitches. (If anyone can fix glitches please add fix)<br /> |-<br /> | Gungrave Overdose|| ? || {{playable}} ||? || Works fine used kinetica v2 emu to fix missing title screen and other graphical glitches<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Hello Kitty: Roller Rescue || ? || ? || {{playable}} || <br /> |-<br /> | Headhunter || {{minorissues}} || {{playable}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. use emu Jakx v2 for NTSC version<br /> |-<br /> | Headhunter Redemption || {{playable}} || {{minorissues}} || ? || Works fine. NTSC version works fine but seems to have a shadow double image issue.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped. With Jakv2 emu, the game throws an unhandled pagefault error screen.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{playable}} || {{playable}} || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons can be fixed using config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Hunter_the_Reckoning_Wayward|[1]]].<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ice Age 2: Meltdown || ? || {{playable}} || ? || Use config to fix hang on logo. [[Talk:PS2_Classics_Emulator_Compatibility_List#Ice_Age_2_Meltdown]] <br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || {{playable}} ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{playable}} || ? || Config @PSX-Place<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Initial D Special Stage || ? || {{unplayable}} || ? || Game crashes after the PS2. This behavior also happens on PS2 slims/later models so cant be fixed with a patch<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background:#ff1000; color:white;&quot; | PAL Custom Image doesn't boot past the PS2 logo<br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || {{unplayable}} || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in. Similar issue to Driver 3 JP except it hangs after logo with PAL.<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || {{unplayable}} || Black Screen during the Intro FMV. You can hear Music playing. JAP doesn't boot up.<br /> |-<br /> | James Bond 007: Everything or Nothing || {{unplayable}} || {{majorissues}} || ? || Low framerate. PAL version doesn't work. &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || {{unplayable}} || {{majorissues}} || {{unplayable}} || Framerate slowdowns throughout the opening level. PAL version is broken. JAP runs fullspeed but freeze a lot and has gfx glitches. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jaws Unleashed || ? || {{playable}} || ? || Use config file to fix freeze at loading screen before main menu. [[Talk:PS2_Classics_Emulator_Compatibility_List#Jaws_Unleashed|[1]]]<br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Juiced || ? || ? || {{majorissues}} || Very low frame rate<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |-<br /> | Jurassic park: Operation genesis || ? || {{unplayable}} || ? || my english is a little short, hace a several graphics issues, I play in PC with PCSX2 emulator and with software emulation and mipmaping activated and run fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Kappa no Kai-kata: How to Breed Kappas || ? || ? || {{playable}} || The game runs Almost Full Speed. Very Good Audio. Very High Language Barrier. Couldn´t figure out how to check the memory card.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater's Pro Surfer (Kelly Slater's Pro Surfer 2003) || {{playable}} || ? || {{unplayable}} || Works fine. Bully emu used. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J emulator runs fine but ingame skips very heavily.&lt;/span&gt;<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Kengo 3 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Works great Story Mode and VS Mode, some enemies heads appear as black or white in extra modes but nothing game-breaking. <br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{playable}} || {{notavailable}} || PAL works with Bully emu. NTSC works perfectly with Psychonauts v2 emu<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || {{playable}} || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | King of Colloseum 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor glitches appear in the ring mat.<br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue emulator runs perfect but ingame skips too heavily when trying to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match || {{notavailable}} || {{notavailable}} || ? || PS4 version released 9/2/2021 (d/m/y) seems to not be PS2 version despite using PS2 game ID in title_id.<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{playable}} || Use Lua, and Txt config from that post to fix all issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-45#post-238835 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] '''Jak v2 emulator used'''<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || {{unplayable}} || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version works but ingame skips very heavily when trying to access the memory card.&lt;/span&gt; <br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before you can try to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv1 emu, the screen goes black before you can try to check the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || Use config file from that post to fix gameplay issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-77#post-285124 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{minorissues}} || {{minorissues}} || {{unplayable}} || Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]''). &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs well but ingame skips too heavily.&lt;/span&gt;<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{playable}} || ? || Fix Available for freeze in fights<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || {{minorissues}} || {{playable}} || {{minorissues}} || Use config file from that post to fix freezing. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-78#post-285400 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]. Game additionally require fix for Sugoroku minigame, that is only availble for NTSC-U version (post below in link). Pal/Ntsc-J still have that minor bug. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Le Avventure di Lupin III - Lupin la Morte, Zenigata l'Amore || {{unplayable}} || ? || ? || Black Screen when you try and load on PS2.<br /> |-<br /> | Le Avventure di &quot;Lupin III&quot; - Il tesoro del Re Stregone || {{unplayable}} || ? || ? || All cut scenes are perfect, however when in game some assets don't load.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> | Leisure Suit Larry: Magna Cum Laude || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Le Mans 24 Hours (2000) || {{playable}} || {{playable}} || {{unplayable}} || No known issues. &lt;span style=&quot;color:white; background:red&gt;Japan version runs horribly slow, but in-game skips heavily.&lt;/span&gt;<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || {{majorissues}} || {{majorissues}} || ? || Playable, but game does not reset after death. EU version has less than US version.<br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || {{playable}} || ? || No known issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;With KOF98 Emulator, this game doesn't reset after pressing start.&lt;/span&gt;<br /> |-<br /> | Looney Tunes: Space Race || {{majorissues}} || {{minorissues}} || ? || Playable, with minor graphic issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;PAL-E has less than US version.&lt;/span&gt;<br /> |-<br /> | Lord of the Rings: Aragorn's Quest, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lord of the Rings: The Fellowship of the Ring, The || {{minorissues}} || {{minorissues}} || {{notavailable}} || Small FPS drops in level with smoke or fog.<br /> |-<br /> | Lord of the Rings: The Return of the King, The || {{playable}} || ? || {{unplayable}} || No known issues. NTSC-J version does not work. Jak v2 emu used.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 2002 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Madden NFL 2003 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2004 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2005 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2006 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2007 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{majorissues}} || ? || Game does boot but graphics are dark and broken. Tested with Jak V2. Probably needs a proper patch.<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{playable}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282586 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{minorissues}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282620 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] There are still audio issues, and some framerate issues. <br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{minorissues}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]].Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{playable}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{majorissues}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || {{playable}} || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || {{minorissues}} || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save also feels like an Earth Quake Happend During The Cutscenes.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || {{unplayable}} || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging... &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has less than USA/Europe versions.&lt;/span&gt;<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Mercury Meltdown Remix || ? || {{playable}} || ? || Runs flawlessly. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{minorissues}} || ? || ? || cars do not load properly and slowed music in garage.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || {{unplayable}} || {{minorissues}} || ? || No noticeable issues, seems to work perfect, I have had issues with graphics on cars, PAL version gets error message &quot;An error has occurred in the following application. Midnight Club 3 - DUB Edition Remix&quot;. Error code: CE-34878-0.<br /> |-<br /> | Midway Arcade Treasures || ? || {{minorissues}} || ? || Intro FMV and interviews(in History section of some games) run slow with choppy audio, but all games tested run perfectly<br /> |-<br /> | Midway Arcade Treasures 3 || ? || {{unplayable}} || ? || Freezes on startup. Black screen.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || {{playable}} || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. Practise mode indicates input working fine on PAL.<br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Mortal_Kombat_-_Shaolin_Monks|[1]]]<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || {{minorissues}} || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | mr Golf || {{playable}} || ? || ? || <br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Musashi: Samurai Legend (Musashiden II: Blade Master) || {{playable}} || {{playable}} || ? || seems to run fine at native.<br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MVP Baseball 2005 || ? || {{playable}} || ? || No known issues<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || {{playable}} || {{playable}} || {{playable}} || <br /> |-<br /> | Namco Museum - 50th Anniversary || {{playable}} || {{playable}} || {{playable}} || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || {{playable}} || {{playable}} || ? || Didn't notice or encounter any issues. UNDUB doesn't work with multiple emulators.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 emu used. Uprender 2x2 to fix blurry graphics. (Does not slow gameplay speed.)<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu), also tested with NeoGeo+(v2) and no issues.<br /> |-<br /> | Naruto: Ultimate Ninja 3 || {{playable}} || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || {{minorissues}} || Flickering issues.<br /> |-<br /> | NASCAR: Dirt to Daytona || {{notavailable}} || {{playable}} || {{notavailable}} || Works great.<br /> |-<br /> | NASCAR: Thunder 2004 || ? || {{minorissues}} || ? || Very playable but some minor graphical issues and some flickering during gameplay.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> Additional full fix exist, but is not precised on which version of game it work. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283081 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] <br /> |-<br /> | Need for Speed: Most Wanted (Black Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Major reflections glitches with minor sound stuttering. Total framedrop on open areas.<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{playable}} || {{playable}} || {{playable}} || Require config file to fix framerate. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277075 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277174 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? ||<br /> |-<br /> | NHL 04 || ? || {{majorissues}} || ? || NTSC version is playable, saving does not work, there are minor slowdowns and choppy cutscenes on the base PS4. Due to the game not saving, its not possible to complete it. Needs a patch or a save from pcsx2<br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || {{majorissues}} || {{unplayable}} || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version loads Full speed, but has many glitches than US/EU versions with both KOF98 and Jakv1 emulators.&lt;/span&gt;<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues. Jakv2 used.<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak). UNDUB works great.<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || wont boot with jakv2 use rogue1 or v2. UNDUB works great.<br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || {{minorissues}} || {{minorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements. Use config from this post to fix most issues in US &amp; JP versions: [https://psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-76#post-285056]<br /> <br /> Ps2-fpkg doesn't seem to work with this game. Tested with PAL and JP english-patched iso and both stuck at the memory card screen.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{playable}} || ? || Working perfectly with the okage v2 emu<br /> |-<br /> | Pac-Man World 2 || {{minorissues}} || {{minorissues}} || {{majorissues}} || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level. &lt;span style=&quot;color:black; background:#FFAA00&gt;JAP has gfx glitches than the US version.&lt;/span&gt;<br /> |-<br /> | Pac-Man World 3 || {{unplayable}} || {{unplayable}} || ? || USA: Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, KOF98, Roguev2, no go on any of them. &lt;br/&gt; EUR: Doesn't boot up. Sound plays but No video then freezes console instantly.<br /> |-<br /> | Pac-Man World Rally || {{unplayable}} || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Power Rangers: Super Legends || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Pro Evolution Soccer 6 (Winning Eleven: Pro Evolution Soccer 2007) || ? || {{playable}} || ? || No issues detected.<br /> |-<br /> | Pro Evolution Soccer 2009 (J.League Winning Eleven 2009: Club Championship) || ? || {{playable}} || {{unplayable}} || Absolutely fine. No issues noted for the NTSC-U/C Version. However, the NTSC-J Version won't even start.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || {{playable}} || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. JAP works fine. Known in Japan as Puyo Puyo Fever. &lt;span style=&quot;color:white; background:#FF1000&gt;KOR98 Emulator you're unable to press start on title screen.&lt;/span&gt;<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. High Language Barrier.<br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion. Rogue Emulator throws unhandled pagefault error screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || {{notavailable}} || {{minorissues}} || ? || Fully playable at full speed with no graphical issues. But Cheats are required to accomplish it. First, use [[Talk:PS2 Classics Emulator Compatibility List#Radiata Stories|Emulator Configuration]]. The game was affected by slowdown and screen tearing if many characters were in the same screen, also shadows weren't correctly displayed. You can use this extensive [ patch by Maori-Jigglypuff] to fix all that, just use &lt;strong&gt;ps2 patch engine&lt;/strong&gt; to patch the ISO (only for SLUS-21262). Lastly hold down triangle and cross before the PS2 logo disappears to enable progressive scan. This eliminates the screen shaking. The game is marked as minor issues because there's a minor glitch that happens after a battle during the results screen: the camera rarely points to the characters during that screen.<br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || {{playable}} || {{unplayable}} || Crashes when going in-game, menu very laggy. US version working fine with Jak emulator. Korean version doesn't boot up after PS2 logo.<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || {{playable}} || ? || USA version runs fine. &lt;span style=&quot;color:white; background:#FF1000&gt;GTA3 v1 emulator runs very slow.&lt;/span&gt;<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Ready 2 Rumble Boxing: Round 2 || ? || {{playable}} || {{notavailable}} || Works using KOF98/Jak Emulator. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator freeze before starts.&lt;/span&gt;<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || {{playable}} || Black screen after PS2 logo. NTSC-J works perfect.<br /> |-<br /> | Red Star, The || {{playable}} || {{unplayable}} || ? || PAL: No issues noticed. NTSC-U/C: Crashes at the start of the second stage as Makita, unsure about as Kyuzo but assuming the same. <br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || {{playable}} || {{playable}} || Very poor performance. USA version works perfect. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator fails before the game starts.&lt;/span&gt;<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed USA version works fine.<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable}} || {{playable}} || Works Fine. No issues found. &lt;span style=&quot;color:black; background:90ff90&gt;NTSC-J version works well.&lt;/span&gt;<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Rocky Legends || ? || {{minorissues}} || ? || small graphical error on main menu doesn't affect anything <br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || {{playable}} || {{minorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance. The audio stuttering on FMVs doesn't happen if using Rogue emulator.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | S.L.A.I. Steel Lancer Arena International ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator. Game takes a little to start.<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> | Samurai Warriors || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2|| {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || {{playable}} || ? || Fix for distorted audio (PAL). Seems to work for the NTSC-U version as well. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{playable}} || {{playable}} || ? || Require config file to fix hang at boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Second_Sight|[1]]]<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20: Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22: Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || {{notavailable}} || {{notavailable}} || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || {{notavailable}} || {{notavailable}} || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sega Soccer Slam || {{Unplayable}} || ? || ? || Stops before loading the menu.<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{playable}} || ? || ? || Works perfectly. Use RECVX emu for full speed gameplay.<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{minorissues}} || {{minorissues}} || ? || Both PAL and NTSC versions run fine with JakEMU V2. Minor slowdows in combat on the base ps4<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun Palmer's Pro Snowboarder || {{minorissues}} || {{minorissues}} || {{unplayable}} || Working fine. Minor graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has many glitches than US and PAL versions.&lt;/span&gt;<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background:#FF1000; color:white;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || {{playable}} || {{minorissues}} || {{playable}} || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable. NTSC-J - aside from minor interlacing(about the same as in PCSX2, to note) in FMVs, works perfect.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || {{Playable}} || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || {{minorissues}} || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899.Pal version sometimes freezes at first loadingscreen<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims 2 Pets || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{unplayable}} || Black screen. Didn't have this game work on PS4 Pro?<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | Sitting ducks || ? || {{playable}} || ? || Works.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now<br /> |-<br /> | Smuggler's Run 2 || ? || {{unplayable}} || ? || Doesn't work, just crashes. Rogue Emulator hangs on a Black screen.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect. Image with Widescreen Patch does not boot on either emulator.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{minorissues}} || {{minorissues}} || {{minorissues}} || Minor graphical issues, but playable. Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_2|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-60#post-280195 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Require config file. Crashes on certain stages. Story mode and Chronicles of The sword unplayable because of this. JakX V2 used. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_3|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-61#post-280864 [2]]<br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu. game doesn't start when using JakV2.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || {{unplayable}} || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult. &lt;span style=&quot;color:white; background:#FF1000&gt;JP version will freeze after ps2 logo.&lt;/span&gt;<br /> |-<br /> | Spider-Man 3 || {{unplayable}} || {{unplayable}} || ? || Freezes on loading screen after the first level. Require config file to fix framerate, and graphical issues. [[Talk:PS2_Classics_Emulator_Compatibility_List#Spider-Man_3|[1]]]<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{unplayable}} || {{unplayable}} || ? || Game is running smooth; however, there is a bug with the combat system which makes it impossible to progress the game.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || {{majorissues}} || {{unplayable}} || ? || Freezes after PS2 logo. EU version runs but with big dips in framerate randomly slowing down gameplay and audio, cutscenes also suffer from slow audio. (EU version tested on PS4 Slim 9.00).<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{minorissues}} || ? || Minor performance issues. Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-278758 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Street Hoops || ? || {{playable}} || ? || runs with no problems<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{majorissues}} || {{majorissues}} || {{unplayable}} || NTSC version works using KOF98/JAK/ROGUE emulators. This game hangs a bit in the main menu. Also it working fine with GTA3 Emulator, as well with Europe. &lt;span style=&quot;color:white; background:#FF1000&gt;JAP version doesn't boot past PS2 logo.&lt;/span&gt;<br /> |-<br /> | Stuntman 2: Ignition || {{unplayable}} || {{unplayable}} || ? || Doesn't work, just crashes. Jakv1 emulator shows a black screen, through you can hear the sound.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{notavailable}} || {{minorissues}} || ? || Check [[Talk:PS2 Classics Emulator Compatibility List#Suikoden_III|Emulator Configuration]] (PAL Version saw a &quot;PS2 Classics&quot; Version only available for the PlayStation 3 [EP0101-NPED00294_00-GSUIKODEN3000001]).<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || {{playable}} || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball Adventure || ? || {{minorissues}} || ? || Apart from some minute graphic artifacts here and there (there are light reflections that look like arcs on the walls), the game plays totally fine with no disruptions whatsoever. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | Super Robot Wars Z || {{notavailable}} || {{notavailable}} || {{Playable}} || No issues detected. <br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Sword of Samurai || {{minorissues}} || ? || ? || extreme flickering but playable <br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works. With jakv2 emu, the screen goes black after the infogrames logo.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive: Eve of Destruction (Driven to Destruction) || ? || {{minorissues}} || {{notavailable}} || Slight frame drop during heavy particle effects, otherwise fine.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu, choppy sound and video.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | The Suffering || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#90FF90&quot;&gt;Sometimes an inverted '''white player model appears''' on the screen, it only appears on the '''first level''', game '''playable''' good enough!&lt;/span&gt;<br /> I used [https://www.psx-place.com/threads/release-ps2-fpkg-0-6-by-jabu-new-tool-to-convert-ps2-games-for-ps4.30350 PS2-FPKG_v0.6] converter with the [https://github.com/Zarh/ManaGunZ/tree/master/pkgfiles/USRDIR/sys/CONFIG config] for PS3 game, it's already present in converter. When converting, check the box '''Auto-Add PS3 Config''', and '''uncheck''' the rest, then choose '''Destroy All Humans V2 emu''', just put [https://mega.nz/folder/tFgjFApL#F8XIfrGKQwsL9ebgm1FLzw this] '''Destroy All Humans V2 emu''' folder into '''PS2-FPKG_v0.6\emus\''' and just select it in the program.<br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Tiger Woods PGA Tour 2004 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisble at times. (Possible draw distance problem?)<br /> |-<br /> | Tiger Woods PGA Tour 2005 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisible when hit making it hard to see where it is.<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{playable}} || {{playable}} || {{playable}} || Black screen after playstation 2 screen can be fixed with —vu1=jit-sync . <br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tokyo Xtreme Racer 3 || ? || {{playable}} || ? || Perfect, game can be finished from start to finish with 0 issues. Just remap the accelerate to triggers since same issue as in auto moddelista<br /> |-<br /> | Tokyo Xtreme Racer: Drift 2 || ? || {{unplayable}} || ? || Menu works almost perfectly with only pop-ups like tooltips and confirmation info text not showing up. In game presents a black screen with only the UI loaded in.<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || {{playable}} || Only works with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before the game starts in this either Japan version.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || {{unplayable}} || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || {{unplayable}} || ? || Black screen after first cutscene, can't go in-menu.<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || {{majorissues}} || Minor frame rate issues on first level, else works fine. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not reset after pressing start on the titlescreen in JAP version.&lt;/span&gt;<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Pro Skater 4 || {{Playable}} || {{Playable}} || {{Unplayable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 4|Emulator Configuration]] for additional details. JAP is totally broken (black screen).<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> | Torrente 3 - The Protector || {{playable}} || ? || ? || Works fine, no noticeable issues.<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> |Total Immersion Racing ||{{unplayable}}||?||?|| Stuck at loading screen<br /> |-<br /> | Tourist Trophy || {{minorissues}} || {{minorissues}} || ? || Small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses because of ground textures not rendering.<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || {{minorissues}} || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:#FF1000;&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;. There were some FPS drops when I tested on PS4 slim. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator still goes into the Infogrames logo then freezes as tested by unknown.&lt;/span&gt;<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || {{unplayable}} || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{playable}} || {{playable}} || {{playable}} || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Urban_Reign|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-279431 [2&lt;nowiki&gt;]&lt;/nowiki&gt;] Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | V-Rally III (V-Rally 3) || {{playable}} || {{playable}} || {{playable}} || working. If you'll test the game on a PS4 Pro FW 5.05. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator will freeze after Atari logo.&lt;/span&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{majorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area and certain area. No significant issue.<br /> Japanese voice dub version will random freeze, no solutions.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches. FPS drops can be fixed using config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Van_Helsing|[1]]]<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{playable}} || {{notavailable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Rogue v1 &amp; Rogue v2. Widescreen patch causes graphics to not render. Only use uprender 2x2 to fix issue but causes enemies deaths to lag the game for a few seconds. Use RECVX emu if you can with uprender 2x2 for widescreen and full speed.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || Use RECVX emu for best experience. Fixes sound effects not playing. Jak emus causes no sound effects from sword to play. <br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> | Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || Perfect emulation. &lt;span style=&quot;color:white; background:#FFAA00&gt;With Jakv2 emu, the game does not reset during gameplay.&lt;/span&gt;<br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> | Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> | Worms 3D || {{playable}} || ? || ? || <br /> |-<br /> | Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE All Stars || ? || {{playable}} || ? || Works flawlessly with no problems<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || {{minorissues}} || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown vs. Raw 2007 || ? || {{playable}} || ? ||<br /> |-<br /> | WWE SmackDown vs. Raw 2008 || ? || {{minorissues}} || ? || Some graphical issues on the main menu and the arena selecttion screen but main gameplay Works flawlessly<br /> |-<br /> | WWE SmackDown vs. Raw 2009 || {{playable}} || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2010 || ? || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends|[1]]]<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{playable}} || ? || Require config file. [[https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends_II|[1]]]<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#FFFF90&quot;&gt;If you use the PS4 PS2 Classics GUI by The Darkprogramer it will run fine - no graphical glitches.&lt;/span&gt; very bad graphical glitches when tested on JakV2 &amp; RogueV1.<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || {{playable}} || Works fine with Jak v2 emulator.<br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{playable}} || ? || ? || Seems to work fine, played around an hour on PS4 FW 9.00.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case. (this game was also published for PS4 as &quot;ZONE OF THE ENDERS THE 2nd RUNNER : M∀RS&quot;)<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=284380 PS2 Classics Emulator Compatibility List 2022-01-26T18:43:22Z <p>162.199.155.139: /* F */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator freezes after PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || {{notavailable}} || ? || --vu1=jit-sync allows game to boot past PS2 logo (known in Japan as &quot;''Tsukiyo ni Saraba&quot; [ツキヨニサラバ]'').<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{playable}} || ? || Works perfectly with Star Ocean emu &amp; Jak 3 v2.<br /> |-<br /> | 7 Sins || {{playable}} || ? || ? || <br /> |-<br /> | FCEUmm PS2 (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} ||<br /> |-<br /> | POPStarter (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu fails to load past title screen.&lt;/span&gt;<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || {{unplayable}} || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J Version how are unable to reach the Title screen.&lt;/span&gt;<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Lightning || ? || ? || {{playable}} || Works with both several Emulators. Memory card saved files only with Rogue Emulator. SLES-51503 tested on PS4 FW 6.xx.<br /> |-<br /> | Activision Anthology || {{playable}} || {{playable}} || ? || works. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator runs very slow.&lt;/span&gt;<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Adventure of Tokyo Disney Sea || ? || ? || {{playable}} || Works.<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details. With Jak, the game works very well on Original PS4.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{playable}} || {{notavailable}} || Config Available. Full Fix. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv2 emulator, the screen goes black after the titlescreen.&lt;/span&gt;<br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark || ? || ? || {{playable}} || Fully works. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator doesn't load past Atari logo.&lt;/span&gt;<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || {{unplayable}} || No noticeable issues, plays great. Saving and Loading works. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version hangs when trying to check the memory card with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || works.<br /> |-<br /> | american idol || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Angelique Trois || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{minorissues}} || ? || Config Available (fixes game speed); graphic corruption, no sound effects play<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play. Jakv2 emu freezes when the game starting up.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues. &lt;span style=&quot;color:white; background:#FF1000&gt;The game crashed after the 3DO Logo with Jakv2 emulator.&lt;/span&gt;<br /> |-<br /> | Army Men: RTS || ? || {{playable}} || ? || Works Perfectly. Use psychonauts v2 emu. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{playable}} || ? || Works. Config Available.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Rogue emulator, the screen goes black after you reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{playable}} || ? || {{playable}} || Everything is perfect on JakEMU V2, the game looks great and there are no slowdowns or glitches. Just remap accelerate to triggers or the car would have accelerating issues<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Backyard Wrestling : Don't Try This At Home || ? || {{Unplayable}} || ? || Freezes after Ps2 load screen<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baldur's Gate : Dark Alliance II || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baroque || ? || {{playable}} || ? || Config Available<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets. Before you can load the title screen, the game freezes with KOF98 Emulator.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||{{unplayable}}|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts, and japanese version still not working on both Rogue and Jak Emulators as well.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || Works perfectly with Jak v2 emu.<br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | BEN 10: ALIEN FORCE || ? || {{playable}} || ? || Excellent and runs just like it does on PS2. Use jak v2 emu. Jakv1 emu works very well.<br /> |-<br /> | Ben 10 Alien Force: Vilgax Attacks || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game starts and launches perfectly into the main menu, but then immediately crashes when trying to play a new game on the first level, although the textures and everything was looking nice... maybe needs a custom config. PS2 Classics GUI used.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? || PAL version runs perfectly, no issues noticed. Used PS2 Classics GUI for conversion (Default emu).<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{minorissues}} || Has English patch. Game might crash if bombs subweapons hits too many enemies on-screen.<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Big Mutha Truckers || {{playable}} || {{playable}} || ? || works flawlessly.<br /> |-<br /> | Big Mutha Truckers 2 || {{unplayable}} || {{playable}} || ? || USA region works flawlessly but Europe region runs, but doesn't seem to work.<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{playable}} || ? || Freezes at the start of first level fixed with config here<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blitz - The League || ? || {{unplayable}} || ? || Crashes after you pick the arena<br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bomber Man Land 2 || ? || ? || {{playable}} ||<br /> |-<br /> | Bouncer, The || ? || {{playable}} || {{playable}} || NTSC-U, NTSC-J tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Britney's Dance Beat || ? || {{playable}} || ? || Game plays perfectly fine no issues at all.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || {{playable}} || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog.<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Cars: Mater-National Championship || {{playable}} || ? || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || Works perfectly with Jakv2.<br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen is almost completely black. It is very hard to see whats going on.&lt;/span&gt;<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Chaos Legion || ? || {{playable}} || ? || No known issues works perfectly fine.<br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} || High Language Barrier.<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Champions: Return to Arms || ? || {{majorissues}} || ? || Working with Rouge V1 but has mayjor graphical glitches. Otherwise stable FPS<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || {{minorissues}} || {{playable}} || ? || Does not work with JAK emulator. Works well with rogue emulator. Very minor graphic glitch on the bottom of the screen when Alyssa is on panic mode.<br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues. Used Jak v2 (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_53158 Crashes after ps2 logo&lt;br&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable.<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Use Rogue v1 emu. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || {{minorissues}} || {{playable}} || ? || No issues noticed on NTSC. Menu and loading screens flicker on PAL version.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_51523 Crashes on game loading screen&lt;br&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect.<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issues with squad nothing that really affects gameplay, audio stutters here and there. Use PS2 FPKG v0.6 go to emulator settings tab and tick fix graphical glitches, do not use uprender 2x2 otherwise it lags. Jak v2 emu used. First stage has a glitch where the controls become inverted after activating the cell switch where movement becomes inverted for both the player and cpu, save the game and reload to fix this.<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed. Works perfectly with Jakv2<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Corvette || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{playable}} || {{minorissues}} || {{notavailable}} || Character models are flickering, bad/weird looking, and the map flickers sometimes. Else works fine. '''EDIT:''' Game now works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{playable}} || {{playable}} || ? || Require config to boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Crash_Nitro_Kart|Emulator config]]. Emu used=JakX v2<br /> |- <br /> | Crash of the Titans || {{playable}} || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds. PAL version works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background. High Language Barrier. With Jakv1 emu, the game crashed after the PS2 bios intro.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 6thMix DDRMAX || ? || {{unplayable}} || ? || Boots fine, but on the song selection screen, the X and Up/Down directional inputs fail to register, making song selection and difficulty change impossible.<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution DDR Festival || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS. Rogue Emu crashes Console.<br /> |-<br /> | Dance Dance Revolution Extreme || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme 2 || ? || {{unplayable}} || ? || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Party Collection || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution SuperNOVA || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution SuperNOVA 2 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dance Dance Revolution X2 || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{playable}} || ? || Require config file [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283079 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] JakX emu used.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{minorissues}} || {{unplayable}} || NTSC - Shadow Model Is Glitchy. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before starts.&lt;/span&gt;<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms, because used '''edgesmooth''' upscale in '''PS2-FPKG_v0.6'''.<br /> ''Edited:'' broblems disappears if you set '''Upscale''' value on '''none''' or '''gpu''' in '''PS2-FPKG_v0.6'''.&lt;br&gt;<br /> If you want '''Force 60hz PAL mode''' in the game and '''force bilinear filtering''', write in the config:<br /> --gs-force-bilinear=1<br /> --force-pal-60hz=1<br /> May be useful for other games too =)<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || {{unplayable}} || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering. There is a black bar at the bottom of the screen - doesn't affect gameplay at all.<br /> |-<br /> | Di Gi Charat Fantasy Excellent || {{notavailable}} || {{notavailable}} || {{playable}} || Full Speed. Very Good Audio. High Language Barrier. Tries to check the memory card.<br /> |-<br /> | Digimon Rumble Arena 2 || {{playable}} || {{playable}} || {{playable}} || Use --fpu-no-clamping=1 to fix menu screen. &lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || {{playable}} || ? || The game works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || {{unplayable}} || Low frame rate. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs fine but ingame skips completely heavily with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 (Collector's Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Game freeze randomly during combat.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || {{playable}} || Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{majorissues}} || {{majorissues}} || {{majorissues}} || Tested with Jak v2 emulator, still random freezes like budokai 3, it seems like if u only play the map &quot; Hyperbolic Time Chamber &quot; u dont get any freeze, so I think it has something to do with the maps, because u cant get kicked out of this map like in others.<br /> |-<br /> | Dragon Ball Z: Sagas || {{notavailable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{unplayable}} || ? || ? || Incredible low performance, estimate around 50% native speed. A lot of audio stutter and scratching due to slow speed.<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches. With GBA Emulator (mGBA 3DS), it does work perfect for me on O2DS console so enough.<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv1 emulator, the game won´t boot after the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not seem to reset after you complete the final Mission.&lt;/span&gt; &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version still loads perfect but Atari logo, and loading screen skips very heavily, and has glitches than US and PAL versions. GTA 3 v1 Emulator stops to the Atari logo due to few beggining.&lt;/span&gt;<br /> |-<br /> | Driver - Parallel Lines (AKA. Driver 4 - Parallel Lines in Japan by UbiSoft) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:#FF1000;&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dual Hearts || ? || {{playable}} || ? || Works perfectly with emu GTA 3 v1<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |-<br /> | Dynasty warriors 3 Extreme legends || {{playable}} || ? || ? || runs perfect with jakv2<br /> |-<br /> | Dynasty warriors 4 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 6 || ? || {{minorissues}} || ? || flickering<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | ESPN-NBA2K5 || ? || {{unplayable}} || ? || crashes error CE-34878-0. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 used. Don't use upscale render otherwise it causes crashes.<br /> |-<br /> | Enthusia: Professional Racing || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{playable}} || ? || To boot past PS2 logo, and fix severe graphical issues, use config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Eternal_Poison|[1]]]<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues. High Language Barrier.<br /> |-<br /> | Everblue 2 || {{playable}} || {{playable}} || ? || To fix geometry/terrain pop-in at edges of screen, use config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Everblue_2|[1]]]. Note: SLES config work also for SLUS version of game.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues. Jak v2 emu used.<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues. Use Bully v2 to fix desynced sounds.<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise. The game boots with jakv2 emulator.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{playable}} || {{playable}} || ? || config @psx-place<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || JakV2 gives black screen after the first cutscene. Really bad slowdown, graphics appear to render perfectly. Requires RogueV1<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || {{minorissues}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan] Game very few times freezes when picking up items or going into Finder mode, very bad on last boss.<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan] UNDUB causes crashes.<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak v2 emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan] UNDUB USA version works fine.<br /> |-<br /> | Fate/Unlimited Codes || ? || ? || {{playable}} || Seemingly perfect using Jak emu<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || {{playable}} || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || {{minorissues}} || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fighter Maker 2 || {{notavailable}} || {{playable}} || {{playable}} || Works with no issues with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;Game immediately crashes on boot-up with Rogue emu.&lt;/span&gt;<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN although the English patched version require additional steps to boot [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-47#post-240636]).<br /> |-<br /> | Final Fight: Streetwise || {{majorissues}} || {{majorissues}} || ? || PAL &amp; NTSC: Huge FPS drop during introducing characters and exploring city, needs a fix.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || {{playable}} || ? || Config Available<br /> |-<br /> | FlatOut 2|| {{playable}} || {{playable}} || ? || config available @PSX-Place<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || SLES_51467 Crashes after PS2 logo.&lt;br&gt;SLUS_20658 Works with no issues.<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |- <br /> | Fullmetal Alchemist 2 Curse of the Crimson Elixir || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Prequel to Broken Angel.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || {{unplayable}} || ? || SLUS-20225 doesn't boot on Jakv2, pagefaults after intro video on Roguev1<br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{playable}} || ? || Custom Config required to fix missing characters &amp; textures. Check Emulator Configuration for additional details.<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{playable}} || ? || Config Available<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || {{playable}} || {{unplayable}} || ? || PAL Version works perfectly with the GTA3 v1 emu<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{unplayable}} || {{playable}} || ? || NTSC Version Has fix Available<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{playable}} || {{playable}} || Requires vu1=jit-sync .<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || Ghost cars are solid and not transparent on Rogue V1 emu. Major graphical issues occur on Special Stage Route 11 and the B-6 License Test on Rogue V1 emu which can only be fixed by restarting the game however they can still be completed regardless.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || {{playable}} || {{playable}} || ? || Lags on 9.00 Tested NTSC U / Fix Available<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{playable}} || {{playable}} || ? || Fix Available<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in PCSX2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the game hangs at the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || {{unplayable}} || the game stop at black screen after the loading of the title screen ends. NTSC-J Version does not boot.<br /> <br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Gungrave || {{minorissues}} || {{minorissues}} ||? || Works fine, config available for graphical glitches. (If anyone can fix glitches please add fix)<br /> |-<br /> | Gungrave Overdose|| ? || {{playable}} ||? || Works fine used kinetica v2 emu to fix missing title screen and other graphical glitches<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Hello Kitty: Roller Rescue || ? || ? || {{playable}} || <br /> |-<br /> | Headhunter || {{minorissues}} || {{playable}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. use emu Jakx v2 for NTSC version<br /> |-<br /> | Headhunter Redemption || {{playable}} || {{minorissues}} || ? || Works fine. NTSC version works fine but seems to have a shadow double image issue.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped. With Jakv2 emu, the game throws an unhandled pagefault error screen.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{playable}} || {{playable}} || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons can be fixed using config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Hunter_the_Reckoning_Wayward|[1]]].<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ice Age 2: Meltdown || ? || {{playable}} || ? || Use config to fix hang on logo. [[Talk:PS2_Classics_Emulator_Compatibility_List#Ice_Age_2_Meltdown]] <br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || {{playable}} ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Initial D Special Stage || ? || {{unplayable}} || ? || Game crashes after the PS2. This behavior also happens on PS2 slims/later models so cant be fixed with a patch<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background:#ff1000; color:white;&quot; | PAL Custom Image doesn't boot past the PS2 logo<br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || {{unplayable}} || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in. Similar issue to Driver 3 JP except it hangs after logo with PAL.<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || {{unplayable}} || Black Screen during the Intro FMV. You can hear Music playing. JAP doesn't boot up.<br /> |-<br /> | James Bond 007: Everything or Nothing || {{unplayable}} || {{majorissues}} || ? || Low framerate. PAL version doesn't work. &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || {{unplayable}} || {{majorissues}} || {{unplayable}} || Framerate slowdowns throughout the opening level. PAL version is broken. JAP runs fullspeed but freeze a lot and has gfx glitches. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jaws Unleashed || ? || {{playable}} || ? || Use config file to fix freeze at loading screen before main menu. [[Talk:PS2_Classics_Emulator_Compatibility_List#Jaws_Unleashed|[1]]]<br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Juiced || ? || ? || {{majorissues}} || Very low frame rate<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |-<br /> | Jurassic park: Operation genesis || ? || {{unplayable}} || ? || my english is a little short, hace a several graphics issues, I play in PC with PCSX2 emulator and with software emulation and mipmaping activated and run fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Kappa no Kai-kata: How to Breed Kappas || ? || ? || {{playable}} || The game runs Almost Full Speed. Very Good Audio. Very High Language Barrier. Couldn´t figure out how to check the memory card.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater's Pro Surfer (Kelly Slater's Pro Surfer 2003) || {{playable}} || ? || {{unplayable}} || Works fine. Bully emu used. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J emulator runs fine but ingame skips very heavily.&lt;/span&gt;<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Kengo 3 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Works great Story Mode and VS Mode, some enemies heads appear as black or white in extra modes but nothing game-breaking. <br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{playable}} || {{notavailable}} || PAL works with Bully emu. NTSC works perfectly with Psychonauts v2 emu<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || {{playable}} || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | King of Colloseum 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor glitches appear in the ring mat.<br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue emulator runs perfect but ingame skips too heavily when trying to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match || {{notavailable}} || {{notavailable}} || ? || PS4 version released 9/2/2021 (d/m/y) seems to not be PS2 version despite using PS2 game ID in title_id.<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{playable}} || Use Lua, and Txt config from that post to fix all issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-45#post-238835 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] '''Jak v2 emulator used'''<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || {{unplayable}} || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version works but ingame skips very heavily when trying to access the memory card.&lt;/span&gt; <br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before you can try to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv1 emu, the screen goes black before you can try to check the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || Use config file from that post to fix gameplay issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-77#post-285124 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{minorissues}} || {{minorissues}} || {{unplayable}} || Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]''). &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs well but ingame skips too heavily.&lt;/span&gt;<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{playable}} || ? || Fix Available for freeze in fights<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || {{minorissues}} || {{playable}} || {{minorissues}} || Use config file from that post to fix freezing. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-78#post-285400 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]. Game additionally require fix for Sugoroku minigame, that is only availble for NTSC-U version (post below in link). Pal/Ntsc-J still have that minor bug. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Le Avventure di Lupin III - Lupin la Morte, Zenigata l'Amore || {{unplayable}} || ? || ? || Black Screen when you try and load on PS2.<br /> |-<br /> | Le Avventure di &quot;Lupin III&quot; - Il tesoro del Re Stregone || {{unplayable}} || ? || ? || All cut scenes are perfect, however when in game some assets don't load.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> | Leisure Suit Larry: Magna Cum Laude || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Le Mans 24 Hours (2000) || {{playable}} || {{playable}} || {{unplayable}} || No known issues. &lt;span style=&quot;color:white; background:red&gt;Japan version runs horribly slow, but in-game skips heavily.&lt;/span&gt;<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || {{majorissues}} || {{majorissues}} || ? || Playable, but game does not reset after death. EU version has less than US version.<br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || {{playable}} || ? || No known issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;With KOF98 Emulator, this game doesn't reset after pressing start.&lt;/span&gt;<br /> |-<br /> | Looney Tunes: Space Race || {{majorissues}} || {{minorissues}} || ? || Playable, with minor graphic issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;PAL-E has less than US version.&lt;/span&gt;<br /> |-<br /> | Lord of the Rings: Aragorn's Quest, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lord of the Rings: The Fellowship of the Ring, The || {{minorissues}} || {{minorissues}} || {{notavailable}} || Small FPS drops in level with smoke or fog.<br /> |-<br /> | Lord of the Rings: The Return of the King, The || {{playable}} || ? || {{unplayable}} || No known issues. NTSC-J version does not work. Jak v2 emu used.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 2002 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Madden NFL 2003 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2004 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2005 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2006 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2007 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{majorissues}} || ? || Game does boot but graphics are dark and broken. Tested with Jak V2. Probably needs a proper patch.<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{playable}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282586 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{minorissues}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282620 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] There are still audio issues, and some framerate issues. <br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{minorissues}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]].Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{playable}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{majorissues}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || {{playable}} || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || {{minorissues}} || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save also feels like an Earth Quake Happend During The Cutscenes.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || {{unplayable}} || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging... &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has less than USA/Europe versions.&lt;/span&gt;<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Mercury Meltdown Remix || ? || {{playable}} || ? || Runs flawlessly. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{minorissues}} || ? || ? || cars do not load properly and slowed music in garage.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || {{unplayable}} || {{minorissues}} || ? || No noticeable issues, seems to work perfect, I have had issues with graphics on cars, PAL version gets error message &quot;An error has occurred in the following application. Midnight Club 3 - DUB Edition Remix&quot;. Error code: CE-34878-0.<br /> |-<br /> | Midway Arcade Treasures || ? || {{minorissues}} || ? || Intro FMV and interviews(in History section of some games) run slow with choppy audio, but all games tested run perfectly<br /> |-<br /> | Midway Arcade Treasures 3 || ? || {{unplayable}} || ? || Freezes on startup. Black screen.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || {{playable}} || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. Practise mode indicates input working fine on PAL.<br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Mortal_Kombat_-_Shaolin_Monks|[1]]]<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || {{minorissues}} || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | mr Golf || {{playable}} || ? || ? || <br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Musashi: Samurai Legend (Musashiden II: Blade Master) || {{playable}} || {{playable}} || ? || seems to run fine at native.<br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MVP Baseball 2005 || ? || {{playable}} || ? || No known issues<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || {{playable}} || {{playable}} || {{playable}} || <br /> |-<br /> | Namco Museum - 50th Anniversary || {{playable}} || {{playable}} || {{playable}} || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || {{playable}} || {{playable}} || ? || Didn't notice or encounter any issues. UNDUB doesn't work with multiple emulators.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 emu used. Uprender 2x2 to fix blurry graphics. (Does not slow gameplay speed.)<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu), also tested with NeoGeo+(v2) and no issues.<br /> |-<br /> | Naruto: Ultimate Ninja 3 || {{playable}} || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || {{minorissues}} || Flickering issues.<br /> |-<br /> | NASCAR: Dirt to Daytona || {{notavailable}} || {{playable}} || {{notavailable}} || Works great.<br /> |-<br /> | NASCAR: Thunder 2004 || ? || {{minorissues}} || ? || Very playable but some minor graphical issues and some flickering during gameplay.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> Additional full fix exist, but is not precised on which version of game it work. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283081 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] <br /> |-<br /> | Need for Speed: Most Wanted (Black Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Major reflections glitches with minor sound stuttering. Total framedrop on open areas.<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{playable}} || {{playable}} || {{playable}} || Require config file to fix framerate. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277075 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277174 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? ||<br /> |-<br /> | NHL 04 || ? || {{majorissues}} || ? || NTSC version is playable, saving does not work, there are minor slowdowns and choppy cutscenes on the base PS4. Due to the game not saving, its not possible to complete it. Needs a patch or a save from pcsx2<br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || {{majorissues}} || {{unplayable}} || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version loads Full speed, but has many glitches than US/EU versions with both KOF98 and Jakv1 emulators.&lt;/span&gt;<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues. Jakv2 used.<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak). UNDUB works great.<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || wont boot with jakv2 use rogue1 or v2. UNDUB works great.<br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || {{minorissues}} || {{minorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements. Use config from this post to fix most issues in US &amp; JP versions: [https://psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-76#post-285056]<br /> <br /> Ps2-fpkg doesn't seem to work with this game. Tested with PAL and JP english-patched iso and both stuck at the memory card screen.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{playable}} || ? || Working perfectly with the okage v2 emu<br /> |-<br /> | Pac-Man World 2 || {{minorissues}} || {{minorissues}} || {{majorissues}} || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level. &lt;span style=&quot;color:black; background:#FFAA00&gt;JAP has gfx glitches than the US version.&lt;/span&gt;<br /> |-<br /> | Pac-Man World 3 || {{unplayable}} || {{unplayable}} || ? || USA: Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, KOF98, Roguev2, no go on any of them. &lt;br/&gt; EUR: Doesn't boot up. Sound plays but No video then freezes console instantly.<br /> |-<br /> | Pac-Man World Rally || {{unplayable}} || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Power Rangers: Super Legends || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Pro Evolution Soccer 6 (Winning Eleven: Pro Evolution Soccer 2007) || ? || {{playable}} || ? || No issues detected.<br /> |-<br /> | Pro Evolution Soccer 2009 (J.League Winning Eleven 2009: Club Championship) || ? || {{playable}} || {{unplayable}} || Absolutely fine. No issues noted for the NTSC-U/C Version. However, the NTSC-J Version won't even start.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || {{playable}} || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. JAP works fine. Known in Japan as Puyo Puyo Fever. &lt;span style=&quot;color:white; background:#FF1000&gt;KOR98 Emulator you're unable to press start on title screen.&lt;/span&gt;<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. High Language Barrier.<br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion. Rogue Emulator throws unhandled pagefault error screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || {{notavailable}} || {{minorissues}} || ? || Fully playable at full speed with no graphical issues. But Cheats are required to accomplish it. First, use [[Talk:PS2 Classics Emulator Compatibility List#Radiata Stories|Emulator Configuration]]. The game was affected by slowdown and screen tearing if many characters were in the same screen, also shadows weren't correctly displayed. You can use this extensive [ patch by Maori-Jigglypuff] to fix all that, just use &lt;strong&gt;ps2 patch engine&lt;/strong&gt; to patch the ISO (only for SLUS-21262). Lastly hold down triangle and cross before the PS2 logo disappears to enable progressive scan. This eliminates the screen shaking. The game is marked as minor issues because there's a minor glitch that happens after a battle during the results screen: the camera rarely points to the characters during that screen.<br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || {{playable}} || {{unplayable}} || Crashes when going in-game, menu very laggy. US version working fine with Jak emulator. Korean version doesn't boot up after PS2 logo.<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || {{playable}} || ? || USA version runs fine. &lt;span style=&quot;color:white; background:#FF1000&gt;GTA3 v1 emulator runs very slow.&lt;/span&gt;<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Ready 2 Rumble Boxing: Round 2 || ? || {{playable}} || {{notavailable}} || Works using KOF98/Jak Emulator. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator freeze before starts.&lt;/span&gt;<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || {{playable}} || Black screen after PS2 logo. NTSC-J works perfect.<br /> |-<br /> | Red Star, The || {{playable}} || {{unplayable}} || ? || PAL: No issues noticed. NTSC-U/C: Crashes at the start of the second stage as Makita, unsure about as Kyuzo but assuming the same. <br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || {{playable}} || {{playable}} || Very poor performance. USA version works perfect. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator fails before the game starts.&lt;/span&gt;<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed USA version works fine.<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable}} || {{playable}} || Works Fine. No issues found. &lt;span style=&quot;color:black; background:90ff90&gt;NTSC-J version works well.&lt;/span&gt;<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Rocky Legends || ? || {{minorissues}} || ? || small graphical error on main menu doesn't affect anything <br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || {{playable}} || {{minorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance. The audio stuttering on FMVs doesn't happen if using Rogue emulator.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | S.L.A.I. Steel Lancer Arena International ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator. Game takes a little to start.<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> | Samurai Warriors || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2|| {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || {{playable}} || ? || Fix for distorted audio (PAL). Seems to work for the NTSC-U version as well. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{playable}} || {{playable}} || ? || Require config file to fix hang at boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Second_Sight|[1]]]<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20: Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22: Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || {{notavailable}} || {{notavailable}} || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || {{notavailable}} || {{notavailable}} || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sega Soccer Slam || {{Unplayable}} || ? || ? || Stops before loading the menu.<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{playable}} || ? || ? || Works perfectly. Use RECVX emu for full speed gameplay.<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{minorissues}} || {{minorissues}} || ? || Both PAL and NTSC versions run fine with JakEMU V2. Minor slowdows in combat on the base ps4<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun Palmer's Pro Snowboarder || {{minorissues}} || {{minorissues}} || {{unplayable}} || Working fine. Minor graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has many glitches than US and PAL versions.&lt;/span&gt;<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background:#FF1000; color:white;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || {{playable}} || {{minorissues}} || {{playable}} || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable. NTSC-J - aside from minor interlacing(about the same as in PCSX2, to note) in FMVs, works perfect.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || {{Playable}} || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || {{minorissues}} || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899.Pal version sometimes freezes at first loadingscreen<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims 2 Pets || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{unplayable}} || Black screen. Didn't have this game work on PS4 Pro?<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | Sitting ducks || ? || {{playable}} || ? || Works.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now<br /> |-<br /> | Smuggler's Run 2 || ? || {{unplayable}} || ? || Doesn't work, just crashes. Rogue Emulator hangs on a Black screen.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect. Image with Widescreen Patch does not boot on either emulator.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{minorissues}} || {{minorissues}} || {{minorissues}} || Minor graphical issues, but playable. Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_2|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-60#post-280195 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Require config file. Crashes on certain stages. Story mode and Chronicles of The sword unplayable because of this. JakX V2 used. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_3|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-61#post-280864 [2]]<br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu. game doesn't start when using JakV2.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || {{unplayable}} || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult. &lt;span style=&quot;color:white; background:#FF1000&gt;JP version will freeze after ps2 logo.&lt;/span&gt;<br /> |-<br /> | Spider-Man 3 || {{unplayable}} || {{unplayable}} || ? || Freezes on loading screen after the first level. Require config file to fix framerate, and graphical issues. [[Talk:PS2_Classics_Emulator_Compatibility_List#Spider-Man_3|[1]]]<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{unplayable}} || {{unplayable}} || ? || Game is running smooth; however, there is a bug with the combat system which makes it impossible to progress the game.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || {{majorissues}} || {{unplayable}} || ? || Freezes after PS2 logo. EU version runs but with big dips in framerate randomly slowing down gameplay and audio, cutscenes also suffer from slow audio. (EU version tested on PS4 Slim 9.00).<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{minorissues}} || ? || Minor performance issues. Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-278758 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Street Hoops || ? || {{playable}} || ? || runs with no problems<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{majorissues}} || {{majorissues}} || {{unplayable}} || NTSC version works using KOF98/JAK/ROGUE emulators. This game hangs a bit in the main menu. Also it working fine with GTA3 Emulator, as well with Europe. &lt;span style=&quot;color:white; background:#FF1000&gt;JAP version doesn't boot past PS2 logo.&lt;/span&gt;<br /> |-<br /> | Stuntman 2: Ignition || {{unplayable}} || {{unplayable}} || ? || Doesn't work, just crashes. Jakv1 emulator shows a black screen, through you can hear the sound.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{notavailable}} || {{minorissues}} || ? || Check [[Talk:PS2 Classics Emulator Compatibility List#Suikoden_III|Emulator Configuration]] (PAL Version saw a &quot;PS2 Classics&quot; Version only available for the PlayStation 3 [EP0101-NPED00294_00-GSUIKODEN3000001]).<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || {{playable}} || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball Adventure || ? || {{minorissues}} || ? || Apart from some minute graphic artifacts here and there (there are light reflections that look like arcs on the walls), the game plays totally fine with no disruptions whatsoever. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | Super Robot Wars Z || {{notavailable}} || {{notavailable}} || {{Playable}} || No issues detected. <br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Sword of Samurai || {{minorissues}} || ? || ? || extreme flickering but playable <br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works. With jakv2 emu, the screen goes black after the infogrames logo.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive: Eve of Destruction (Driven to Destruction) || ? || {{minorissues}} || {{notavailable}} || Slight frame drop during heavy particle effects, otherwise fine.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu, choppy sound and video.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | The Suffering || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#90FF90&quot;&gt;Sometimes an inverted '''white player model appears''' on the screen, it only appears on the '''first level''', game '''playable''' good enough!&lt;/span&gt;<br /> I used [https://www.psx-place.com/threads/release-ps2-fpkg-0-6-by-jabu-new-tool-to-convert-ps2-games-for-ps4.30350 PS2-FPKG_v0.6] converter with the [https://github.com/Zarh/ManaGunZ/tree/master/pkgfiles/USRDIR/sys/CONFIG config] for PS3 game, it's already present in converter. When converting, check the box '''Auto-Add PS3 Config''', and '''uncheck''' the rest, then choose '''Destroy All Humans V2 emu''', just put [https://mega.nz/folder/tFgjFApL#F8XIfrGKQwsL9ebgm1FLzw this] '''Destroy All Humans V2 emu''' folder into '''PS2-FPKG_v0.6\emus\''' and just select it in the program.<br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Tiger Woods PGA Tour 2004 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisble at times. (Possible draw distance problem?)<br /> |-<br /> | Tiger Woods PGA Tour 2005 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisible when hit making it hard to see where it is.<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{playable}} || {{playable}} || {{playable}} || Black screen after playstation 2 screen can be fixed with —vu1=jit-sync . <br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tokyo Xtreme Racer 3 || ? || {{playable}} || ? || Perfect, game can be finished from start to finish with 0 issues. Just remap the accelerate to triggers since same issue as in auto moddelista<br /> |-<br /> | Tokyo Xtreme Racer: Drift 2 || ? || {{unplayable}} || ? || Menu works almost perfectly with only pop-ups like tooltips and confirmation info text not showing up. In game presents a black screen with only the UI loaded in.<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || {{playable}} || Only works with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before the game starts in this either Japan version.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || {{unplayable}} || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || {{unplayable}} || ? || Black screen after first cutscene, can't go in-menu.<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || {{majorissues}} || Minor frame rate issues on first level, else works fine. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not reset after pressing start on the titlescreen in JAP version.&lt;/span&gt;<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Pro Skater 4 || {{Playable}} || {{Playable}} || {{Unplayable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 4|Emulator Configuration]] for additional details. JAP is totally broken (black screen).<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> | Torrente 3 - The Protector || {{playable}} || ? || ? || Works fine, no noticeable issues.<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> |Total Immersion Racing ||{{unplayable}}||?||?|| Stuck at loading screen<br /> |-<br /> | Tourist Trophy || {{minorissues}} || {{minorissues}} || ? || Small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses because of ground textures not rendering.<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || {{minorissues}} || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:#FF1000;&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;. There were some FPS drops when I tested on PS4 slim. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator still goes into the Infogrames logo then freezes as tested by unknown.&lt;/span&gt;<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || {{unplayable}} || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{playable}} || {{playable}} || {{playable}} || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Urban_Reign|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-279431 [2&lt;nowiki&gt;]&lt;/nowiki&gt;] Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | V-Rally III (V-Rally 3) || {{playable}} || {{playable}} || {{playable}} || working. If you'll test the game on a PS4 Pro FW 5.05. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator will freeze after Atari logo.&lt;/span&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{majorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area and certain area. No significant issue.<br /> Japanese voice dub version will random freeze, no solutions.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches. FPS drops can be fixed using config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Van_Helsing|[1]]]<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{playable}} || {{notavailable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Rogue v1 &amp; Rogue v2. Widescreen patch causes graphics to not render. Only use uprender 2x2 to fix issue but causes enemies deaths to lag the game for a few seconds. Use RECVX emu if you can with uprender 2x2 for widescreen and full speed.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || Use RECVX emu for best experience. Fixes sound effects not playing. Jak emus causes no sound effects from sword to play. <br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> | Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || Perfect emulation. &lt;span style=&quot;color:white; background:#FFAA00&gt;With Jakv2 emu, the game does not reset during gameplay.&lt;/span&gt;<br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> | Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> | Worms 3D || {{playable}} || ? || ? || <br /> |-<br /> | Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE All Stars || ? || {{playable}} || ? || Works flawlessly with no problems<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || {{minorissues}} || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown vs. Raw 2007 || ? || {{playable}} || ? ||<br /> |-<br /> | WWE SmackDown vs. Raw 2008 || ? || {{minorissues}} || ? || Some graphical issues on the main menu and the arena selecttion screen but main gameplay Works flawlessly<br /> |-<br /> | WWE SmackDown vs. Raw 2009 || {{playable}} || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2010 || ? || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends|[1]]]<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{playable}} || ? || Require config file. [[https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends_II|[1]]]<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#FFFF90&quot;&gt;If you use the PS4 PS2 Classics GUI by The Darkprogramer it will run fine - no graphical glitches.&lt;/span&gt; very bad graphical glitches when tested on JakV2 &amp; RogueV1.<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || {{playable}} || Works fine with Jak v2 emulator.<br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{playable}} || ? || ? || Seems to work fine, played around an hour on PS4 FW 9.00.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case. (this game was also published for PS4 as &quot;ZONE OF THE ENDERS THE 2nd RUNNER : M∀RS&quot;)<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=284378 PS2 Classics Emulator Compatibility List 2022-01-26T18:41:56Z <p>162.199.155.139: /* F */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator freezes after PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || {{notavailable}} || ? || --vu1=jit-sync allows game to boot past PS2 logo (known in Japan as &quot;''Tsukiyo ni Saraba&quot; [ツキヨニサラバ]'').<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{playable}} || ? || Works perfectly with Star Ocean emu &amp; Jak 3 v2.<br /> |-<br /> | 7 Sins || {{playable}} || ? || ? || <br /> |-<br /> | FCEUmm PS2 (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} ||<br /> |-<br /> | POPStarter (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu fails to load past title screen.&lt;/span&gt;<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || {{unplayable}} || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J Version how are unable to reach the Title screen.&lt;/span&gt;<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Lightning || ? || ? || {{playable}} || Works with both several Emulators. Memory card saved files only with Rogue Emulator. SLES-51503 tested on PS4 FW 6.xx.<br /> |-<br /> | Activision Anthology || {{playable}} || {{playable}} || ? || works. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator runs very slow.&lt;/span&gt;<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Adventure of Tokyo Disney Sea || ? || ? || {{playable}} || Works.<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details. With Jak, the game works very well on Original PS4.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{playable}} || {{notavailable}} || Config Available. Full Fix. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv2 emulator, the screen goes black after the titlescreen.&lt;/span&gt;<br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark || ? || ? || {{playable}} || Fully works. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator doesn't load past Atari logo.&lt;/span&gt;<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || {{unplayable}} || No noticeable issues, plays great. Saving and Loading works. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version hangs when trying to check the memory card with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || works.<br /> |-<br /> | american idol || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Angelique Trois || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{minorissues}} || ? || Config Available (fixes game speed); graphic corruption, no sound effects play<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play. Jakv2 emu freezes when the game starting up.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues. &lt;span style=&quot;color:white; background:#FF1000&gt;The game crashed after the 3DO Logo with Jakv2 emulator.&lt;/span&gt;<br /> |-<br /> | Army Men: RTS || ? || {{playable}} || ? || Works Perfectly. Use psychonauts v2 emu. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{playable}} || ? || Works. Config Available.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Rogue emulator, the screen goes black after you reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{playable}} || ? || {{playable}} || Everything is perfect on JakEMU V2, the game looks great and there are no slowdowns or glitches. Just remap accelerate to triggers or the car would have accelerating issues<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Backyard Wrestling : Don't Try This At Home || ? || {{Unplayable}} || ? || Freezes after Ps2 load screen<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baldur's Gate : Dark Alliance II || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baroque || ? || {{playable}} || ? || Config Available<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets. Before you can load the title screen, the game freezes with KOF98 Emulator.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||{{unplayable}}|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts, and japanese version still not working on both Rogue and Jak Emulators as well.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || Works perfectly with Jak v2 emu.<br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | BEN 10: ALIEN FORCE || ? || {{playable}} || ? || Excellent and runs just like it does on PS2. Use jak v2 emu. Jakv1 emu works very well.<br /> |-<br /> | Ben 10 Alien Force: Vilgax Attacks || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game starts and launches perfectly into the main menu, but then immediately crashes when trying to play a new game on the first level, although the textures and everything was looking nice... maybe needs a custom config. PS2 Classics GUI used.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? || PAL version runs perfectly, no issues noticed. Used PS2 Classics GUI for conversion (Default emu).<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{minorissues}} || Has English patch. Game might crash if bombs subweapons hits too many enemies on-screen.<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Big Mutha Truckers || {{playable}} || {{playable}} || ? || works flawlessly.<br /> |-<br /> | Big Mutha Truckers 2 || {{unplayable}} || {{playable}} || ? || USA region works flawlessly but Europe region runs, but doesn't seem to work.<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{playable}} || ? || Freezes at the start of first level fixed with config here<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blitz - The League || ? || {{unplayable}} || ? || Crashes after you pick the arena<br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bomber Man Land 2 || ? || ? || {{playable}} ||<br /> |-<br /> | Bouncer, The || ? || {{playable}} || {{playable}} || NTSC-U, NTSC-J tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Britney's Dance Beat || ? || {{playable}} || ? || Game plays perfectly fine no issues at all.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || {{playable}} || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog.<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Cars: Mater-National Championship || {{playable}} || ? || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || Works perfectly with Jakv2.<br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen is almost completely black. It is very hard to see whats going on.&lt;/span&gt;<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Chaos Legion || ? || {{playable}} || ? || No known issues works perfectly fine.<br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} || High Language Barrier.<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Champions: Return to Arms || ? || {{majorissues}} || ? || Working with Rouge V1 but has mayjor graphical glitches. Otherwise stable FPS<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || {{minorissues}} || {{playable}} || ? || Does not work with JAK emulator. Works well with rogue emulator. Very minor graphic glitch on the bottom of the screen when Alyssa is on panic mode.<br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues. Used Jak v2 (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_53158 Crashes after ps2 logo&lt;br&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable.<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Use Rogue v1 emu. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || {{minorissues}} || {{playable}} || ? || No issues noticed on NTSC. Menu and loading screens flicker on PAL version.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_51523 Crashes on game loading screen&lt;br&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect.<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issues with squad nothing that really affects gameplay, audio stutters here and there. Use PS2 FPKG v0.6 go to emulator settings tab and tick fix graphical glitches, do not use uprender 2x2 otherwise it lags. Jak v2 emu used. First stage has a glitch where the controls become inverted after activating the cell switch where movement becomes inverted for both the player and cpu, save the game and reload to fix this.<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed. Works perfectly with Jakv2<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Corvette || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{playable}} || {{minorissues}} || {{notavailable}} || Character models are flickering, bad/weird looking, and the map flickers sometimes. Else works fine. '''EDIT:''' Game now works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{playable}} || {{playable}} || ? || Require config to boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Crash_Nitro_Kart|Emulator config]]. Emu used=JakX v2<br /> |- <br /> | Crash of the Titans || {{playable}} || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds. PAL version works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background. High Language Barrier. With Jakv1 emu, the game crashed after the PS2 bios intro.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 6thMix DDRMAX || ? || {{unplayable}} || ? || Boots fine, but on the song selection screen, the X and Up/Down directional inputs fail to register, making song selection and difficulty change impossible.<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution DDR Festival || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS. Rogue Emu crashes Console.<br /> |-<br /> | Dance Dance Revolution Extreme || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme 2 || ? || {{unplayable}} || ? || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Party Collection || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution SuperNOVA || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution SuperNOVA 2 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dance Dance Revolution X2 || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{playable}} || ? || Require config file [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283079 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] JakX emu used.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{minorissues}} || {{unplayable}} || NTSC - Shadow Model Is Glitchy. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before starts.&lt;/span&gt;<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms, because used '''edgesmooth''' upscale in '''PS2-FPKG_v0.6'''.<br /> ''Edited:'' broblems disappears if you set '''Upscale''' value on '''none''' or '''gpu''' in '''PS2-FPKG_v0.6'''.&lt;br&gt;<br /> If you want '''Force 60hz PAL mode''' in the game and '''force bilinear filtering''', write in the config:<br /> --gs-force-bilinear=1<br /> --force-pal-60hz=1<br /> May be useful for other games too =)<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || {{unplayable}} || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering. There is a black bar at the bottom of the screen - doesn't affect gameplay at all.<br /> |-<br /> | Di Gi Charat Fantasy Excellent || {{notavailable}} || {{notavailable}} || {{playable}} || Full Speed. Very Good Audio. High Language Barrier. Tries to check the memory card.<br /> |-<br /> | Digimon Rumble Arena 2 || {{playable}} || {{playable}} || {{playable}} || Use --fpu-no-clamping=1 to fix menu screen. &lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || {{playable}} || ? || The game works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || {{unplayable}} || Low frame rate. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs fine but ingame skips completely heavily with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 (Collector's Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Game freeze randomly during combat.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || {{playable}} || Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{majorissues}} || {{majorissues}} || {{majorissues}} || Tested with Jak v2 emulator, still random freezes like budokai 3, it seems like if u only play the map &quot; Hyperbolic Time Chamber &quot; u dont get any freeze, so I think it has something to do with the maps, because u cant get kicked out of this map like in others.<br /> |-<br /> | Dragon Ball Z: Sagas || {{notavailable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{unplayable}} || ? || ? || Incredible low performance, estimate around 50% native speed. A lot of audio stutter and scratching due to slow speed.<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches. With GBA Emulator (mGBA 3DS), it does work perfect for me on O2DS console so enough.<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv1 emulator, the game won´t boot after the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not seem to reset after you complete the final Mission.&lt;/span&gt; &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version still loads perfect but Atari logo, and loading screen skips very heavily, and has glitches than US and PAL versions. GTA 3 v1 Emulator stops to the Atari logo due to few beggining.&lt;/span&gt;<br /> |-<br /> | Driver - Parallel Lines (AKA. Driver 4 - Parallel Lines in Japan by UbiSoft) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:#FF1000;&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dual Hearts || ? || {{playable}} || ? || Works perfectly with emu GTA 3 v1<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |-<br /> | Dynasty warriors 3 Extreme legends || {{playable}} || ? || ? || runs perfect with jakv2<br /> |-<br /> | Dynasty warriors 4 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 6 || ? || {{minorissues}} || ? || flickering<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | ESPN-NBA2K5 || ? || {{unplayable}} || ? || crashes error CE-34878-0. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 used. Don't use upscale render otherwise it causes crashes.<br /> |-<br /> | Enthusia: Professional Racing || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{playable}} || ? || To boot past PS2 logo, and fix severe graphical issues, use config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Eternal_Poison|[1]]]<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues. High Language Barrier.<br /> |-<br /> | Everblue 2 || {{playable}} || {{playable}} || ? || To fix geometry/terrain pop-in at edges of screen, use config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Everblue_2|[1]]]. Note: SLES config work also for SLUS version of game.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues. Jak v2 emu used.<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues. Use Bully v2 to fix desynced sounds.<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise. The game boots with jakv2 emulator.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{playable}} || {{playable}} || ? || config @psx-place<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || JakV2 gives black screen after the first cutscene. Really bad slowdown, graphics appear to render perfectly. Requires RogueV1<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || {{minorissues}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan] Game very few times freezes when picking up items or going into Finder mode, very bad on last boss.<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan] UNDUB causes crashes.<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak v2 emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan] UNDUB USA version works fine.<br /> |-<br /> | Fate/Unlimited Codes || ? || ? || {{playable}} || Seemingly perfect using Jak emu<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || {{playable}} || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || {{minorissues}} || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fighter Maker 2 || {{notavailable}} || {{playable}} || {{playable}} || Works with no issues with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;Game immediately crashes on boot-up with Rogue emu.&lt;/span&gt;<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN although the English patched version require additional steps to boot [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-47#post-240636]).<br /> |-<br /> | Final Fight: Streetwise || {{majorissues}} || {{majorissues}} || ? || PAL &amp; NTSC: Huge FPS drop during introducing characters and exploring city, needs a fix.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || {{playable}} || ? || Config Available<br /> |-<br /> | FlatOut 2|| {{unplayable}} || {{unplayable}} || ? || menus work but when trying to load into the actual game its stuck on loading and does not go past it<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || SLES_51467 Crashes after PS2 logo.&lt;br&gt;SLUS_20658 Works with no issues.<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |- <br /> | Fullmetal Alchemist 2 Curse of the Crimson Elixir || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Prequel to Broken Angel.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || {{unplayable}} || ? || SLUS-20225 doesn't boot on Jakv2, pagefaults after intro video on Roguev1<br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{playable}} || ? || Custom Config required to fix missing characters &amp; textures. Check Emulator Configuration for additional details.<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{playable}} || ? || Config Available<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || {{playable}} || {{unplayable}} || ? || PAL Version works perfectly with the GTA3 v1 emu<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{unplayable}} || {{playable}} || ? || NTSC Version Has fix Available<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{playable}} || {{playable}} || Requires vu1=jit-sync .<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || Ghost cars are solid and not transparent on Rogue V1 emu. Major graphical issues occur on Special Stage Route 11 and the B-6 License Test on Rogue V1 emu which can only be fixed by restarting the game however they can still be completed regardless.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || {{playable}} || {{playable}} || ? || Lags on 9.00 Tested NTSC U / Fix Available<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{playable}} || {{playable}} || ? || Fix Available<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in PCSX2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the game hangs at the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || {{unplayable}} || the game stop at black screen after the loading of the title screen ends. NTSC-J Version does not boot.<br /> <br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Gungrave || {{minorissues}} || {{minorissues}} ||? || Works fine, config available for graphical glitches. (If anyone can fix glitches please add fix)<br /> |-<br /> | Gungrave Overdose|| ? || {{playable}} ||? || Works fine used kinetica v2 emu to fix missing title screen and other graphical glitches<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Hello Kitty: Roller Rescue || ? || ? || {{playable}} || <br /> |-<br /> | Headhunter || {{minorissues}} || {{playable}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. use emu Jakx v2 for NTSC version<br /> |-<br /> | Headhunter Redemption || {{playable}} || {{minorissues}} || ? || Works fine. NTSC version works fine but seems to have a shadow double image issue.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped. With Jakv2 emu, the game throws an unhandled pagefault error screen.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{playable}} || {{playable}} || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons can be fixed using config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Hunter_the_Reckoning_Wayward|[1]]].<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ice Age 2: Meltdown || ? || {{playable}} || ? || Use config to fix hang on logo. [[Talk:PS2_Classics_Emulator_Compatibility_List#Ice_Age_2_Meltdown]] <br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || {{playable}} ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Initial D Special Stage || ? || {{unplayable}} || ? || Game crashes after the PS2. This behavior also happens on PS2 slims/later models so cant be fixed with a patch<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background:#ff1000; color:white;&quot; | PAL Custom Image doesn't boot past the PS2 logo<br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || {{unplayable}} || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in. Similar issue to Driver 3 JP except it hangs after logo with PAL.<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || {{unplayable}} || Black Screen during the Intro FMV. You can hear Music playing. JAP doesn't boot up.<br /> |-<br /> | James Bond 007: Everything or Nothing || {{unplayable}} || {{majorissues}} || ? || Low framerate. PAL version doesn't work. &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || {{unplayable}} || {{majorissues}} || {{unplayable}} || Framerate slowdowns throughout the opening level. PAL version is broken. JAP runs fullspeed but freeze a lot and has gfx glitches. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jaws Unleashed || ? || {{playable}} || ? || Use config file to fix freeze at loading screen before main menu. [[Talk:PS2_Classics_Emulator_Compatibility_List#Jaws_Unleashed|[1]]]<br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Juiced || ? || ? || {{majorissues}} || Very low frame rate<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |-<br /> | Jurassic park: Operation genesis || ? || {{unplayable}} || ? || my english is a little short, hace a several graphics issues, I play in PC with PCSX2 emulator and with software emulation and mipmaping activated and run fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Kappa no Kai-kata: How to Breed Kappas || ? || ? || {{playable}} || The game runs Almost Full Speed. Very Good Audio. Very High Language Barrier. Couldn´t figure out how to check the memory card.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater's Pro Surfer (Kelly Slater's Pro Surfer 2003) || {{playable}} || ? || {{unplayable}} || Works fine. Bully emu used. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J emulator runs fine but ingame skips very heavily.&lt;/span&gt;<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Kengo 3 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Works great Story Mode and VS Mode, some enemies heads appear as black or white in extra modes but nothing game-breaking. <br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{playable}} || {{notavailable}} || PAL works with Bully emu. NTSC works perfectly with Psychonauts v2 emu<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || {{playable}} || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | King of Colloseum 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor glitches appear in the ring mat.<br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue emulator runs perfect but ingame skips too heavily when trying to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match || {{notavailable}} || {{notavailable}} || ? || PS4 version released 9/2/2021 (d/m/y) seems to not be PS2 version despite using PS2 game ID in title_id.<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{playable}} || Use Lua, and Txt config from that post to fix all issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-45#post-238835 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] '''Jak v2 emulator used'''<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || {{unplayable}} || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version works but ingame skips very heavily when trying to access the memory card.&lt;/span&gt; <br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before you can try to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv1 emu, the screen goes black before you can try to check the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || Use config file from that post to fix gameplay issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-77#post-285124 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{minorissues}} || {{minorissues}} || {{unplayable}} || Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]''). &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs well but ingame skips too heavily.&lt;/span&gt;<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{playable}} || ? || Fix Available for freeze in fights<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || {{minorissues}} || {{playable}} || {{minorissues}} || Use config file from that post to fix freezing. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-78#post-285400 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]. Game additionally require fix for Sugoroku minigame, that is only availble for NTSC-U version (post below in link). Pal/Ntsc-J still have that minor bug. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Le Avventure di Lupin III - Lupin la Morte, Zenigata l'Amore || {{unplayable}} || ? || ? || Black Screen when you try and load on PS2.<br /> |-<br /> | Le Avventure di &quot;Lupin III&quot; - Il tesoro del Re Stregone || {{unplayable}} || ? || ? || All cut scenes are perfect, however when in game some assets don't load.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> | Leisure Suit Larry: Magna Cum Laude || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Le Mans 24 Hours (2000) || {{playable}} || {{playable}} || {{unplayable}} || No known issues. &lt;span style=&quot;color:white; background:red&gt;Japan version runs horribly slow, but in-game skips heavily.&lt;/span&gt;<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || {{majorissues}} || {{majorissues}} || ? || Playable, but game does not reset after death. EU version has less than US version.<br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || {{playable}} || ? || No known issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;With KOF98 Emulator, this game doesn't reset after pressing start.&lt;/span&gt;<br /> |-<br /> | Looney Tunes: Space Race || {{majorissues}} || {{minorissues}} || ? || Playable, with minor graphic issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;PAL-E has less than US version.&lt;/span&gt;<br /> |-<br /> | Lord of the Rings: Aragorn's Quest, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lord of the Rings: The Fellowship of the Ring, The || {{minorissues}} || {{minorissues}} || {{notavailable}} || Small FPS drops in level with smoke or fog.<br /> |-<br /> | Lord of the Rings: The Return of the King, The || {{playable}} || ? || {{unplayable}} || No known issues. NTSC-J version does not work. Jak v2 emu used.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 2002 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Madden NFL 2003 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2004 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2005 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2006 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2007 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{majorissues}} || ? || Game does boot but graphics are dark and broken. Tested with Jak V2. Probably needs a proper patch.<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{playable}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282586 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{minorissues}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282620 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] There are still audio issues, and some framerate issues. <br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{minorissues}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]].Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{playable}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{majorissues}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || {{playable}} || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || {{minorissues}} || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save also feels like an Earth Quake Happend During The Cutscenes.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || {{unplayable}} || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging... &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has less than USA/Europe versions.&lt;/span&gt;<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Mercury Meltdown Remix || ? || {{playable}} || ? || Runs flawlessly. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{minorissues}} || ? || ? || cars do not load properly and slowed music in garage.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || {{unplayable}} || {{minorissues}} || ? || No noticeable issues, seems to work perfect, I have had issues with graphics on cars, PAL version gets error message &quot;An error has occurred in the following application. Midnight Club 3 - DUB Edition Remix&quot;. Error code: CE-34878-0.<br /> |-<br /> | Midway Arcade Treasures || ? || {{minorissues}} || ? || Intro FMV and interviews(in History section of some games) run slow with choppy audio, but all games tested run perfectly<br /> |-<br /> | Midway Arcade Treasures 3 || ? || {{unplayable}} || ? || Freezes on startup. Black screen.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || {{playable}} || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. Practise mode indicates input working fine on PAL.<br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Mortal_Kombat_-_Shaolin_Monks|[1]]]<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || {{minorissues}} || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | mr Golf || {{playable}} || ? || ? || <br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Musashi: Samurai Legend (Musashiden II: Blade Master) || {{playable}} || {{playable}} || ? || seems to run fine at native.<br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MVP Baseball 2005 || ? || {{playable}} || ? || No known issues<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || {{playable}} || {{playable}} || {{playable}} || <br /> |-<br /> | Namco Museum - 50th Anniversary || {{playable}} || {{playable}} || {{playable}} || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || {{playable}} || {{playable}} || ? || Didn't notice or encounter any issues. UNDUB doesn't work with multiple emulators.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 emu used. Uprender 2x2 to fix blurry graphics. (Does not slow gameplay speed.)<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu), also tested with NeoGeo+(v2) and no issues.<br /> |-<br /> | Naruto: Ultimate Ninja 3 || {{playable}} || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || {{minorissues}} || Flickering issues.<br /> |-<br /> | NASCAR: Dirt to Daytona || {{notavailable}} || {{playable}} || {{notavailable}} || Works great.<br /> |-<br /> | NASCAR: Thunder 2004 || ? || {{minorissues}} || ? || Very playable but some minor graphical issues and some flickering during gameplay.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> Additional full fix exist, but is not precised on which version of game it work. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283081 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] <br /> |-<br /> | Need for Speed: Most Wanted (Black Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Major reflections glitches with minor sound stuttering. Total framedrop on open areas.<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{playable}} || {{playable}} || {{playable}} || Require config file to fix framerate. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277075 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277174 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? ||<br /> |-<br /> | NHL 04 || ? || {{majorissues}} || ? || NTSC version is playable, saving does not work, there are minor slowdowns and choppy cutscenes on the base PS4. Due to the game not saving, its not possible to complete it. Needs a patch or a save from pcsx2<br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || {{majorissues}} || {{unplayable}} || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version loads Full speed, but has many glitches than US/EU versions with both KOF98 and Jakv1 emulators.&lt;/span&gt;<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues. Jakv2 used.<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak). UNDUB works great.<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || wont boot with jakv2 use rogue1 or v2. UNDUB works great.<br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || {{minorissues}} || {{minorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements. Use config from this post to fix most issues in US &amp; JP versions: [https://psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-76#post-285056]<br /> <br /> Ps2-fpkg doesn't seem to work with this game. Tested with PAL and JP english-patched iso and both stuck at the memory card screen.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{playable}} || ? || Working perfectly with the okage v2 emu<br /> |-<br /> | Pac-Man World 2 || {{minorissues}} || {{minorissues}} || {{majorissues}} || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level. &lt;span style=&quot;color:black; background:#FFAA00&gt;JAP has gfx glitches than the US version.&lt;/span&gt;<br /> |-<br /> | Pac-Man World 3 || {{unplayable}} || {{unplayable}} || ? || USA: Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, KOF98, Roguev2, no go on any of them. &lt;br/&gt; EUR: Doesn't boot up. Sound plays but No video then freezes console instantly.<br /> |-<br /> | Pac-Man World Rally || {{unplayable}} || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Power Rangers: Super Legends || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Pro Evolution Soccer 6 (Winning Eleven: Pro Evolution Soccer 2007) || ? || {{playable}} || ? || No issues detected.<br /> |-<br /> | Pro Evolution Soccer 2009 (J.League Winning Eleven 2009: Club Championship) || ? || {{playable}} || {{unplayable}} || Absolutely fine. No issues noted for the NTSC-U/C Version. However, the NTSC-J Version won't even start.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || {{playable}} || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. JAP works fine. Known in Japan as Puyo Puyo Fever. &lt;span style=&quot;color:white; background:#FF1000&gt;KOR98 Emulator you're unable to press start on title screen.&lt;/span&gt;<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. High Language Barrier.<br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion. Rogue Emulator throws unhandled pagefault error screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || {{notavailable}} || {{minorissues}} || ? || Fully playable at full speed with no graphical issues. But Cheats are required to accomplish it. First, use [[Talk:PS2 Classics Emulator Compatibility List#Radiata Stories|Emulator Configuration]]. The game was affected by slowdown and screen tearing if many characters were in the same screen, also shadows weren't correctly displayed. You can use this extensive [ patch by Maori-Jigglypuff] to fix all that, just use &lt;strong&gt;ps2 patch engine&lt;/strong&gt; to patch the ISO (only for SLUS-21262). Lastly hold down triangle and cross before the PS2 logo disappears to enable progressive scan. This eliminates the screen shaking. The game is marked as minor issues because there's a minor glitch that happens after a battle during the results screen: the camera rarely points to the characters during that screen.<br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || {{playable}} || {{unplayable}} || Crashes when going in-game, menu very laggy. US version working fine with Jak emulator. Korean version doesn't boot up after PS2 logo.<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || {{playable}} || ? || USA version runs fine. &lt;span style=&quot;color:white; background:#FF1000&gt;GTA3 v1 emulator runs very slow.&lt;/span&gt;<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Ready 2 Rumble Boxing: Round 2 || ? || {{playable}} || {{notavailable}} || Works using KOF98/Jak Emulator. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator freeze before starts.&lt;/span&gt;<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || {{playable}} || Black screen after PS2 logo. NTSC-J works perfect.<br /> |-<br /> | Red Star, The || {{playable}} || {{unplayable}} || ? || PAL: No issues noticed. NTSC-U/C: Crashes at the start of the second stage as Makita, unsure about as Kyuzo but assuming the same. <br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || {{playable}} || {{playable}} || Very poor performance. USA version works perfect. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator fails before the game starts.&lt;/span&gt;<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed USA version works fine.<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable}} || {{playable}} || Works Fine. No issues found. &lt;span style=&quot;color:black; background:90ff90&gt;NTSC-J version works well.&lt;/span&gt;<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Rocky Legends || ? || {{minorissues}} || ? || small graphical error on main menu doesn't affect anything <br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || {{playable}} || {{minorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance. The audio stuttering on FMVs doesn't happen if using Rogue emulator.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | S.L.A.I. Steel Lancer Arena International ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator. Game takes a little to start.<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> | Samurai Warriors || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2|| {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || {{playable}} || ? || Fix for distorted audio (PAL). Seems to work for the NTSC-U version as well. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{playable}} || {{playable}} || ? || Require config file to fix hang at boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Second_Sight|[1]]]<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20: Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22: Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || {{notavailable}} || {{notavailable}} || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || {{notavailable}} || {{notavailable}} || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sega Soccer Slam || {{Unplayable}} || ? || ? || Stops before loading the menu.<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{playable}} || ? || ? || Works perfectly. Use RECVX emu for full speed gameplay.<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{minorissues}} || {{minorissues}} || ? || Both PAL and NTSC versions run fine with JakEMU V2. Minor slowdows in combat on the base ps4<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun Palmer's Pro Snowboarder || {{minorissues}} || {{minorissues}} || {{unplayable}} || Working fine. Minor graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has many glitches than US and PAL versions.&lt;/span&gt;<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background:#FF1000; color:white;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || {{playable}} || {{minorissues}} || {{playable}} || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable. NTSC-J - aside from minor interlacing(about the same as in PCSX2, to note) in FMVs, works perfect.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || {{Playable}} || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || {{minorissues}} || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899.Pal version sometimes freezes at first loadingscreen<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims 2 Pets || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{unplayable}} || Black screen. Didn't have this game work on PS4 Pro?<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | Sitting ducks || ? || {{playable}} || ? || Works.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now<br /> |-<br /> | Smuggler's Run 2 || ? || {{unplayable}} || ? || Doesn't work, just crashes. Rogue Emulator hangs on a Black screen.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect. Image with Widescreen Patch does not boot on either emulator.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{minorissues}} || {{minorissues}} || {{minorissues}} || Minor graphical issues, but playable. Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_2|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-60#post-280195 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Require config file. Crashes on certain stages. Story mode and Chronicles of The sword unplayable because of this. JakX V2 used. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_3|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-61#post-280864 [2]]<br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu. game doesn't start when using JakV2.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || {{unplayable}} || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult. &lt;span style=&quot;color:white; background:#FF1000&gt;JP version will freeze after ps2 logo.&lt;/span&gt;<br /> |-<br /> | Spider-Man 3 || {{unplayable}} || {{unplayable}} || ? || Freezes on loading screen after the first level. Require config file to fix framerate, and graphical issues. [[Talk:PS2_Classics_Emulator_Compatibility_List#Spider-Man_3|[1]]]<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{unplayable}} || {{unplayable}} || ? || Game is running smooth; however, there is a bug with the combat system which makes it impossible to progress the game.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || {{majorissues}} || {{unplayable}} || ? || Freezes after PS2 logo. EU version runs but with big dips in framerate randomly slowing down gameplay and audio, cutscenes also suffer from slow audio. (EU version tested on PS4 Slim 9.00).<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{minorissues}} || ? || Minor performance issues. Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-278758 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Street Hoops || ? || {{playable}} || ? || runs with no problems<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{majorissues}} || {{majorissues}} || {{unplayable}} || NTSC version works using KOF98/JAK/ROGUE emulators. This game hangs a bit in the main menu. Also it working fine with GTA3 Emulator, as well with Europe. &lt;span style=&quot;color:white; background:#FF1000&gt;JAP version doesn't boot past PS2 logo.&lt;/span&gt;<br /> |-<br /> | Stuntman 2: Ignition || {{unplayable}} || {{unplayable}} || ? || Doesn't work, just crashes. Jakv1 emulator shows a black screen, through you can hear the sound.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{notavailable}} || {{minorissues}} || ? || Check [[Talk:PS2 Classics Emulator Compatibility List#Suikoden_III|Emulator Configuration]] (PAL Version saw a &quot;PS2 Classics&quot; Version only available for the PlayStation 3 [EP0101-NPED00294_00-GSUIKODEN3000001]).<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || {{playable}} || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball Adventure || ? || {{minorissues}} || ? || Apart from some minute graphic artifacts here and there (there are light reflections that look like arcs on the walls), the game plays totally fine with no disruptions whatsoever. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | Super Robot Wars Z || {{notavailable}} || {{notavailable}} || {{Playable}} || No issues detected. <br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Sword of Samurai || {{minorissues}} || ? || ? || extreme flickering but playable <br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works. With jakv2 emu, the screen goes black after the infogrames logo.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive: Eve of Destruction (Driven to Destruction) || ? || {{minorissues}} || {{notavailable}} || Slight frame drop during heavy particle effects, otherwise fine.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu, choppy sound and video.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | The Suffering || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#90FF90&quot;&gt;Sometimes an inverted '''white player model appears''' on the screen, it only appears on the '''first level''', game '''playable''' good enough!&lt;/span&gt;<br /> I used [https://www.psx-place.com/threads/release-ps2-fpkg-0-6-by-jabu-new-tool-to-convert-ps2-games-for-ps4.30350 PS2-FPKG_v0.6] converter with the [https://github.com/Zarh/ManaGunZ/tree/master/pkgfiles/USRDIR/sys/CONFIG config] for PS3 game, it's already present in converter. When converting, check the box '''Auto-Add PS3 Config''', and '''uncheck''' the rest, then choose '''Destroy All Humans V2 emu''', just put [https://mega.nz/folder/tFgjFApL#F8XIfrGKQwsL9ebgm1FLzw this] '''Destroy All Humans V2 emu''' folder into '''PS2-FPKG_v0.6\emus\''' and just select it in the program.<br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Tiger Woods PGA Tour 2004 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisble at times. (Possible draw distance problem?)<br /> |-<br /> | Tiger Woods PGA Tour 2005 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisible when hit making it hard to see where it is.<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{playable}} || {{playable}} || {{playable}} || Black screen after playstation 2 screen can be fixed with —vu1=jit-sync . <br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tokyo Xtreme Racer 3 || ? || {{playable}} || ? || Perfect, game can be finished from start to finish with 0 issues. Just remap the accelerate to triggers since same issue as in auto moddelista<br /> |-<br /> | Tokyo Xtreme Racer: Drift 2 || ? || {{unplayable}} || ? || Menu works almost perfectly with only pop-ups like tooltips and confirmation info text not showing up. In game presents a black screen with only the UI loaded in.<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || {{playable}} || Only works with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before the game starts in this either Japan version.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || {{unplayable}} || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || {{unplayable}} || ? || Black screen after first cutscene, can't go in-menu.<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || {{majorissues}} || Minor frame rate issues on first level, else works fine. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not reset after pressing start on the titlescreen in JAP version.&lt;/span&gt;<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Pro Skater 4 || {{Playable}} || {{Playable}} || {{Unplayable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 4|Emulator Configuration]] for additional details. JAP is totally broken (black screen).<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> | Torrente 3 - The Protector || {{playable}} || ? || ? || Works fine, no noticeable issues.<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> |Total Immersion Racing ||{{unplayable}}||?||?|| Stuck at loading screen<br /> |-<br /> | Tourist Trophy || {{minorissues}} || {{minorissues}} || ? || Small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses because of ground textures not rendering.<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || {{minorissues}} || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:#FF1000;&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;. There were some FPS drops when I tested on PS4 slim. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator still goes into the Infogrames logo then freezes as tested by unknown.&lt;/span&gt;<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || {{unplayable}} || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{playable}} || {{playable}} || {{playable}} || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Urban_Reign|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-279431 [2&lt;nowiki&gt;]&lt;/nowiki&gt;] Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | V-Rally III (V-Rally 3) || {{playable}} || {{playable}} || {{playable}} || working. If you'll test the game on a PS4 Pro FW 5.05. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator will freeze after Atari logo.&lt;/span&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{majorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area and certain area. No significant issue.<br /> Japanese voice dub version will random freeze, no solutions.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches. FPS drops can be fixed using config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Van_Helsing|[1]]]<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{playable}} || {{notavailable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Rogue v1 &amp; Rogue v2. Widescreen patch causes graphics to not render. Only use uprender 2x2 to fix issue but causes enemies deaths to lag the game for a few seconds. Use RECVX emu if you can with uprender 2x2 for widescreen and full speed.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || Use RECVX emu for best experience. Fixes sound effects not playing. Jak emus causes no sound effects from sword to play. <br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> | Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || Perfect emulation. &lt;span style=&quot;color:white; background:#FFAA00&gt;With Jakv2 emu, the game does not reset during gameplay.&lt;/span&gt;<br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> | Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> | Worms 3D || {{playable}} || ? || ? || <br /> |-<br /> | Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE All Stars || ? || {{playable}} || ? || Works flawlessly with no problems<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || {{minorissues}} || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown vs. Raw 2007 || ? || {{playable}} || ? ||<br /> |-<br /> | WWE SmackDown vs. Raw 2008 || ? || {{minorissues}} || ? || Some graphical issues on the main menu and the arena selecttion screen but main gameplay Works flawlessly<br /> |-<br /> | WWE SmackDown vs. Raw 2009 || {{playable}} || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2010 || ? || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends|[1]]]<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{playable}} || ? || Require config file. [[https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends_II|[1]]]<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#FFFF90&quot;&gt;If you use the PS4 PS2 Classics GUI by The Darkprogramer it will run fine - no graphical glitches.&lt;/span&gt; very bad graphical glitches when tested on JakV2 &amp; RogueV1.<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || {{playable}} || Works fine with Jak v2 emulator.<br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{playable}} || ? || ? || Seems to work fine, played around an hour on PS4 FW 9.00.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case. (this game was also published for PS4 as &quot;ZONE OF THE ENDERS THE 2nd RUNNER : M∀RS&quot;)<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=284377 PS2 Classics Emulator Compatibility List 2022-01-26T18:37:13Z <p>162.199.155.139: /* F */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator freezes after PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || {{notavailable}} || ? || --vu1=jit-sync allows game to boot past PS2 logo (known in Japan as &quot;''Tsukiyo ni Saraba&quot; [ツキヨニサラバ]'').<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{playable}} || ? || Works perfectly with Star Ocean emu &amp; Jak 3 v2.<br /> |-<br /> | 7 Sins || {{playable}} || ? || ? || <br /> |-<br /> | FCEUmm PS2 (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} ||<br /> |-<br /> | POPStarter (Homebrew) || {{playable}} || {{playable}} || {{notavailable}} || <br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu fails to load past title screen.&lt;/span&gt;<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || {{unplayable}} || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J Version how are unable to reach the Title screen.&lt;/span&gt;<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Lightning || ? || ? || {{playable}} || Works with both several Emulators. Memory card saved files only with Rogue Emulator. SLES-51503 tested on PS4 FW 6.xx.<br /> |-<br /> | Activision Anthology || {{playable}} || {{playable}} || ? || works. &lt;span style=&quot;color:white; background:#FF1000&gt;Jak emulator runs very slow.&lt;/span&gt;<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Adventure of Tokyo Disney Sea || ? || ? || {{playable}} || Works.<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details. With Jak, the game works very well on Original PS4.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{playable}} || {{notavailable}} || Config Available. Full Fix. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv2 emulator, the screen goes black after the titlescreen.&lt;/span&gt;<br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark || ? || ? || {{playable}} || Fully works. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator doesn't load past Atari logo.&lt;/span&gt;<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || {{unplayable}} || No noticeable issues, plays great. Saving and Loading works. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version hangs when trying to check the memory card with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || works.<br /> |-<br /> | american idol || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Angelique Trois || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{minorissues}} || ? || Config Available (fixes game speed); graphic corruption, no sound effects play<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play. Jakv2 emu freezes when the game starting up.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues. &lt;span style=&quot;color:white; background:#FF1000&gt;The game crashed after the 3DO Logo with Jakv2 emulator.&lt;/span&gt;<br /> |-<br /> | Army Men: RTS || ? || {{playable}} || ? || Works Perfectly. Use psychonauts v2 emu. &lt;span style=&quot;color:black; background:#FFAA00&gt;Rogue Emulator doesn't have this graphical glitch.&lt;/span&gt;<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{playable}} || ? || Works. Config Available.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Rogue emulator, the screen goes black after you reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{playable}} || ? || {{playable}} || Everything is perfect on JakEMU V2, the game looks great and there are no slowdowns or glitches. Just remap accelerate to triggers or the car would have accelerating issues<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Backyard Wrestling : Don't Try This At Home || ? || {{Unplayable}} || ? || Freezes after Ps2 load screen<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baldur's Gate : Dark Alliance II || {{playable}} || {{playable}} || {{notavailable}} || Config Available<br /> |-<br /> | Baroque || ? || {{playable}} || ? || Config Available<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets. Before you can load the title screen, the game freezes with KOF98 Emulator.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||{{unplayable}}|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts, and japanese version still not working on both Rogue and Jak Emulators as well.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || Works perfectly with Jak v2 emu.<br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | BEN 10: ALIEN FORCE || ? || {{playable}} || ? || Excellent and runs just like it does on PS2. Use jak v2 emu. Jakv1 emu works very well.<br /> |-<br /> | Ben 10 Alien Force: Vilgax Attacks || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game starts and launches perfectly into the main menu, but then immediately crashes when trying to play a new game on the first level, although the textures and everything was looking nice... maybe needs a custom config. PS2 Classics GUI used.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? || PAL version runs perfectly, no issues noticed. Used PS2 Classics GUI for conversion (Default emu).<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{minorissues}} || Has English patch. Game might crash if bombs subweapons hits too many enemies on-screen.<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Big Mutha Truckers || {{playable}} || {{playable}} || ? || works flawlessly.<br /> |-<br /> | Big Mutha Truckers 2 || {{unplayable}} || {{playable}} || ? || USA region works flawlessly but Europe region runs, but doesn't seem to work.<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{playable}} || ? || Freezes at the start of first level fixed with config here<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blitz - The League || ? || {{unplayable}} || ? || Crashes after you pick the arena<br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bomber Man Land 2 || ? || ? || {{playable}} ||<br /> |-<br /> | Bouncer, The || ? || {{playable}} || {{playable}} || NTSC-U, NTSC-J tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The game freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Britney's Dance Beat || ? || {{playable}} || ? || Game plays perfectly fine no issues at all.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || {{playable}} || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog.<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Cars: Mater-National Championship || {{playable}} || ? || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || Works perfectly with Jakv2.<br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen is almost completely black. It is very hard to see whats going on.&lt;/span&gt;<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Chaos Legion || ? || {{playable}} || ? || No known issues works perfectly fine.<br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} || High Language Barrier.<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Champions: Return to Arms || ? || {{majorissues}} || ? || Working with Rouge V1 but has mayjor graphical glitches. Otherwise stable FPS<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || {{minorissues}} || {{playable}} || ? || Does not work with JAK emulator. Works well with rogue emulator. Very minor graphic glitch on the bottom of the screen when Alyssa is on panic mode.<br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues. Used Jak v2 (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_53158 Crashes after ps2 logo&lt;br&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable.<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Use Rogue v1 emu. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || {{minorissues}} || {{playable}} || ? || No issues noticed on NTSC. Menu and loading screens flicker on PAL version.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || SLES_51523 Crashes on game loading screen&lt;br&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect.<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issues with squad nothing that really affects gameplay, audio stutters here and there. Use PS2 FPKG v0.6 go to emulator settings tab and tick fix graphical glitches, do not use uprender 2x2 otherwise it lags. Jak v2 emu used. First stage has a glitch where the controls become inverted after activating the cell switch where movement becomes inverted for both the player and cpu, save the game and reload to fix this.<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed. Works perfectly with Jakv2<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Corvette || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{playable}} || {{minorissues}} || {{notavailable}} || Character models are flickering, bad/weird looking, and the map flickers sometimes. Else works fine. '''EDIT:''' Game now works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{playable}} || {{playable}} || ? || Require config to boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Crash_Nitro_Kart|Emulator config]]. Emu used=JakX v2<br /> |- <br /> | Crash of the Titans || {{playable}} || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds. PAL version works perfectly thanks to u/VikaCaptive (reddit).<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background. High Language Barrier. With Jakv1 emu, the game crashed after the PS2 bios intro.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 6thMix DDRMAX || ? || {{unplayable}} || ? || Boots fine, but on the song selection screen, the X and Up/Down directional inputs fail to register, making song selection and difficulty change impossible.<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution DDR Festival || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS. Rogue Emu crashes Console.<br /> |-<br /> | Dance Dance Revolution Extreme || ? || {{unplayable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme 2 || ? || {{unplayable}} || ? || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Party Collection || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution SuperNOVA || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution SuperNOVA 2 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dance Dance Revolution X2 || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{playable}} || ? || Require config file [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283079 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] JakX emu used.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{minorissues}} || {{unplayable}} || NTSC - Shadow Model Is Glitchy. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before starts.&lt;/span&gt;<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms, because used '''edgesmooth''' upscale in '''PS2-FPKG_v0.6'''.<br /> ''Edited:'' broblems disappears if you set '''Upscale''' value on '''none''' or '''gpu''' in '''PS2-FPKG_v0.6'''.&lt;br&gt;<br /> If you want '''Force 60hz PAL mode''' in the game and '''force bilinear filtering''', write in the config:<br /> --gs-force-bilinear=1<br /> --force-pal-60hz=1<br /> May be useful for other games too =)<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || {{unplayable}} || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering. There is a black bar at the bottom of the screen - doesn't affect gameplay at all.<br /> |-<br /> | Di Gi Charat Fantasy Excellent || {{notavailable}} || {{notavailable}} || {{playable}} || Full Speed. Very Good Audio. High Language Barrier. Tries to check the memory card.<br /> |-<br /> | Digimon Rumble Arena 2 || {{playable}} || {{playable}} || {{playable}} || Use --fpu-no-clamping=1 to fix menu screen. &lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || {{playable}} || ? || The game works fine. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || {{unplayable}} || Low frame rate. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs fine but ingame skips completely heavily with KOF98 Emulator.&lt;/span&gt;<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 (Collector's Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Game freeze randomly during combat.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || {{playable}} || Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{majorissues}} || {{majorissues}} || {{majorissues}} || Tested with Jak v2 emulator, still random freezes like budokai 3, it seems like if u only play the map &quot; Hyperbolic Time Chamber &quot; u dont get any freeze, so I think it has something to do with the maps, because u cant get kicked out of this map like in others.<br /> |-<br /> | Dragon Ball Z: Sagas || {{notavailable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{unplayable}} || ? || ? || Incredible low performance, estimate around 50% native speed. A lot of audio stutter and scratching due to slow speed.<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches. With GBA Emulator (mGBA 3DS), it does work perfect for me on O2DS console so enough.<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;With jakv1 emulator, the game won´t boot after the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches.<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not seem to reset after you complete the final Mission.&lt;/span&gt; &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version still loads perfect but Atari logo, and loading screen skips very heavily, and has glitches than US and PAL versions. GTA 3 v1 Emulator stops to the Atari logo due to few beggining.&lt;/span&gt;<br /> |-<br /> | Driver - Parallel Lines (AKA. Driver 4 - Parallel Lines in Japan by UbiSoft) || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:#FF1000;&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dual Hearts || ? || {{playable}} || ? || Works perfectly with emu GTA 3 v1<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |-<br /> | Dynasty warriors 3 Extreme legends || {{playable}} || ? || ? || runs perfect with jakv2<br /> |-<br /> | Dynasty warriors 4 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 4 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 5 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Dynasty warriors 6 || ? || {{minorissues}} || ? || flickering<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | ESPN-NBA2K5 || ? || {{unplayable}} || ? || crashes error CE-34878-0. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 used. Don't use upscale render otherwise it causes crashes.<br /> |-<br /> | Enthusia: Professional Racing || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{playable}} || ? || To boot past PS2 logo, and fix severe graphical issues, use config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Eternal_Poison|[1]]]<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues. High Language Barrier.<br /> |-<br /> | Everblue 2 || {{playable}} || {{playable}} || ? || To fix geometry/terrain pop-in at edges of screen, use config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Everblue_2|[1]]]. Note: SLES config work also for SLUS version of game.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues. Jak v2 emu used.<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues. Use Bully v2 to fix desynced sounds.<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise. The game boots with jakv2 emulator.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{playable}} || {{playable}} || ? || config @psx-place<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || JakV2 gives black screen after the first cutscene. Really bad slowdown, graphics appear to render perfectly. Requires RogueV1<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || {{minorissues}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan] Game very few times freezes when picking up items or going into Finder mode, very bad on last boss.<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan] UNDUB causes crashes.<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak v2 emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan] UNDUB USA version works fine.<br /> |-<br /> | Fate/Unlimited Codes || ? || ? || {{playable}} || Seemingly perfect using Jak emu<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || ? || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || ? || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fighter Maker 2 || {{notavailable}} || {{playable}} || {{playable}} || Works with no issues with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;Game immediately crashes on boot-up with Rogue emu.&lt;/span&gt;<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN although the English patched version require additional steps to boot [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-47#post-240636]).<br /> |-<br /> | Final Fight: Streetwise || {{majorissues}} || {{majorissues}} || ? || PAL &amp; NTSC: Huge FPS drop during introducing characters and exploring city, needs a fix.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || {{playable}} || ? || Config Available<br /> |-<br /> | FlatOut 2|| {{unplayable}} || {{unplayable}} || ? || menus work but when trying to load into the actual game its stuck on loading and does not go past it<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || SLES_51467 Crashes after PS2 logo.&lt;br&gt;SLUS_20658 Works with no issues.<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |- <br /> | Fullmetal Alchemist 2 Curse of the Crimson Elixir || {{notavailable}} || {{playable}} || ? || Use Jakv2 and Uprender by 2x2. Prequel to Broken Angel.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || {{unplayable}} || ? || SLUS-20225 doesn't boot on Jakv2, pagefaults after intro video on Roguev1<br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{playable}} || ? || Custom Config required to fix missing characters &amp; textures. Check Emulator Configuration for additional details.<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{playable}} || ? || Config Available<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || {{playable}} || {{unplayable}} || ? || PAL Version works perfectly with the GTA3 v1 emu<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{unplayable}} || {{playable}} || ? || NTSC Version Has fix Available<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{playable}} || {{playable}} || Requires vu1=jit-sync .<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || Ghost cars are solid and not transparent on Rogue V1 emu. Major graphical issues occur on Special Stage Route 11 and the B-6 License Test on Rogue V1 emu which can only be fixed by restarting the game however they can still be completed regardless.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || {{playable}} || {{playable}} || ? || Lags on 9.00 Tested NTSC U / Fix Available<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{playable}} || {{playable}} || ? || Fix Available<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in PCSX2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the game hangs at the PS2 bios intro.&lt;/span&gt;<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || {{unplayable}} || the game stop at black screen after the loading of the title screen ends. NTSC-J Version does not boot.<br /> <br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Gungrave || {{minorissues}} || {{minorissues}} ||? || Works fine, config available for graphical glitches. (If anyone can fix glitches please add fix)<br /> |-<br /> | Gungrave Overdose|| ? || {{playable}} ||? || Works fine used kinetica v2 emu to fix missing title screen and other graphical glitches<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Hello Kitty: Roller Rescue || ? || ? || {{playable}} || <br /> |-<br /> | Headhunter || {{minorissues}} || {{playable}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. use emu Jakx v2 for NTSC version<br /> |-<br /> | Headhunter Redemption || {{playable}} || {{minorissues}} || ? || Works fine. NTSC version works fine but seems to have a shadow double image issue.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped. With Jakv2 emu, the game throws an unhandled pagefault error screen.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{playable}} || {{playable}} || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons can be fixed using config file [[Talk:PS2_Classics_Emulator_Compatibility_List#Hunter_the_Reckoning_Wayward|[1]]].<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ice Age 2: Meltdown || ? || {{playable}} || ? || Use config to fix hang on logo. [[Talk:PS2_Classics_Emulator_Compatibility_List#Ice_Age_2_Meltdown]] <br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || {{playable}} ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Initial D Special Stage || ? || {{unplayable}} || ? || Game crashes after the PS2. This behavior also happens on PS2 slims/later models so cant be fixed with a patch<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#006fcd; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background:#ff1000; color:white;&quot; | PAL Custom Image doesn't boot past the PS2 logo<br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | &lt;center&gt;PS2 Classics&lt;/center&gt; || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || {{unplayable}} || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in. Similar issue to Driver 3 JP except it hangs after logo with PAL.<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || {{unplayable}} || Black Screen during the Intro FMV. You can hear Music playing. JAP doesn't boot up.<br /> |-<br /> | James Bond 007: Everything or Nothing || {{unplayable}} || {{majorissues}} || ? || Low framerate. PAL version doesn't work. &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || {{unplayable}} || {{majorissues}} || {{unplayable}} || Framerate slowdowns throughout the opening level. PAL version is broken. JAP runs fullspeed but freeze a lot and has gfx glitches. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jaws Unleashed || ? || {{playable}} || ? || Use config file to fix freeze at loading screen before main menu. [[Talk:PS2_Classics_Emulator_Compatibility_List#Jaws_Unleashed|[1]]]<br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Juiced || ? || ? || {{majorissues}} || Very low frame rate<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |-<br /> | Jurassic park: Operation genesis || ? || {{unplayable}} || ? || my english is a little short, hace a several graphics issues, I play in PC with PCSX2 emulator and with software emulation and mipmaping activated and run fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Kappa no Kai-kata: How to Breed Kappas || ? || ? || {{playable}} || The game runs Almost Full Speed. Very Good Audio. Very High Language Barrier. Couldn´t figure out how to check the memory card.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater's Pro Surfer (Kelly Slater's Pro Surfer 2003) || {{playable}} || ? || {{unplayable}} || Works fine. Bully emu used. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J emulator runs fine but ingame skips very heavily.&lt;/span&gt;<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Kengo 3 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Works great Story Mode and VS Mode, some enemies heads appear as black or white in extra modes but nothing game-breaking. <br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{playable}} || {{notavailable}} || PAL works with Bully emu. NTSC works perfectly with Psychonauts v2 emu<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || {{playable}} || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | King of Colloseum 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor glitches appear in the ring mat.<br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue emulator runs perfect but ingame skips too heavily when trying to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match || {{notavailable}} || {{notavailable}} || ? || PS4 version released 9/2/2021 (d/m/y) seems to not be PS2 version despite using PS2 game ID in title_id.<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{playable}} || Use Lua, and Txt config from that post to fix all issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-45#post-238835 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] '''Jak v2 emulator used'''<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || {{unplayable}} || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version works but ingame skips very heavily when trying to access the memory card.&lt;/span&gt; <br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before you can try to access the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv1 emu, the screen goes black before you can try to check the memory card.&lt;/span&gt;<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || Use config file from that post to fix gameplay issues. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-77#post-285124 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{minorissues}} || {{minorissues}} || {{unplayable}} || Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]''). &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version runs well but ingame skips too heavily.&lt;/span&gt;<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{playable}} || ? || Fix Available for freeze in fights<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || {{minorissues}} || {{playable}} || {{minorissues}} || Use config file from that post to fix freezing. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-78#post-285400 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]. Game additionally require fix for Sugoroku minigame, that is only availble for NTSC-U version (post below in link). Pal/Ntsc-J still have that minor bug. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Le Avventure di Lupin III - Lupin la Morte, Zenigata l'Amore || {{unplayable}} || ? || ? || Black Screen when you try and load on PS2.<br /> |-<br /> | Le Avventure di &quot;Lupin III&quot; - Il tesoro del Re Stregone || {{unplayable}} || ? || ? || All cut scenes are perfect, however when in game some assets don't load.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> | Leisure Suit Larry: Magna Cum Laude || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Le Mans 24 Hours (2000) || {{playable}} || {{playable}} || {{unplayable}} || No known issues. &lt;span style=&quot;color:white; background:red&gt;Japan version runs horribly slow, but in-game skips heavily.&lt;/span&gt;<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || {{majorissues}} || {{majorissues}} || ? || Playable, but game does not reset after death. EU version has less than US version.<br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || {{playable}} || ? || No known issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;With KOF98 Emulator, this game doesn't reset after pressing start.&lt;/span&gt;<br /> |-<br /> | Looney Tunes: Space Race || {{majorissues}} || {{minorissues}} || ? || Playable, with minor graphic issues. &lt;span style=&quot;color:black; background:#FFAA00&gt;PAL-E has less than US version.&lt;/span&gt;<br /> |-<br /> | Lord of the Rings: Aragorn's Quest, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Lord of the Rings: The Fellowship of the Ring, The || {{minorissues}} || {{minorissues}} || {{notavailable}} || Small FPS drops in level with smoke or fog.<br /> |-<br /> | Lord of the Rings: The Return of the King, The || {{playable}} || ? || {{unplayable}} || No known issues. NTSC-J version does not work. Jak v2 emu used.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 2002 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Madden NFL 2003 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2004 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2005 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2006 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 2007 || {{playable}} || {{minorissues}} || ? || From Madden 2003-2007 the NTSC-U/C version will be jittery and has slow down during the play. These issues are not present in the PAL version.<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{majorissues}} || ? || Game does boot but graphics are dark and broken. Tested with Jak V2. Probably needs a proper patch.<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{playable}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282586 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{minorissues}} || {{notavailable}} || Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-66#post-282620 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] There are still audio issues, and some framerate issues. <br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{minorissues}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]].Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{playable}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{majorissues}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || {{playable}} || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || {{minorissues}} || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save also feels like an Earth Quake Happend During The Cutscenes.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || {{unplayable}} || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging... &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has less than USA/Europe versions.&lt;/span&gt;<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Mercury Meltdown Remix || ? || {{playable}} || ? || Runs flawlessly. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{minorissues}} || ? || ? || cars do not load properly and slowed music in garage.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || {{unplayable}} || {{minorissues}} || ? || No noticeable issues, seems to work perfect, I have had issues with graphics on cars, PAL version gets error message &quot;An error has occurred in the following application. Midnight Club 3 - DUB Edition Remix&quot;. Error code: CE-34878-0.<br /> |-<br /> | Midway Arcade Treasures || ? || {{minorissues}} || ? || Intro FMV and interviews(in History section of some games) run slow with choppy audio, but all games tested run perfectly<br /> |-<br /> | Midway Arcade Treasures 3 || ? || {{unplayable}} || ? || Freezes on startup. Black screen.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || {{playable}} || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. Practise mode indicates input working fine on PAL.<br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Mortal_Kombat_-_Shaolin_Monks|[1]]]<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || {{minorissues}} || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | mr Golf || {{playable}} || ? || ? || <br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Musashi: Samurai Legend (Musashiden II: Blade Master) || {{playable}} || {{playable}} || ? || seems to run fine at native.<br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MVP Baseball 2005 || ? || {{playable}} || ? || No known issues<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || {{playable}} || {{playable}} || {{playable}} || <br /> |-<br /> | Namco Museum - 50th Anniversary || {{playable}} || {{playable}} || {{playable}} || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || {{playable}} || {{playable}} || ? || Didn't notice or encounter any issues. UNDUB doesn't work with multiple emulators.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || {{playable}} || {{playable}} || ? || No issues noticed. Jak v2 emu used. Uprender 2x2 to fix blurry graphics. (Does not slow gameplay speed.)<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu), also tested with NeoGeo+(v2) and no issues.<br /> |-<br /> | Naruto: Ultimate Ninja 3 || {{playable}} || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || {{minorissues}} || Flickering issues.<br /> |-<br /> | NASCAR: Dirt to Daytona || {{notavailable}} || {{playable}} || {{notavailable}} || Works great.<br /> |-<br /> | NASCAR: Thunder 2004 || ? || {{minorissues}} || ? || Very playable but some minor graphical issues and some flickering during gameplay.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> Additional full fix exist, but is not precised on which version of game it work. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-67#post-283081 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] <br /> |-<br /> | Need for Speed: Most Wanted (Black Edition) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Major reflections glitches with minor sound stuttering. Total framedrop on open areas.<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{playable}} || {{playable}} || {{playable}} || Require config file to fix framerate. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277075 [1&lt;nowiki&gt;]&lt;/nowiki&gt;] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-57#post-277174 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? ||<br /> |-<br /> | NHL 04 || ? || {{majorissues}} || ? || NTSC version is playable, saving does not work, there are minor slowdowns and choppy cutscenes on the base PS4. Due to the game not saving, its not possible to complete it. Needs a patch or a save from pcsx2<br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || {{majorissues}} || {{unplayable}} || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version loads Full speed, but has many glitches than US/EU versions with both KOF98 and Jakv1 emulators.&lt;/span&gt;<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues. Jakv2 used.<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak). UNDUB works great.<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || wont boot with jakv2 use rogue1 or v2. UNDUB works great.<br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || {{minorissues}} || {{minorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements. Use config from this post to fix most issues in US &amp; JP versions: [https://psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-76#post-285056]<br /> <br /> Ps2-fpkg doesn't seem to work with this game. Tested with PAL and JP english-patched iso and both stuck at the memory card screen.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{playable}} || ? || Working perfectly with the okage v2 emu<br /> |-<br /> | Pac-Man World 2 || {{minorissues}} || {{minorissues}} || {{majorissues}} || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level. &lt;span style=&quot;color:black; background:#FFAA00&gt;JAP has gfx glitches than the US version.&lt;/span&gt;<br /> |-<br /> | Pac-Man World 3 || {{unplayable}} || {{unplayable}} || ? || USA: Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, KOF98, Roguev2, no go on any of them. &lt;br/&gt; EUR: Doesn't boot up. Sound plays but No video then freezes console instantly.<br /> |-<br /> | Pac-Man World Rally || {{unplayable}} || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Power Rangers: Super Legends || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Pro Evolution Soccer 6 (Winning Eleven: Pro Evolution Soccer 2007) || ? || {{playable}} || ? || No issues detected.<br /> |-<br /> | Pro Evolution Soccer 2009 (J.League Winning Eleven 2009: Club Championship) || ? || {{playable}} || {{unplayable}} || Absolutely fine. No issues noted for the NTSC-U/C Version. However, the NTSC-J Version won't even start.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || {{playable}} || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. JAP works fine. Known in Japan as Puyo Puyo Fever. &lt;span style=&quot;color:white; background:#FF1000&gt;KOR98 Emulator you're unable to press start on title screen.&lt;/span&gt;<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. High Language Barrier.<br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion. Rogue Emulator throws unhandled pagefault error screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || {{notavailable}} || {{minorissues}} || ? || Fully playable at full speed with no graphical issues. But Cheats are required to accomplish it. First, use [[Talk:PS2 Classics Emulator Compatibility List#Radiata Stories|Emulator Configuration]]. The game was affected by slowdown and screen tearing if many characters were in the same screen, also shadows weren't correctly displayed. You can use this extensive [ patch by Maori-Jigglypuff] to fix all that, just use &lt;strong&gt;ps2 patch engine&lt;/strong&gt; to patch the ISO (only for SLUS-21262). Lastly hold down triangle and cross before the PS2 logo disappears to enable progressive scan. This eliminates the screen shaking. The game is marked as minor issues because there's a minor glitch that happens after a battle during the results screen: the camera rarely points to the characters during that screen.<br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || {{playable}} || {{unplayable}} || Crashes when going in-game, menu very laggy. US version working fine with Jak emulator. Korean version doesn't boot up after PS2 logo.<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || {{playable}} || ? || USA version runs fine. &lt;span style=&quot;color:white; background:#FF1000&gt;GTA3 v1 emulator runs very slow.&lt;/span&gt;<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Ready 2 Rumble Boxing: Round 2 || ? || {{playable}} || {{notavailable}} || Works using KOF98/Jak Emulator. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator freeze before starts.&lt;/span&gt;<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || {{playable}} || Black screen after PS2 logo. NTSC-J works perfect.<br /> |-<br /> | Red Star, The || {{playable}} || {{unplayable}} || ? || PAL: No issues noticed. NTSC-U/C: Crashes at the start of the second stage as Makita, unsure about as Kyuzo but assuming the same. <br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || {{playable}} || {{playable}} || Very poor performance. USA version works perfect. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator fails before the game starts.&lt;/span&gt;<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed USA version works fine.<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable}} || {{playable}} || Works Fine. No issues found. &lt;span style=&quot;color:black; background:90ff90&gt;NTSC-J version works well.&lt;/span&gt;<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Rocky Legends || ? || {{minorissues}} || ? || small graphical error on main menu doesn't affect anything <br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || {{playable}} || {{minorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance. The audio stuttering on FMVs doesn't happen if using Rogue emulator.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | S.L.A.I. Steel Lancer Arena International ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator. Game takes a little to start.<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#006fcd; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> | Samurai Warriors || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2|| {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Extreme legends || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | Samurai Warriors 2 Empires || {{minorissues}} || ? || ? || flickering<br /> |-<br /> | SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || {{playable}} || ? || Fix for distorted audio (PAL). Seems to work for the NTSC-U version as well. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{playable}} || {{playable}} || ? || Require config file to fix hang at boot. [[Talk:PS2_Classics_Emulator_Compatibility_List#Second_Sight|[1]]]<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20: Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22: Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || {{notavailable}} || {{notavailable}} || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || {{notavailable}} || {{notavailable}} || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sega Soccer Slam || {{Unplayable}} || ? || ? || Stops before loading the menu.<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{playable}} || ? || ? || Works perfectly. Use RECVX emu for full speed gameplay.<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{minorissues}} || {{minorissues}} || ? || Both PAL and NTSC versions run fine with JakEMU V2. Minor slowdows in combat on the base ps4<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun Palmer's Pro Snowboarder || {{minorissues}} || {{minorissues}} || {{unplayable}} || Working fine. Minor graphical glitches. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version has many glitches than US and PAL versions.&lt;/span&gt;<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background:#FF1000; color:white;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || {{playable}} || {{minorissues}} || {{playable}} || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable. NTSC-J - aside from minor interlacing(about the same as in PCSX2, to note) in FMVs, works perfect.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || {{Playable}} || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || {{minorissues}} || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899.Pal version sometimes freezes at first loadingscreen<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims 2 Pets || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{unplayable}} || Black screen. Didn't have this game work on PS4 Pro?<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | Sitting ducks || ? || {{playable}} || ? || Works.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now<br /> |-<br /> | Smuggler's Run 2 || ? || {{unplayable}} || ? || Doesn't work, just crashes. Rogue Emulator hangs on a Black screen.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect. Image with Widescreen Patch does not boot on either emulator.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{minorissues}} || {{minorissues}} || {{minorissues}} || Minor graphical issues, but playable. Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_2|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-60#post-280195 [2&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{majorissues}} || {{majorissues}} || {{majorissues}} || Require config file. Crashes on certain stages. Story mode and Chronicles of The sword unplayable because of this. JakX V2 used. [[Talk:PS2_Classics_Emulator_Compatibility_List#Soul_Calibur_3|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-61#post-280864 [2]]<br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu. game doesn't start when using JakV2.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || {{unplayable}} || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult. &lt;span style=&quot;color:white; background:#FF1000&gt;JP version will freeze after ps2 logo.&lt;/span&gt;<br /> |-<br /> | Spider-Man 3 || {{unplayable}} || {{unplayable}} || ? || Freezes on loading screen after the first level. Require config file to fix framerate, and graphical issues. [[Talk:PS2_Classics_Emulator_Compatibility_List#Spider-Man_3|[1]]]<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{unplayable}} || {{unplayable}} || ? || Game is running smooth; however, there is a bug with the combat system which makes it impossible to progress the game.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || {{majorissues}} || {{unplayable}} || ? || Freezes after PS2 logo. EU version runs but with big dips in framerate randomly slowing down gameplay and audio, cutscenes also suffer from slow audio. (EU version tested on PS4 Slim 9.00).<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{minorissues}} || ? || Minor performance issues. Require config file. [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-278758 [1&lt;nowiki&gt;]&lt;/nowiki&gt;]<br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Street Hoops || ? || {{playable}} || ? || runs with no problems<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{majorissues}} || {{majorissues}} || {{unplayable}} || NTSC version works using KOF98/JAK/ROGUE emulators. This game hangs a bit in the main menu. Also it working fine with GTA3 Emulator, as well with Europe. &lt;span style=&quot;color:white; background:#FF1000&gt;JAP version doesn't boot past PS2 logo.&lt;/span&gt;<br /> |-<br /> | Stuntman 2: Ignition || {{unplayable}} || {{unplayable}} || ? || Doesn't work, just crashes. Jakv1 emulator shows a black screen, through you can hear the sound.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{notavailable}} || {{minorissues}} || ? || Check [[Talk:PS2 Classics Emulator Compatibility List#Suikoden_III|Emulator Configuration]] (PAL Version saw a &quot;PS2 Classics&quot; Version only available for the PlayStation 3 [EP0101-NPED00294_00-GSUIKODEN3000001]).<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || {{playable}} || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball Adventure || ? || {{minorissues}} || ? || Apart from some minute graphic artifacts here and there (there are light reflections that look like arcs on the walls), the game plays totally fine with no disruptions whatsoever. Tested on 9.00, PKG created with PS4 PS2 Classics GUI.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | Super Robot Wars Z || {{notavailable}} || {{notavailable}} || {{Playable}} || No issues detected. <br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Sword of Samurai || {{minorissues}} || ? || ? || extreme flickering but playable <br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works. With jakv2 emu, the screen goes black after the infogrames logo.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive: Eve of Destruction (Driven to Destruction) || ? || {{minorissues}} || {{notavailable}} || Slight frame drop during heavy particle effects, otherwise fine.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu, choppy sound and video.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | The Suffering || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#90FF90&quot;&gt;Sometimes an inverted '''white player model appears''' on the screen, it only appears on the '''first level''', game '''playable''' good enough!&lt;/span&gt;<br /> I used [https://www.psx-place.com/threads/release-ps2-fpkg-0-6-by-jabu-new-tool-to-convert-ps2-games-for-ps4.30350 PS2-FPKG_v0.6] converter with the [https://github.com/Zarh/ManaGunZ/tree/master/pkgfiles/USRDIR/sys/CONFIG config] for PS3 game, it's already present in converter. When converting, check the box '''Auto-Add PS3 Config''', and '''uncheck''' the rest, then choose '''Destroy All Humans V2 emu''', just put [https://mega.nz/folder/tFgjFApL#F8XIfrGKQwsL9ebgm1FLzw this] '''Destroy All Humans V2 emu''' folder into '''PS2-FPKG_v0.6\emus\''' and just select it in the program.<br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Tiger Woods PGA Tour 2004 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisble at times. (Possible draw distance problem?)<br /> |-<br /> | Tiger Woods PGA Tour 2005 || ? || {{minorissues}} || ? || Character models have texture issues. Golf ball goes invisible when hit making it hard to see where it is.<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{playable}} || {{playable}} || {{playable}} || Black screen after playstation 2 screen can be fixed with —vu1=jit-sync . <br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tokyo Xtreme Racer 3 || ? || {{playable}} || ? || Perfect, game can be finished from start to finish with 0 issues. Just remap the accelerate to triggers since same issue as in auto moddelista<br /> |-<br /> | Tokyo Xtreme Racer: Drift 2 || ? || {{unplayable}} || ? || Menu works almost perfectly with only pop-ups like tooltips and confirmation info text not showing up. In game presents a black screen with only the UI loaded in.<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || {{playable}} || Only works with Jak emu. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emu hangs before the game starts in this either Japan version.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || {{unplayable}} || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]. &lt;span style=&quot;color:white; background:#FF1000&gt;NTSC-J version freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || {{unplayable}} || ? || Black screen after first cutscene, can't go in-menu.<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || {{majorissues}} || Minor frame rate issues on first level, else works fine. &lt;span style=&quot;color:black; background:#FFAA00&gt;This game does not reset after pressing start on the titlescreen in JAP version.&lt;/span&gt;<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Pro Skater 4 || {{Playable}} || {{Playable}} || {{Unplayable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 4|Emulator Configuration]] for additional details. JAP is totally broken (black screen).<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> | Torrente 3 - The Protector || {{playable}} || ? || ? || Works fine, no noticeable issues.<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> |Total Immersion Racing ||{{unplayable}}||?||?|| Stuck at loading screen<br /> |-<br /> | Tourist Trophy || {{minorissues}} || {{minorissues}} || ? || Small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses because of ground textures not rendering.<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || {{minorissues}} || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:#FF1000;&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;. There were some FPS drops when I tested on PS4 slim. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all. &lt;span style=&quot;color:white; background:#FF1000&gt;KOF98 Emulator still goes into the Infogrames logo then freezes as tested by unknown.&lt;/span&gt;<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || {{unplayable}} || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{playable}} || {{playable}} || {{playable}} || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Urban_Reign|[1]]] [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-58#post-279431 [2&lt;nowiki&gt;]&lt;/nowiki&gt;] Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | V-Rally III (V-Rally 3) || {{playable}} || {{playable}} || {{playable}} || working. If you'll test the game on a PS4 Pro FW 5.05. &lt;span style=&quot;color:white; background:#FF1000&gt;Rogue Emulator will freeze after Atari logo.&lt;/span&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{majorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area and certain area. No significant issue.<br /> Japanese voice dub version will random freeze, no solutions.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches. FPS drops can be fixed using config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#Van_Helsing|[1]]]<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{playable}} || {{notavailable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Rogue v1 &amp; Rogue v2. Widescreen patch causes graphics to not render. Only use uprender 2x2 to fix issue but causes enemies deaths to lag the game for a few seconds. Use RECVX emu if you can with uprender 2x2 for widescreen and full speed.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || Use RECVX emu for best experience. Fixes sound effects not playing. Jak emus causes no sound effects from sword to play. <br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> | Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || Perfect emulation. &lt;span style=&quot;color:white; background:#FFAA00&gt;With Jakv2 emu, the game does not reset during gameplay.&lt;/span&gt;<br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> | Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> | Worms 3D || {{playable}} || ? || ? || <br /> |-<br /> | Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE All Stars || ? || {{playable}} || ? || Works flawlessly with no problems<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || {{minorissues}} || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown vs. Raw 2007 || ? || {{playable}} || ? ||<br /> |-<br /> | WWE SmackDown vs. Raw 2008 || ? || {{minorissues}} || ? || Some graphical issues on the main menu and the arena selecttion screen but main gameplay Works flawlessly<br /> |-<br /> | WWE SmackDown vs. Raw 2009 || {{playable}} || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2010 || ? || {{playable}} || ? || Works flawlessly<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{playable}} || ? || Require config file. [[Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends|[1]]]<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{playable}} || ? || Require config file. [[https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List#X-Men_Legends_II|[1]]]<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || {{minorissues}} || {{minorissues}} || ? || &lt;span style=&quot;background:#FFFF90&quot;&gt;If you use the PS4 PS2 Classics GUI by The Darkprogramer it will run fine - no graphical glitches.&lt;/span&gt; very bad graphical glitches when tested on JakV2 &amp; RogueV1.<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || {{playable}} || Works fine with Jak v2 emulator.<br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{playable}} || ? || ? || Seems to work fine, played around an hour on PS4 FW 9.00.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. &lt;span style=&quot;color:white; background:#FF1000&gt;With Jakv2 emu, the screen turns black before you can reach the titlescreen.&lt;/span&gt;<br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case. (this game was also published for PS4 as &quot;ZONE OF THE ENDERS THE 2nd RUNNER : M∀RS&quot;)<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=284139 Talk:PS2 Classics Emulator Compatibility List 2022-01-07T16:04:04Z <p>162.199.155.139: /* Grand Theft Auto: Vice City Stories */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()vi<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> '''''Conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_208.51<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_504.10<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> '''''conf file'''''<br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.46<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_540.41<br /> <br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====Ace Lightning====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> <br /> #emu used=GTA 3 v1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Ape Escape: Pumped &amp; Primed====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --cop2-no-clamping=1<br /> --vu1-mpg-cycles=250<br /> #Fix for flickering textures&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;pre&gt;--emu used=jakx v2<br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> <br /> --Fix game frame rate<br /> eeObj.WriteMem32(0x3816e0,0x10000025) -- NTSC ONLY!!<br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_510.44 / SLES_529.68<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_204.97<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_200.71<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> <br /> '''''*Alternate fix Jak emus'''''<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> <br /> &lt;pre&gt;<br /> --DOA 2 Hardcore NTSC US<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x0021b63c,0x3c014534) -- Widescreen<br /> eeObj.WriteMem32(0x002b06ec,0x24060000) -- Fixes game hanging on boot.<br /> <br /> iopObj.WriteMem32(0x001D77E4,0x27C40010) --fixes music/sound effects<br /> iopObj.WriteMem32(0x001D77E8,0x0C0032B7) --fixes music/sound effects <br /> iopObj.WriteMem32(0x001D77EC,0x00000000) --fixes music/sound effects <br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.PadSetLightBar(0,255,200,250)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Def Jam Vendetta====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-21397<br /> <br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> <br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Driv3r (aka. Driver 3)====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Ephemeral Fantasia™ ====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> --framelimit-mode=normal<br /> <br /> --vu1-no-clamping=0<br /> <br /> #Fixes missing character/world parts.&lt;/pre&gt;<br /> <br /> ====Everblue 2====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_513.81<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x230b68, 0x4be503bc, 0x4b0c211c)<br /> eeInsnReplace(0x230b6c, 0x4b0c211c, 0x4be503bc)<br /> eeInsnReplace(0x230b84, 0x4be603bc, 0x4bc0295c)<br /> eeInsnReplace(0x230b88, 0x4bc0295c, 0x4be603bc)<br /> eeInsnReplace(0x230ba0, 0x4be703bc, 0x4bc0319c)<br /> eeInsnReplace(0x230ba4, 0x4bc0319c, 0x4be703bc)<br /> eeInsnReplace(0x230bbc, 0x4be803bc, 0x4bc039dc)<br /> eeInsnReplace(0x230bc0, 0x4bc039dc, 0x4be803bc)<br /> eeInsnReplace(0x230bd8, 0x4be903bc, 0x4bc0421c)<br /> eeInsnReplace(0x230bdc, 0x4bc0421c, 0x4be903bc)<br /> eeInsnReplace(0x230bf4, 0x4bea03bc, 0x4bc04a5c)<br /> eeInsnReplace(0x230bf8, 0x4bc04a5c, 0x4bea03bc)<br /> eeInsnReplace(0x230c10, 0x4beb03bc, 0x4bc0529c)<br /> eeInsnReplace(0x230c14, 0x4bc0529c, 0x4beb03bc)<br /> <br /> #Missing textures fix&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_210.98<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> ====Galactic Wrestling Featuring Ultimate Muscle====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu-xgkick-delay=0.58<br /> <br /> #fix for missing character models<br /> #KOF98Emu used&lt;/pre&gt;<br /> <br /> ====Galarians: Ash====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> --gs-adaptive-frameskip=1<br /> <br /> --vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> <br /> --ee-jit-pagefault-threshold=30<br /> <br /> --lopnor-config=1 #found here http://ps3.aldostools.org/ps2config.html<br /> <br /> --ee-cycle-scalar=2.0<br /> <br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Galarians Ash NTSC<br /> -- emu used=jakx v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(2.2)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x001e0100,0x3c013f40) -- 16:9<br /> emuObj.ThrottleMax() -- Drastically reduces loading screens duration on most games<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> &lt;/pre&gt;<br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_530.20<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> <br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City Stories====<br /> SLUS_215.90<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> <br /> --host-display-mode=16:9<br /> #emu used=psychonauts v2<br /> &lt;/pre&gt;<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- emu used=psychonauts v2<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(1.0)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> --widescreen fix<br /> eeObj.WriteMem32(0x002653d8,0x3c013f9d)<br /> eeObj.WriteMem32(0x002653dc,0x44810000)<br /> eeObj.WriteMem32(0x002653e0,0x46006302)<br /> eeObj.WriteMem32(0x002653e4,0x3c020048)<br /> eeObj.WriteMem32(0x002653e8,0x03e00008)<br /> eeObj.WriteMem32(0x002653ec,0xe44c7484)<br /> <br /> eeObj.WriteMem32(0x0037add4,0x0c0994f6)<br /> eeObj.WriteMem32(0x003b9d14,0x0c0994f9)<br /> eeObj.WriteMem32(0x003ba1b0,0x0c0994f9)<br /> <br /> eeObj.WriteMem32(0x20370314,0x10820019)--60fps<br /> <br /> --eeObj.WriteMem32(0x20447EDC,0x00000000)--no interlace<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> &lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Liberty City Stories====<br /> SLUS_214.23<br /> &lt;br&gt;Text<br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> --gs-adaptive-frameskip=1<br /> <br /> --vu0-mpg-cycles=200<br /> --vu1-mpg-cycles=200<br /> <br /> --ee-cycle-scalar=0.8<br /> &lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> #God Of War EU<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> local gsObj = getGsObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) removes corrupted lines around the objects when use --gs-uprender<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Ice Age 2 Meltdown====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.07<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x2feb80, 0x27bdff70, 0x27bdfee0)<br /> eeInsnReplace(0x2febbc, 0x27bd0090, 0x27bd0120)<br /> <br /> #fix for company logo freeze.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang. <br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=1<br /> <br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Marc Ecko's Getting Up - Contents Under Pressure™ NTSC====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-adaptive-frameskip=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> --gs-check-trans-rejection=1<br /> <br /> --vu0-mpg-cycles=175<br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> --vif1-instant-xfer=0<br /> --vif-ignore-invalid-cmd=1<br /> --vif1-ignore-cmd-ints=1<br /> --fpu-rsqrt-fast-estimate=1<br /> --iop-cycle-scalar=2.5<br /> --ee-cycle-scalar=1.5<br /> --vu1-no-clamping=0<br /> --gs-ignore-rect-correction=1<br /> --gs-dirty-page-policy=1<br /> <br /> #emu used=jakx v2<br /> &lt;/pre&gt;<br /> '''''LUA'''''<br /> &lt;pre&gt;<br /> --<br /> -- ported to PS4<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local cpr = require(&quot;ee-cpr0-alias&quot;)<br /> local hwaddr = require(&quot;ee-hwaddr&quot;)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 0<br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1)<br /> --------------------------------------------------------<br /> <br /> local patcher = function()<br /> eeObj.WriteMem32(0x0056764c,0x3c023f40)<br /> emuObj.ThrottleMax()<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> local ApplyVifCycleSettings = function()<br /> <br /> eeObj.Vu1MpgCycles(math.floor(175))<br /> eeObj.SetVifDataCycleScalar(1, 2.6)<br /> eeObj.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> end<br /> <br /> ApplyVifCycleSettings()<br /> <br /> local frameskip = {}<br /> <br /> frameskip.DeterministicMode = 0 -- set 0 for native (non-deterministic) behavior, see function frameskip.GetFramesInQueue()<br /> <br /> -- constants:<br /> local CLOCK_EE = 294912000.0<br /> local CLOCK_EE_60hz = 294912000.0 / 60<br /> local AdvanceCycleChunkSize = 16000<br /> local ChunksPerFrame = (CLOCK_EE_60hz / AdvanceCycleChunkSize)<br /> local TaperHoldBaseline = ChunksPerFrame / 30 -- frames to hold even the smallest taper values<br /> local TaperRatePerFrame = ChunksPerFrame / 180 -- frames to taper away 1.0 worth of dog-ratio<br /> local TaperHoldPerChunk = 15.0 / ChunksPerFrame -- hold for 15 frames per one frame of delay<br /> local EnableTapering = true<br /> <br /> local MaxChunkCounter = math.floor(ChunksPerFrame * 2.50) -- warning: jaks can't frameskip past 2.0, they clamp ratio and slow down instead.<br /> <br /> -- globals:<br /> local isFrameDone = false<br /> local m_counter = 0<br /> local m_prev_framecount = 0<br /> local m_taper_peak = 0<br /> local m_taper_hold = 0<br /> <br /> -- Vars For diagnostic:<br /> local d_truelog = false<br /> local d_numframes = 0<br /> <br /> frameskip.GetFramesInQueue = function()<br /> if frameskip.DeterministicMode == 0 then<br /> return gsObj.GetFramesInQueue()<br /> <br /> elseif frameskip.DeterministicMode == 1 then<br /> -- five regular frames, four slow frames<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 9<br /> if modulo &lt; 5 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 2 then<br /> -- nice slow cyclic test!<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 240<br /> if modulo &lt; 200 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 3 then<br /> -- slow cycle from 0 to 3 and back to 0, across about 10 seconds...<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 600<br /> if modulo &lt; 100 then<br /> return 0<br /> elseif modulo &lt; 200 then<br /> return 1<br /> elseif modulo &lt; 300 then<br /> return 2<br /> elseif modulo &lt; 300 then<br /> return 3<br /> elseif modulo &lt; 400 then<br /> return 2<br /> elseif modulo &lt; 500 then<br /> return 1<br /> else<br /> return 0<br /> end<br /> end<br /> <br /> return gsObj.GetFramesInQueue()<br /> end<br /> <br /> frameskip.onFrameFinishedHook = function()<br /> emuObj.CountFrameOnPS2() -- updates FRAPS/Actual FPS reading in olympus<br /> <br /> -- local cyl_data, cyl_mpg = eeObj.GetVif1Cycles()<br /> -- print (string.format(&quot;data=%6d mpg=%6d&quot;, cyl_data, cyl_mpg))<br /> <br /> local frameCount = frameskip.GetFramesInQueue()<br /> <br /> m_counter = 0<br /> if frameCount ~= 0 or m_prev_framecount ~= 0 then<br /> -- Keep in mind here that the incurred cycle delay will be appended after the standard<br /> -- VIF/VU cycle delays. Standard delays can be read using eeObj.GetVif1Cycles() as shown<br /> -- in a print snippet above.<br /> <br /> local fcnew = frameCount<br /> local fcold = m_prev_framecount<br /> <br /> -- first frame being a bit slow is often a red herring, because of how the deferred<br /> -- EE/GS pipeline works. So weight it very lightly here (if either fcold or fcnew is<br /> -- 0 then it'll go negative and help offset remaining 1.0)<br /> <br /> if fcnew &lt; 1.2 then fcnew = fcnew - 0.6 end<br /> <br /> -- Delta from prev to new frame is used to indicate vectoring toward poor perf.<br /> -- eg. if prev was 1 and new is 3 then ramp up frameskip in a hurry (+2)<br /> <br /> local fcdelta = fcnew - fcold<br /> fcdelta = (fcdelta &gt;= 0) and (fcdelta / 2.0) or 0<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 7.5) * (fcnew + fcold + fcdelta) -- baseline<br /> <br /> -- fcold and fcnew are squared and so to scale back the curve a bit we subtract some<br /> -- amount from them here:<br /> <br /> fcnew = fcnew - 0.25<br /> fcold = fcold - 0.40<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 15.0) * (fcold * fcold) -- weighted prev slowness<br /> m_counter = m_counter + (ChunksPerFrame / 9.0) * (fcnew * (fcnew+fcdelta)) -- weighted current slowness<br /> <br /> -- Boundscheck the counter. Keep in mind that a counter delay of 2 frames will run at ~20fps.<br /> m_counter = math.floor(m_counter)<br /> if m_counter &gt; MaxChunkCounter then m_counter = MaxChunkCounter end<br /> <br /> if EnableTapering and m_taper_peak &lt; m_counter then<br /> m_taper_hold = TaperHoldBaseline + (m_counter * TaperHoldPerChunk)<br /> m_taper_peak = m_counter<br /> end<br /> end<br /> <br /> -- Tapering kind of helps reduce the game's built-in jutter problem... but not really to the<br /> -- extent that I would like. -- jstine<br /> <br /> local m_origc = m_counter<br /> if m_counter &lt; m_taper_peak then<br /> m_counter = math.floor(m_taper_peak)<br /> end<br /> <br /> --print (string.format(&quot;onFrameFinished! numFrames=%d,%d counter=%3d taper_hold=%5.1f taper_peak=%5.1f delayInFrames=%5.3f&quot;,<br /> -- m_prev_framecount, frameCount, m_origc, m_taper_hold, m_taper_peak, m_counter / ChunksPerFrame<br /> --));<br /> <br /> if m_taper_peak &gt; 0 then<br /> if m_taper_hold &gt; 0 then<br /> m_taper_hold = m_taper_hold - 1<br /> elseif m_origc &lt;= 25 then<br /> -- TODO make these constants?<br /> m_taper_peak = m_taper_peak - (m_taper_peak &gt; 112 and TaperRatePerFrame or 0.75)<br /> end<br /> <br /> -- when taper is a large value, slide it back quickly regardless of hold state<br /> if m_taper_peak &gt; 450 and m_taper_peak &gt; m_origc then<br /> m_taper_peak = m_taper_peak * 0.90<br /> end<br /> end<br /> <br /> m_prev_framecount = frameCount<br /> isFrameDone = true -- enables SpinWaitDelayHook<br /> end<br /> <br /> frameskip.SpinWaitDelayHook = function(hookpc, gprv, writeon)<br /> if not isFrameDone then<br /> return<br /> end<br /> <br /> local numFrames = frameskip.GetFramesInQueue()<br /> local isSkipping = false<br /> <br /> --local numFrames = frameskip.GetFramesInQueue()<br /> --print (string.format(&quot;HOOKED @ 0x%02x - counter=%d numFrames=%d&quot;, hookpc, m_counter, numFrames))<br /> <br /> if m_counter &gt; 0 then<br /> --if not d_truelog then<br /> -- print ( string.format(&quot;HOOKED! - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> --d_truelog = true<br /> <br /> -- SetFrameSkipping call removed because it causes severe frame loss, due to internal scanout<br /> -- not aligning to when this hook is invoked. The call was only implemented in order to solve<br /> -- interlace jitter problems on Jak TPL anyway, and isn't needed here... --jstine<br /> --gsObj.SetFrameSkipping(true)<br /> <br /> isSkipping = true<br /> end<br /> <br /> if isSkipping then<br /> --local v0 = eeObj.GetGpr(gprv)<br /> eeObj.SetGpr(gprv, writeon)<br /> eeObj.AdvanceClock(AdvanceCycleChunkSize)<br /> m_counter = m_counter - 1<br /> -- print ( string.format(&quot;SKIPP! - numFrames=%d&quot;, numFrames))<br /> else<br /> isFrameDone = false<br /> --gsObj.SetFrameSkipping(false)<br /> m_counter = 0<br /> <br /> --if d_truelog then<br /> -- print &quot;BUSY ENDED, RESUMIMG...&quot;<br /> --end<br /> --d_truelog = false<br /> end<br /> <br /> --if d_numframes ~= numFrames then<br /> -- print ( string.format(&quot;Frame Queue Changed - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> end<br /> <br /> -- Performace fix (bug #9785 )<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { waveThreshold = 90000} )<br /> emuObj.SetGsTitleFix( &quot;ignoreAreaUpdate&quot;, 0, { } )<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-override-small-tri-area=1<br /> <br /> --vif1-instant-xfer=0<br /> <br /> --ee-cycle-scalar=1.8<br /> --ee-sif1-cycle-scalar=1.8<br /> --iop-cycle-scalar=0.8<br /> --iop-sif1-cycle-scalar=1.5<br /> <br /> --vu1-di-bit=0<br /> --vu-t-bit=1 <br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(2.3)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 600 <br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1) <br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting --gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> &lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLES_543.22<br /> <br /> &lt;pre&gt; <br /> --host-audio-latency=2.77<br /> --verbose-cdvd-reads=700<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=smooth<br /> --gs-optimize-30fps=1 <br /> <br /> --fpu-accurate-range=0x150000,0x170000 # Fix loading freeze, needs to be improved<br /> <br /> --ee-cycle-scalar=1.36<br /> --vu1-mpg-cycles=1200<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS-21065<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> --Speed Fix&lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> <br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_200.64<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> '''''conf file'''''<br /> <br /> All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_207.21<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> <br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Radiata Stories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu-hack-triace=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Mandatory triace fix for boot crash and fix for uncommon glitches like outlines in Jack's face during specific cutscenes.&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_204.71<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> <br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> &lt;br&gt;SCAJ_200.16<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> <br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> <br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Suikoden III====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> <br /> --vu1-no-clamping=0<br /> <br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> #emu used=psychonauts v2<br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Suikoden III (SLUS-20387)<br /> -- Widescreen hack by nemesis2000 (pnach by nemesis2000)<br /> -- emu used=psychonauts v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(0.1)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> --16:9<br /> eeObj.WriteMem32(0x016c21c0,0x460d6502)<br /> eeObj.WriteMem32(0x016c21bc,0x460d6d42)<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> &lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLPS-25842, SLPS-25841, SCKA-20119<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> <br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> <br /> --host-display-mode=16:9<br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Tales Of The Abyss (NTSC-U) (SLUS-21386)<br /> -- emu used=psychonauts v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(0.1)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL Versions<br /> <br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SCES-52758 ONLY!<br /> <br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> <br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> &lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_215.55<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;SLES_539.08<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> <br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=283882 Talk:PS2 Classics Emulator Compatibility List 2021-12-16T16:44:00Z <p>162.199.155.139: /* The Suffering 2: Ties that Bind */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> '''''Conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_208.51<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_504.10<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> '''''conf file'''''<br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.46<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_540.41<br /> <br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> <br /> #emu used=GTA 3 v1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Ape Escape: Pumped &amp; Primed====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --cop2-no-clamping=1<br /> --vu1-mpg-cycles=250<br /> #Fix for flickering textures&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;pre&gt;--emu used=jakx v2<br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> <br /> --Fix game frame rate<br /> eeObj.WriteMem32(0x3816e0,0x10000025) -- NTSC ONLY!!<br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_510.44 / SLES_529.68<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_204.97<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_200.71<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> <br /> '''''*Alternate fix Jak emus'''''<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> <br /> &lt;pre&gt;<br /> --DOA 2 Hardcore NTSC US<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x0021b63c,0x3c014534) -- Widescreen<br /> eeObj.WriteMem32(0x002b06ec,0x24060000) -- Fixes game hanging on boot.<br /> <br /> iopObj.WriteMem32(0x001D77E4,0x27C40010) --fixes music/sound effects<br /> iopObj.WriteMem32(0x001D77E8,0x0C0032B7) --fixes music/sound effects <br /> iopObj.WriteMem32(0x001D77EC,0x00000000) --fixes music/sound effects <br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.PadSetLightBar(0,255,200,250)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Def Jam Vendetta====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-21397<br /> <br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> <br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Ephemeral Fantasia™ ====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> --framelimit-mode=normal<br /> <br /> --vu1-no-clamping=0<br /> <br /> #Fixes missing character/world parts.&lt;/pre&gt;<br /> <br /> ====Everblue 2====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_513.81<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x230b68, 0x4be503bc, 0x4b0c211c)<br /> eeInsnReplace(0x230b6c, 0x4b0c211c, 0x4be503bc)<br /> eeInsnReplace(0x230b84, 0x4be603bc, 0x4bc0295c)<br /> eeInsnReplace(0x230b88, 0x4bc0295c, 0x4be603bc)<br /> eeInsnReplace(0x230ba0, 0x4be703bc, 0x4bc0319c)<br /> eeInsnReplace(0x230ba4, 0x4bc0319c, 0x4be703bc)<br /> eeInsnReplace(0x230bbc, 0x4be803bc, 0x4bc039dc)<br /> eeInsnReplace(0x230bc0, 0x4bc039dc, 0x4be803bc)<br /> eeInsnReplace(0x230bd8, 0x4be903bc, 0x4bc0421c)<br /> eeInsnReplace(0x230bdc, 0x4bc0421c, 0x4be903bc)<br /> eeInsnReplace(0x230bf4, 0x4bea03bc, 0x4bc04a5c)<br /> eeInsnReplace(0x230bf8, 0x4bc04a5c, 0x4bea03bc)<br /> eeInsnReplace(0x230c10, 0x4beb03bc, 0x4bc0529c)<br /> eeInsnReplace(0x230c14, 0x4bc0529c, 0x4beb03bc)<br /> <br /> #Missing textures fix&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_210.98<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> ====Galarians: Ash====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> --gs-adaptive-frameskip=1<br /> <br /> --vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> <br /> --ee-jit-pagefault-threshold=30<br /> <br /> --lopnor-config=1 #found here http://ps3.aldostools.org/ps2config.html<br /> <br /> --ee-cycle-scalar=2.0<br /> <br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Galarians Ash NTSC<br /> -- emu used=jakx v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(2.2)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x001e0100,0x3c013f40) -- 16:9<br /> emuObj.ThrottleMax() -- Drastically reduces loading screens duration on most games<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> &lt;/pre&gt;<br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_530.20<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> <br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> #God Of War EU<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> local gsObj = getGsObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) removes corrupted lines around the objects when use --gs-uprender<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Ice Age 2 Meltdown====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.07<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x2feb80, 0x27bdff70, 0x27bdfee0)<br /> eeInsnReplace(0x2febbc, 0x27bd0090, 0x27bd0120)<br /> <br /> #fix for company logo freeze.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang. <br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=1<br /> <br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Marc Ecko's Getting Up - Contents Under Pressure™ NTSC====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-adaptive-frameskip=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> --gs-check-trans-rejection=1<br /> <br /> --vu0-mpg-cycles=175<br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> --vif1-instant-xfer=0<br /> --vif-ignore-invalid-cmd=1<br /> --vif1-ignore-cmd-ints=1<br /> --fpu-rsqrt-fast-estimate=1<br /> --iop-cycle-scalar=2.5<br /> --ee-cycle-scalar=1.5<br /> --vu1-no-clamping=0<br /> --gs-ignore-rect-correction=1<br /> --gs-dirty-page-policy=1<br /> <br /> #emu used=jakx v2<br /> &lt;/pre&gt;<br /> '''''LUA'''''<br /> &lt;pre&gt;<br /> --<br /> -- ported to PS4<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local cpr = require(&quot;ee-cpr0-alias&quot;)<br /> local hwaddr = require(&quot;ee-hwaddr&quot;)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 0<br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1)<br /> --------------------------------------------------------<br /> <br /> local patcher = function()<br /> eeObj.WriteMem32(0x0056764c,0x3c023f40)<br /> emuObj.ThrottleMax()<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> local ApplyVifCycleSettings = function()<br /> <br /> eeObj.Vu1MpgCycles(math.floor(175))<br /> eeObj.SetVifDataCycleScalar(1, 2.6)<br /> eeObj.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> end<br /> <br /> ApplyVifCycleSettings()<br /> <br /> local frameskip = {}<br /> <br /> frameskip.DeterministicMode = 0 -- set 0 for native (non-deterministic) behavior, see function frameskip.GetFramesInQueue()<br /> <br /> -- constants:<br /> local CLOCK_EE = 294912000.0<br /> local CLOCK_EE_60hz = 294912000.0 / 60<br /> local AdvanceCycleChunkSize = 16000<br /> local ChunksPerFrame = (CLOCK_EE_60hz / AdvanceCycleChunkSize)<br /> local TaperHoldBaseline = ChunksPerFrame / 30 -- frames to hold even the smallest taper values<br /> local TaperRatePerFrame = ChunksPerFrame / 180 -- frames to taper away 1.0 worth of dog-ratio<br /> local TaperHoldPerChunk = 15.0 / ChunksPerFrame -- hold for 15 frames per one frame of delay<br /> local EnableTapering = true<br /> <br /> local MaxChunkCounter = math.floor(ChunksPerFrame * 2.50) -- warning: jaks can't frameskip past 2.0, they clamp ratio and slow down instead.<br /> <br /> -- globals:<br /> local isFrameDone = false<br /> local m_counter = 0<br /> local m_prev_framecount = 0<br /> local m_taper_peak = 0<br /> local m_taper_hold = 0<br /> <br /> -- Vars For diagnostic:<br /> local d_truelog = false<br /> local d_numframes = 0<br /> <br /> frameskip.GetFramesInQueue = function()<br /> if frameskip.DeterministicMode == 0 then<br /> return gsObj.GetFramesInQueue()<br /> <br /> elseif frameskip.DeterministicMode == 1 then<br /> -- five regular frames, four slow frames<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 9<br /> if modulo &lt; 5 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 2 then<br /> -- nice slow cyclic test!<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 240<br /> if modulo &lt; 200 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 3 then<br /> -- slow cycle from 0 to 3 and back to 0, across about 10 seconds...<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 600<br /> if modulo &lt; 100 then<br /> return 0<br /> elseif modulo &lt; 200 then<br /> return 1<br /> elseif modulo &lt; 300 then<br /> return 2<br /> elseif modulo &lt; 300 then<br /> return 3<br /> elseif modulo &lt; 400 then<br /> return 2<br /> elseif modulo &lt; 500 then<br /> return 1<br /> else<br /> return 0<br /> end<br /> end<br /> <br /> return gsObj.GetFramesInQueue()<br /> end<br /> <br /> frameskip.onFrameFinishedHook = function()<br /> emuObj.CountFrameOnPS2() -- updates FRAPS/Actual FPS reading in olympus<br /> <br /> -- local cyl_data, cyl_mpg = eeObj.GetVif1Cycles()<br /> -- print (string.format(&quot;data=%6d mpg=%6d&quot;, cyl_data, cyl_mpg))<br /> <br /> local frameCount = frameskip.GetFramesInQueue()<br /> <br /> m_counter = 0<br /> if frameCount ~= 0 or m_prev_framecount ~= 0 then<br /> -- Keep in mind here that the incurred cycle delay will be appended after the standard<br /> -- VIF/VU cycle delays. Standard delays can be read using eeObj.GetVif1Cycles() as shown<br /> -- in a print snippet above.<br /> <br /> local fcnew = frameCount<br /> local fcold = m_prev_framecount<br /> <br /> -- first frame being a bit slow is often a red herring, because of how the deferred<br /> -- EE/GS pipeline works. So weight it very lightly here (if either fcold or fcnew is<br /> -- 0 then it'll go negative and help offset remaining 1.0)<br /> <br /> if fcnew &lt; 1.2 then fcnew = fcnew - 0.6 end<br /> <br /> -- Delta from prev to new frame is used to indicate vectoring toward poor perf.<br /> -- eg. if prev was 1 and new is 3 then ramp up frameskip in a hurry (+2)<br /> <br /> local fcdelta = fcnew - fcold<br /> fcdelta = (fcdelta &gt;= 0) and (fcdelta / 2.0) or 0<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 7.5) * (fcnew + fcold + fcdelta) -- baseline<br /> <br /> -- fcold and fcnew are squared and so to scale back the curve a bit we subtract some<br /> -- amount from them here:<br /> <br /> fcnew = fcnew - 0.25<br /> fcold = fcold - 0.40<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 15.0) * (fcold * fcold) -- weighted prev slowness<br /> m_counter = m_counter + (ChunksPerFrame / 9.0) * (fcnew * (fcnew+fcdelta)) -- weighted current slowness<br /> <br /> -- Boundscheck the counter. Keep in mind that a counter delay of 2 frames will run at ~20fps.<br /> m_counter = math.floor(m_counter)<br /> if m_counter &gt; MaxChunkCounter then m_counter = MaxChunkCounter end<br /> <br /> if EnableTapering and m_taper_peak &lt; m_counter then<br /> m_taper_hold = TaperHoldBaseline + (m_counter * TaperHoldPerChunk)<br /> m_taper_peak = m_counter<br /> end<br /> end<br /> <br /> -- Tapering kind of helps reduce the game's built-in jutter problem... but not really to the<br /> -- extent that I would like. -- jstine<br /> <br /> local m_origc = m_counter<br /> if m_counter &lt; m_taper_peak then<br /> m_counter = math.floor(m_taper_peak)<br /> end<br /> <br /> --print (string.format(&quot;onFrameFinished! numFrames=%d,%d counter=%3d taper_hold=%5.1f taper_peak=%5.1f delayInFrames=%5.3f&quot;,<br /> -- m_prev_framecount, frameCount, m_origc, m_taper_hold, m_taper_peak, m_counter / ChunksPerFrame<br /> --));<br /> <br /> if m_taper_peak &gt; 0 then<br /> if m_taper_hold &gt; 0 then<br /> m_taper_hold = m_taper_hold - 1<br /> elseif m_origc &lt;= 25 then<br /> -- TODO make these constants?<br /> m_taper_peak = m_taper_peak - (m_taper_peak &gt; 112 and TaperRatePerFrame or 0.75)<br /> end<br /> <br /> -- when taper is a large value, slide it back quickly regardless of hold state<br /> if m_taper_peak &gt; 450 and m_taper_peak &gt; m_origc then<br /> m_taper_peak = m_taper_peak * 0.90<br /> end<br /> end<br /> <br /> m_prev_framecount = frameCount<br /> isFrameDone = true -- enables SpinWaitDelayHook<br /> end<br /> <br /> frameskip.SpinWaitDelayHook = function(hookpc, gprv, writeon)<br /> if not isFrameDone then<br /> return<br /> end<br /> <br /> local numFrames = frameskip.GetFramesInQueue()<br /> local isSkipping = false<br /> <br /> --local numFrames = frameskip.GetFramesInQueue()<br /> --print (string.format(&quot;HOOKED @ 0x%02x - counter=%d numFrames=%d&quot;, hookpc, m_counter, numFrames))<br /> <br /> if m_counter &gt; 0 then<br /> --if not d_truelog then<br /> -- print ( string.format(&quot;HOOKED! - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> --d_truelog = true<br /> <br /> -- SetFrameSkipping call removed because it causes severe frame loss, due to internal scanout<br /> -- not aligning to when this hook is invoked. The call was only implemented in order to solve<br /> -- interlace jitter problems on Jak TPL anyway, and isn't needed here... --jstine<br /> --gsObj.SetFrameSkipping(true)<br /> <br /> isSkipping = true<br /> end<br /> <br /> if isSkipping then<br /> --local v0 = eeObj.GetGpr(gprv)<br /> eeObj.SetGpr(gprv, writeon)<br /> eeObj.AdvanceClock(AdvanceCycleChunkSize)<br /> m_counter = m_counter - 1<br /> -- print ( string.format(&quot;SKIPP! - numFrames=%d&quot;, numFrames))<br /> else<br /> isFrameDone = false<br /> --gsObj.SetFrameSkipping(false)<br /> m_counter = 0<br /> <br /> --if d_truelog then<br /> -- print &quot;BUSY ENDED, RESUMIMG...&quot;<br /> --end<br /> --d_truelog = false<br /> end<br /> <br /> --if d_numframes ~= numFrames then<br /> -- print ( string.format(&quot;Frame Queue Changed - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> end<br /> <br /> -- Performace fix (bug #9785 )<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { waveThreshold = 90000} )<br /> emuObj.SetGsTitleFix( &quot;ignoreAreaUpdate&quot;, 0, { } )<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-override-small-tri-area=1<br /> <br /> --vif1-instant-xfer=0<br /> <br /> --ee-cycle-scalar=1.8<br /> --ee-sif1-cycle-scalar=1.8<br /> --iop-cycle-scalar=0.8<br /> --iop-sif1-cycle-scalar=1.5<br /> <br /> --vu1-di-bit=0<br /> --vu-t-bit=1 <br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(2.3)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 600 <br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1) <br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting --gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> &lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLES_543.22<br /> <br /> &lt;pre&gt; <br /> --host-audio-latency=2.77<br /> --verbose-cdvd-reads=700<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=smooth<br /> --gs-optimize-30fps=1 <br /> <br /> --fpu-accurate-range=0x150000,0x170000 # Fix loading freeze, needs to be improved<br /> <br /> --ee-cycle-scalar=1.36<br /> --vu1-mpg-cycles=1200<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS-21065<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> --Speed Fix&lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> <br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_200.64<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> '''''conf file'''''<br /> <br /> All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_207.21<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> <br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Radiata Stories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu-hack-triace=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Mandatory triace fix for boot crash and fix for uncommon glitches like outlines in Jack's face during specific cutscenes.&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_204.71<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> <br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> &lt;br&gt;SCAJ_200.16<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> <br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> <br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Suikoden III====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> <br /> --vu1-no-clamping=0<br /> <br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> #emu used=psychonauts v2<br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Suikoden III (SLUS-20387)<br /> -- Widescreen hack by nemesis2000 (pnach by nemesis2000)<br /> -- emu used=psychonauts v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(0.1)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> --16:9<br /> eeObj.WriteMem32(0x016c21c0,0x460d6502)<br /> eeObj.WriteMem32(0x016c21bc,0x460d6d42)<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> &lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLPS-25842, SLPS-25841, SCKA-20119<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> <br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> <br /> --host-display-mode=16:9<br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Tales Of The Abyss (NTSC-U) (SLUS-21386)<br /> -- emu used=psychonauts v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(0.1)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL Versions<br /> <br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SCES-52758 ONLY!<br /> <br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> <br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> &lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_215.55<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;SLES_539.08<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> <br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=283881 Talk:PS2 Classics Emulator Compatibility List 2021-12-16T16:23:49Z <p>162.199.155.139: /* Suikoden III */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> '''''Conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_208.51<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_504.10<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> '''''conf file'''''<br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.46<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_540.41<br /> <br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> <br /> #emu used=GTA 3 v1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Ape Escape: Pumped &amp; Primed====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --cop2-no-clamping=1<br /> --vu1-mpg-cycles=250<br /> #Fix for flickering textures&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;pre&gt;--emu used=jakx v2<br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> <br /> --Fix game frame rate<br /> eeObj.WriteMem32(0x3816e0,0x10000025) -- NTSC ONLY!!<br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_510.44 / SLES_529.68<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_204.97<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_200.71<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> <br /> '''''*Alternate fix Jak emus'''''<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> <br /> &lt;pre&gt;<br /> --DOA 2 Hardcore NTSC US<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x0021b63c,0x3c014534) -- Widescreen<br /> eeObj.WriteMem32(0x002b06ec,0x24060000) -- Fixes game hanging on boot.<br /> <br /> iopObj.WriteMem32(0x001D77E4,0x27C40010) --fixes music/sound effects<br /> iopObj.WriteMem32(0x001D77E8,0x0C0032B7) --fixes music/sound effects <br /> iopObj.WriteMem32(0x001D77EC,0x00000000) --fixes music/sound effects <br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.PadSetLightBar(0,255,200,250)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Def Jam Vendetta====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-21397<br /> <br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> <br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Ephemeral Fantasia™ ====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> --framelimit-mode=normal<br /> <br /> --vu1-no-clamping=0<br /> <br /> #Fixes missing character/world parts.&lt;/pre&gt;<br /> <br /> ====Everblue 2====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_513.81<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x230b68, 0x4be503bc, 0x4b0c211c)<br /> eeInsnReplace(0x230b6c, 0x4b0c211c, 0x4be503bc)<br /> eeInsnReplace(0x230b84, 0x4be603bc, 0x4bc0295c)<br /> eeInsnReplace(0x230b88, 0x4bc0295c, 0x4be603bc)<br /> eeInsnReplace(0x230ba0, 0x4be703bc, 0x4bc0319c)<br /> eeInsnReplace(0x230ba4, 0x4bc0319c, 0x4be703bc)<br /> eeInsnReplace(0x230bbc, 0x4be803bc, 0x4bc039dc)<br /> eeInsnReplace(0x230bc0, 0x4bc039dc, 0x4be803bc)<br /> eeInsnReplace(0x230bd8, 0x4be903bc, 0x4bc0421c)<br /> eeInsnReplace(0x230bdc, 0x4bc0421c, 0x4be903bc)<br /> eeInsnReplace(0x230bf4, 0x4bea03bc, 0x4bc04a5c)<br /> eeInsnReplace(0x230bf8, 0x4bc04a5c, 0x4bea03bc)<br /> eeInsnReplace(0x230c10, 0x4beb03bc, 0x4bc0529c)<br /> eeInsnReplace(0x230c14, 0x4bc0529c, 0x4beb03bc)<br /> <br /> #Missing textures fix&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_210.98<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> ====Galarians: Ash====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> --gs-adaptive-frameskip=1<br /> <br /> --vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> <br /> --ee-jit-pagefault-threshold=30<br /> <br /> --lopnor-config=1 #found here http://ps3.aldostools.org/ps2config.html<br /> <br /> --ee-cycle-scalar=2.0<br /> <br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Galarians Ash NTSC<br /> -- emu used=jakx v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(2.2)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x001e0100,0x3c013f40) -- 16:9<br /> emuObj.ThrottleMax() -- Drastically reduces loading screens duration on most games<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> &lt;/pre&gt;<br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_530.20<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> <br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> #God Of War EU<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> local gsObj = getGsObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) removes corrupted lines around the objects when use --gs-uprender<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Ice Age 2 Meltdown====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.07<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x2feb80, 0x27bdff70, 0x27bdfee0)<br /> eeInsnReplace(0x2febbc, 0x27bd0090, 0x27bd0120)<br /> <br /> #fix for company logo freeze.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang. <br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=1<br /> <br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Marc Ecko's Getting Up - Contents Under Pressure™ NTSC====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-adaptive-frameskip=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> --gs-check-trans-rejection=1<br /> <br /> --vu0-mpg-cycles=175<br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> --vif1-instant-xfer=0<br /> --vif-ignore-invalid-cmd=1<br /> --vif1-ignore-cmd-ints=1<br /> --fpu-rsqrt-fast-estimate=1<br /> --iop-cycle-scalar=2.5<br /> --ee-cycle-scalar=1.5<br /> --vu1-no-clamping=0<br /> --gs-ignore-rect-correction=1<br /> --gs-dirty-page-policy=1<br /> <br /> #emu used=jakx v2<br /> &lt;/pre&gt;<br /> '''''LUA'''''<br /> &lt;pre&gt;<br /> --<br /> -- ported to PS4<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local cpr = require(&quot;ee-cpr0-alias&quot;)<br /> local hwaddr = require(&quot;ee-hwaddr&quot;)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 0<br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1)<br /> --------------------------------------------------------<br /> <br /> local patcher = function()<br /> eeObj.WriteMem32(0x0056764c,0x3c023f40)<br /> emuObj.ThrottleMax()<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> local ApplyVifCycleSettings = function()<br /> <br /> eeObj.Vu1MpgCycles(math.floor(175))<br /> eeObj.SetVifDataCycleScalar(1, 2.6)<br /> eeObj.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> end<br /> <br /> ApplyVifCycleSettings()<br /> <br /> local frameskip = {}<br /> <br /> frameskip.DeterministicMode = 0 -- set 0 for native (non-deterministic) behavior, see function frameskip.GetFramesInQueue()<br /> <br /> -- constants:<br /> local CLOCK_EE = 294912000.0<br /> local CLOCK_EE_60hz = 294912000.0 / 60<br /> local AdvanceCycleChunkSize = 16000<br /> local ChunksPerFrame = (CLOCK_EE_60hz / AdvanceCycleChunkSize)<br /> local TaperHoldBaseline = ChunksPerFrame / 30 -- frames to hold even the smallest taper values<br /> local TaperRatePerFrame = ChunksPerFrame / 180 -- frames to taper away 1.0 worth of dog-ratio<br /> local TaperHoldPerChunk = 15.0 / ChunksPerFrame -- hold for 15 frames per one frame of delay<br /> local EnableTapering = true<br /> <br /> local MaxChunkCounter = math.floor(ChunksPerFrame * 2.50) -- warning: jaks can't frameskip past 2.0, they clamp ratio and slow down instead.<br /> <br /> -- globals:<br /> local isFrameDone = false<br /> local m_counter = 0<br /> local m_prev_framecount = 0<br /> local m_taper_peak = 0<br /> local m_taper_hold = 0<br /> <br /> -- Vars For diagnostic:<br /> local d_truelog = false<br /> local d_numframes = 0<br /> <br /> frameskip.GetFramesInQueue = function()<br /> if frameskip.DeterministicMode == 0 then<br /> return gsObj.GetFramesInQueue()<br /> <br /> elseif frameskip.DeterministicMode == 1 then<br /> -- five regular frames, four slow frames<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 9<br /> if modulo &lt; 5 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 2 then<br /> -- nice slow cyclic test!<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 240<br /> if modulo &lt; 200 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 3 then<br /> -- slow cycle from 0 to 3 and back to 0, across about 10 seconds...<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 600<br /> if modulo &lt; 100 then<br /> return 0<br /> elseif modulo &lt; 200 then<br /> return 1<br /> elseif modulo &lt; 300 then<br /> return 2<br /> elseif modulo &lt; 300 then<br /> return 3<br /> elseif modulo &lt; 400 then<br /> return 2<br /> elseif modulo &lt; 500 then<br /> return 1<br /> else<br /> return 0<br /> end<br /> end<br /> <br /> return gsObj.GetFramesInQueue()<br /> end<br /> <br /> frameskip.onFrameFinishedHook = function()<br /> emuObj.CountFrameOnPS2() -- updates FRAPS/Actual FPS reading in olympus<br /> <br /> -- local cyl_data, cyl_mpg = eeObj.GetVif1Cycles()<br /> -- print (string.format(&quot;data=%6d mpg=%6d&quot;, cyl_data, cyl_mpg))<br /> <br /> local frameCount = frameskip.GetFramesInQueue()<br /> <br /> m_counter = 0<br /> if frameCount ~= 0 or m_prev_framecount ~= 0 then<br /> -- Keep in mind here that the incurred cycle delay will be appended after the standard<br /> -- VIF/VU cycle delays. Standard delays can be read using eeObj.GetVif1Cycles() as shown<br /> -- in a print snippet above.<br /> <br /> local fcnew = frameCount<br /> local fcold = m_prev_framecount<br /> <br /> -- first frame being a bit slow is often a red herring, because of how the deferred<br /> -- EE/GS pipeline works. So weight it very lightly here (if either fcold or fcnew is<br /> -- 0 then it'll go negative and help offset remaining 1.0)<br /> <br /> if fcnew &lt; 1.2 then fcnew = fcnew - 0.6 end<br /> <br /> -- Delta from prev to new frame is used to indicate vectoring toward poor perf.<br /> -- eg. if prev was 1 and new is 3 then ramp up frameskip in a hurry (+2)<br /> <br /> local fcdelta = fcnew - fcold<br /> fcdelta = (fcdelta &gt;= 0) and (fcdelta / 2.0) or 0<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 7.5) * (fcnew + fcold + fcdelta) -- baseline<br /> <br /> -- fcold and fcnew are squared and so to scale back the curve a bit we subtract some<br /> -- amount from them here:<br /> <br /> fcnew = fcnew - 0.25<br /> fcold = fcold - 0.40<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 15.0) * (fcold * fcold) -- weighted prev slowness<br /> m_counter = m_counter + (ChunksPerFrame / 9.0) * (fcnew * (fcnew+fcdelta)) -- weighted current slowness<br /> <br /> -- Boundscheck the counter. Keep in mind that a counter delay of 2 frames will run at ~20fps.<br /> m_counter = math.floor(m_counter)<br /> if m_counter &gt; MaxChunkCounter then m_counter = MaxChunkCounter end<br /> <br /> if EnableTapering and m_taper_peak &lt; m_counter then<br /> m_taper_hold = TaperHoldBaseline + (m_counter * TaperHoldPerChunk)<br /> m_taper_peak = m_counter<br /> end<br /> end<br /> <br /> -- Tapering kind of helps reduce the game's built-in jutter problem... but not really to the<br /> -- extent that I would like. -- jstine<br /> <br /> local m_origc = m_counter<br /> if m_counter &lt; m_taper_peak then<br /> m_counter = math.floor(m_taper_peak)<br /> end<br /> <br /> --print (string.format(&quot;onFrameFinished! numFrames=%d,%d counter=%3d taper_hold=%5.1f taper_peak=%5.1f delayInFrames=%5.3f&quot;,<br /> -- m_prev_framecount, frameCount, m_origc, m_taper_hold, m_taper_peak, m_counter / ChunksPerFrame<br /> --));<br /> <br /> if m_taper_peak &gt; 0 then<br /> if m_taper_hold &gt; 0 then<br /> m_taper_hold = m_taper_hold - 1<br /> elseif m_origc &lt;= 25 then<br /> -- TODO make these constants?<br /> m_taper_peak = m_taper_peak - (m_taper_peak &gt; 112 and TaperRatePerFrame or 0.75)<br /> end<br /> <br /> -- when taper is a large value, slide it back quickly regardless of hold state<br /> if m_taper_peak &gt; 450 and m_taper_peak &gt; m_origc then<br /> m_taper_peak = m_taper_peak * 0.90<br /> end<br /> end<br /> <br /> m_prev_framecount = frameCount<br /> isFrameDone = true -- enables SpinWaitDelayHook<br /> end<br /> <br /> frameskip.SpinWaitDelayHook = function(hookpc, gprv, writeon)<br /> if not isFrameDone then<br /> return<br /> end<br /> <br /> local numFrames = frameskip.GetFramesInQueue()<br /> local isSkipping = false<br /> <br /> --local numFrames = frameskip.GetFramesInQueue()<br /> --print (string.format(&quot;HOOKED @ 0x%02x - counter=%d numFrames=%d&quot;, hookpc, m_counter, numFrames))<br /> <br /> if m_counter &gt; 0 then<br /> --if not d_truelog then<br /> -- print ( string.format(&quot;HOOKED! - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> --d_truelog = true<br /> <br /> -- SetFrameSkipping call removed because it causes severe frame loss, due to internal scanout<br /> -- not aligning to when this hook is invoked. The call was only implemented in order to solve<br /> -- interlace jitter problems on Jak TPL anyway, and isn't needed here... --jstine<br /> --gsObj.SetFrameSkipping(true)<br /> <br /> isSkipping = true<br /> end<br /> <br /> if isSkipping then<br /> --local v0 = eeObj.GetGpr(gprv)<br /> eeObj.SetGpr(gprv, writeon)<br /> eeObj.AdvanceClock(AdvanceCycleChunkSize)<br /> m_counter = m_counter - 1<br /> -- print ( string.format(&quot;SKIPP! - numFrames=%d&quot;, numFrames))<br /> else<br /> isFrameDone = false<br /> --gsObj.SetFrameSkipping(false)<br /> m_counter = 0<br /> <br /> --if d_truelog then<br /> -- print &quot;BUSY ENDED, RESUMIMG...&quot;<br /> --end<br /> --d_truelog = false<br /> end<br /> <br /> --if d_numframes ~= numFrames then<br /> -- print ( string.format(&quot;Frame Queue Changed - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> end<br /> <br /> -- Performace fix (bug #9785 )<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { waveThreshold = 90000} )<br /> emuObj.SetGsTitleFix( &quot;ignoreAreaUpdate&quot;, 0, { } )<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-override-small-tri-area=1<br /> <br /> --vif1-instant-xfer=0<br /> <br /> --ee-cycle-scalar=1.8<br /> --ee-sif1-cycle-scalar=1.8<br /> --iop-cycle-scalar=0.8<br /> --iop-sif1-cycle-scalar=1.5<br /> <br /> --vu1-di-bit=0<br /> --vu-t-bit=1 <br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(2.3)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 600 <br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1) <br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting --gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> &lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLES_543.22<br /> <br /> &lt;pre&gt; <br /> --host-audio-latency=2.77<br /> --verbose-cdvd-reads=700<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=smooth<br /> --gs-optimize-30fps=1 <br /> <br /> --fpu-accurate-range=0x150000,0x170000 # Fix loading freeze, needs to be improved<br /> <br /> --ee-cycle-scalar=1.36<br /> --vu1-mpg-cycles=1200<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS-21065<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> --Speed Fix&lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> <br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_200.64<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> '''''conf file'''''<br /> <br /> All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_207.21<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> <br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Radiata Stories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu-hack-triace=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Mandatory triace fix for boot crash and fix for uncommon glitches like outlines in Jack's face during specific cutscenes.&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_204.71<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> <br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> &lt;br&gt;SCAJ_200.16<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> <br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> <br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Suikoden III====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> <br /> --vu1-no-clamping=0<br /> <br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> #emu used=psychonauts v2<br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Suikoden III (SLUS-20387)<br /> -- Widescreen hack by nemesis2000 (pnach by nemesis2000)<br /> -- emu used=psychonauts v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(0.1)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> --16:9<br /> eeObj.WriteMem32(0x016c21c0,0x460d6502)<br /> eeObj.WriteMem32(0x016c21bc,0x460d6d42)<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> &lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLPS-25842, SLPS-25841, SCKA-20119<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> <br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> <br /> --host-display-mode=16:9<br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Tales Of The Abyss (NTSC-U) (SLUS-21386)<br /> -- emu used=psychonauts v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(0.1)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL Versions<br /> <br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SCES-52758 ONLY!<br /> <br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> <br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> ====Timesplitters====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> ====Tomb Raider: Anniversary====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_215.55<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;SLES_539.08<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> <br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=283880 Talk:PS2 Classics Emulator Compatibility List 2021-12-16T16:17:20Z <p>162.199.155.139: /* Tales of The Abyss */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> '''''Conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_208.51<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_504.10<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> '''''conf file'''''<br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.46<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_540.41<br /> <br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> <br /> #emu used=GTA 3 v1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Ape Escape: Pumped &amp; Primed====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --cop2-no-clamping=1<br /> --vu1-mpg-cycles=250<br /> #Fix for flickering textures&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;pre&gt;--emu used=jakx v2<br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> <br /> --Fix game frame rate<br /> eeObj.WriteMem32(0x3816e0,0x10000025) -- NTSC ONLY!!<br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_510.44 / SLES_529.68<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_204.97<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_200.71<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> <br /> '''''*Alternate fix Jak emus'''''<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> <br /> &lt;pre&gt;<br /> --DOA 2 Hardcore NTSC US<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x0021b63c,0x3c014534) -- Widescreen<br /> eeObj.WriteMem32(0x002b06ec,0x24060000) -- Fixes game hanging on boot.<br /> <br /> iopObj.WriteMem32(0x001D77E4,0x27C40010) --fixes music/sound effects<br /> iopObj.WriteMem32(0x001D77E8,0x0C0032B7) --fixes music/sound effects <br /> iopObj.WriteMem32(0x001D77EC,0x00000000) --fixes music/sound effects <br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.PadSetLightBar(0,255,200,250)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Def Jam Vendetta====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-21397<br /> <br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> <br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Ephemeral Fantasia™ ====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> --framelimit-mode=normal<br /> <br /> --vu1-no-clamping=0<br /> <br /> #Fixes missing character/world parts.&lt;/pre&gt;<br /> <br /> ====Everblue 2====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_513.81<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x230b68, 0x4be503bc, 0x4b0c211c)<br /> eeInsnReplace(0x230b6c, 0x4b0c211c, 0x4be503bc)<br /> eeInsnReplace(0x230b84, 0x4be603bc, 0x4bc0295c)<br /> eeInsnReplace(0x230b88, 0x4bc0295c, 0x4be603bc)<br /> eeInsnReplace(0x230ba0, 0x4be703bc, 0x4bc0319c)<br /> eeInsnReplace(0x230ba4, 0x4bc0319c, 0x4be703bc)<br /> eeInsnReplace(0x230bbc, 0x4be803bc, 0x4bc039dc)<br /> eeInsnReplace(0x230bc0, 0x4bc039dc, 0x4be803bc)<br /> eeInsnReplace(0x230bd8, 0x4be903bc, 0x4bc0421c)<br /> eeInsnReplace(0x230bdc, 0x4bc0421c, 0x4be903bc)<br /> eeInsnReplace(0x230bf4, 0x4bea03bc, 0x4bc04a5c)<br /> eeInsnReplace(0x230bf8, 0x4bc04a5c, 0x4bea03bc)<br /> eeInsnReplace(0x230c10, 0x4beb03bc, 0x4bc0529c)<br /> eeInsnReplace(0x230c14, 0x4bc0529c, 0x4beb03bc)<br /> <br /> #Missing textures fix&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_210.98<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> ====Galarians: Ash====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> --gs-adaptive-frameskip=1<br /> <br /> --vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> <br /> --ee-jit-pagefault-threshold=30<br /> <br /> --lopnor-config=1 #found here http://ps3.aldostools.org/ps2config.html<br /> <br /> --ee-cycle-scalar=2.0<br /> <br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Galarians Ash NTSC<br /> -- emu used=jakx v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(2.2)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x001e0100,0x3c013f40) -- 16:9<br /> emuObj.ThrottleMax() -- Drastically reduces loading screens duration on most games<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> &lt;/pre&gt;<br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_530.20<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> <br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> #God Of War EU<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> local gsObj = getGsObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) removes corrupted lines around the objects when use --gs-uprender<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Ice Age 2 Meltdown====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.07<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x2feb80, 0x27bdff70, 0x27bdfee0)<br /> eeInsnReplace(0x2febbc, 0x27bd0090, 0x27bd0120)<br /> <br /> #fix for company logo freeze.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang. <br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=1<br /> <br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Marc Ecko's Getting Up - Contents Under Pressure™ NTSC====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-adaptive-frameskip=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> --gs-check-trans-rejection=1<br /> <br /> --vu0-mpg-cycles=175<br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> --vif1-instant-xfer=0<br /> --vif-ignore-invalid-cmd=1<br /> --vif1-ignore-cmd-ints=1<br /> --fpu-rsqrt-fast-estimate=1<br /> --iop-cycle-scalar=2.5<br /> --ee-cycle-scalar=1.5<br /> --vu1-no-clamping=0<br /> --gs-ignore-rect-correction=1<br /> --gs-dirty-page-policy=1<br /> <br /> #emu used=jakx v2<br /> &lt;/pre&gt;<br /> '''''LUA'''''<br /> &lt;pre&gt;<br /> --<br /> -- ported to PS4<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local cpr = require(&quot;ee-cpr0-alias&quot;)<br /> local hwaddr = require(&quot;ee-hwaddr&quot;)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 0<br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1)<br /> --------------------------------------------------------<br /> <br /> local patcher = function()<br /> eeObj.WriteMem32(0x0056764c,0x3c023f40)<br /> emuObj.ThrottleMax()<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> local ApplyVifCycleSettings = function()<br /> <br /> eeObj.Vu1MpgCycles(math.floor(175))<br /> eeObj.SetVifDataCycleScalar(1, 2.6)<br /> eeObj.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> end<br /> <br /> ApplyVifCycleSettings()<br /> <br /> local frameskip = {}<br /> <br /> frameskip.DeterministicMode = 0 -- set 0 for native (non-deterministic) behavior, see function frameskip.GetFramesInQueue()<br /> <br /> -- constants:<br /> local CLOCK_EE = 294912000.0<br /> local CLOCK_EE_60hz = 294912000.0 / 60<br /> local AdvanceCycleChunkSize = 16000<br /> local ChunksPerFrame = (CLOCK_EE_60hz / AdvanceCycleChunkSize)<br /> local TaperHoldBaseline = ChunksPerFrame / 30 -- frames to hold even the smallest taper values<br /> local TaperRatePerFrame = ChunksPerFrame / 180 -- frames to taper away 1.0 worth of dog-ratio<br /> local TaperHoldPerChunk = 15.0 / ChunksPerFrame -- hold for 15 frames per one frame of delay<br /> local EnableTapering = true<br /> <br /> local MaxChunkCounter = math.floor(ChunksPerFrame * 2.50) -- warning: jaks can't frameskip past 2.0, they clamp ratio and slow down instead.<br /> <br /> -- globals:<br /> local isFrameDone = false<br /> local m_counter = 0<br /> local m_prev_framecount = 0<br /> local m_taper_peak = 0<br /> local m_taper_hold = 0<br /> <br /> -- Vars For diagnostic:<br /> local d_truelog = false<br /> local d_numframes = 0<br /> <br /> frameskip.GetFramesInQueue = function()<br /> if frameskip.DeterministicMode == 0 then<br /> return gsObj.GetFramesInQueue()<br /> <br /> elseif frameskip.DeterministicMode == 1 then<br /> -- five regular frames, four slow frames<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 9<br /> if modulo &lt; 5 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 2 then<br /> -- nice slow cyclic test!<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 240<br /> if modulo &lt; 200 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 3 then<br /> -- slow cycle from 0 to 3 and back to 0, across about 10 seconds...<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 600<br /> if modulo &lt; 100 then<br /> return 0<br /> elseif modulo &lt; 200 then<br /> return 1<br /> elseif modulo &lt; 300 then<br /> return 2<br /> elseif modulo &lt; 300 then<br /> return 3<br /> elseif modulo &lt; 400 then<br /> return 2<br /> elseif modulo &lt; 500 then<br /> return 1<br /> else<br /> return 0<br /> end<br /> end<br /> <br /> return gsObj.GetFramesInQueue()<br /> end<br /> <br /> frameskip.onFrameFinishedHook = function()<br /> emuObj.CountFrameOnPS2() -- updates FRAPS/Actual FPS reading in olympus<br /> <br /> -- local cyl_data, cyl_mpg = eeObj.GetVif1Cycles()<br /> -- print (string.format(&quot;data=%6d mpg=%6d&quot;, cyl_data, cyl_mpg))<br /> <br /> local frameCount = frameskip.GetFramesInQueue()<br /> <br /> m_counter = 0<br /> if frameCount ~= 0 or m_prev_framecount ~= 0 then<br /> -- Keep in mind here that the incurred cycle delay will be appended after the standard<br /> -- VIF/VU cycle delays. Standard delays can be read using eeObj.GetVif1Cycles() as shown<br /> -- in a print snippet above.<br /> <br /> local fcnew = frameCount<br /> local fcold = m_prev_framecount<br /> <br /> -- first frame being a bit slow is often a red herring, because of how the deferred<br /> -- EE/GS pipeline works. So weight it very lightly here (if either fcold or fcnew is<br /> -- 0 then it'll go negative and help offset remaining 1.0)<br /> <br /> if fcnew &lt; 1.2 then fcnew = fcnew - 0.6 end<br /> <br /> -- Delta from prev to new frame is used to indicate vectoring toward poor perf.<br /> -- eg. if prev was 1 and new is 3 then ramp up frameskip in a hurry (+2)<br /> <br /> local fcdelta = fcnew - fcold<br /> fcdelta = (fcdelta &gt;= 0) and (fcdelta / 2.0) or 0<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 7.5) * (fcnew + fcold + fcdelta) -- baseline<br /> <br /> -- fcold and fcnew are squared and so to scale back the curve a bit we subtract some<br /> -- amount from them here:<br /> <br /> fcnew = fcnew - 0.25<br /> fcold = fcold - 0.40<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 15.0) * (fcold * fcold) -- weighted prev slowness<br /> m_counter = m_counter + (ChunksPerFrame / 9.0) * (fcnew * (fcnew+fcdelta)) -- weighted current slowness<br /> <br /> -- Boundscheck the counter. Keep in mind that a counter delay of 2 frames will run at ~20fps.<br /> m_counter = math.floor(m_counter)<br /> if m_counter &gt; MaxChunkCounter then m_counter = MaxChunkCounter end<br /> <br /> if EnableTapering and m_taper_peak &lt; m_counter then<br /> m_taper_hold = TaperHoldBaseline + (m_counter * TaperHoldPerChunk)<br /> m_taper_peak = m_counter<br /> end<br /> end<br /> <br /> -- Tapering kind of helps reduce the game's built-in jutter problem... but not really to the<br /> -- extent that I would like. -- jstine<br /> <br /> local m_origc = m_counter<br /> if m_counter &lt; m_taper_peak then<br /> m_counter = math.floor(m_taper_peak)<br /> end<br /> <br /> --print (string.format(&quot;onFrameFinished! numFrames=%d,%d counter=%3d taper_hold=%5.1f taper_peak=%5.1f delayInFrames=%5.3f&quot;,<br /> -- m_prev_framecount, frameCount, m_origc, m_taper_hold, m_taper_peak, m_counter / ChunksPerFrame<br /> --));<br /> <br /> if m_taper_peak &gt; 0 then<br /> if m_taper_hold &gt; 0 then<br /> m_taper_hold = m_taper_hold - 1<br /> elseif m_origc &lt;= 25 then<br /> -- TODO make these constants?<br /> m_taper_peak = m_taper_peak - (m_taper_peak &gt; 112 and TaperRatePerFrame or 0.75)<br /> end<br /> <br /> -- when taper is a large value, slide it back quickly regardless of hold state<br /> if m_taper_peak &gt; 450 and m_taper_peak &gt; m_origc then<br /> m_taper_peak = m_taper_peak * 0.90<br /> end<br /> end<br /> <br /> m_prev_framecount = frameCount<br /> isFrameDone = true -- enables SpinWaitDelayHook<br /> end<br /> <br /> frameskip.SpinWaitDelayHook = function(hookpc, gprv, writeon)<br /> if not isFrameDone then<br /> return<br /> end<br /> <br /> local numFrames = frameskip.GetFramesInQueue()<br /> local isSkipping = false<br /> <br /> --local numFrames = frameskip.GetFramesInQueue()<br /> --print (string.format(&quot;HOOKED @ 0x%02x - counter=%d numFrames=%d&quot;, hookpc, m_counter, numFrames))<br /> <br /> if m_counter &gt; 0 then<br /> --if not d_truelog then<br /> -- print ( string.format(&quot;HOOKED! - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> --d_truelog = true<br /> <br /> -- SetFrameSkipping call removed because it causes severe frame loss, due to internal scanout<br /> -- not aligning to when this hook is invoked. The call was only implemented in order to solve<br /> -- interlace jitter problems on Jak TPL anyway, and isn't needed here... --jstine<br /> --gsObj.SetFrameSkipping(true)<br /> <br /> isSkipping = true<br /> end<br /> <br /> if isSkipping then<br /> --local v0 = eeObj.GetGpr(gprv)<br /> eeObj.SetGpr(gprv, writeon)<br /> eeObj.AdvanceClock(AdvanceCycleChunkSize)<br /> m_counter = m_counter - 1<br /> -- print ( string.format(&quot;SKIPP! - numFrames=%d&quot;, numFrames))<br /> else<br /> isFrameDone = false<br /> --gsObj.SetFrameSkipping(false)<br /> m_counter = 0<br /> <br /> --if d_truelog then<br /> -- print &quot;BUSY ENDED, RESUMIMG...&quot;<br /> --end<br /> --d_truelog = false<br /> end<br /> <br /> --if d_numframes ~= numFrames then<br /> -- print ( string.format(&quot;Frame Queue Changed - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> end<br /> <br /> -- Performace fix (bug #9785 )<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { waveThreshold = 90000} )<br /> emuObj.SetGsTitleFix( &quot;ignoreAreaUpdate&quot;, 0, { } )<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-override-small-tri-area=1<br /> <br /> --vif1-instant-xfer=0<br /> <br /> --ee-cycle-scalar=1.8<br /> --ee-sif1-cycle-scalar=1.8<br /> --iop-cycle-scalar=0.8<br /> --iop-sif1-cycle-scalar=1.5<br /> <br /> --vu1-di-bit=0<br /> --vu-t-bit=1 <br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(2.3)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 600 <br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1) <br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting --gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> &lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLES_543.22<br /> <br /> &lt;pre&gt; <br /> --host-audio-latency=2.77<br /> --verbose-cdvd-reads=700<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=smooth<br /> --gs-optimize-30fps=1 <br /> <br /> --fpu-accurate-range=0x150000,0x170000 # Fix loading freeze, needs to be improved<br /> <br /> --ee-cycle-scalar=1.36<br /> --vu1-mpg-cycles=1200<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS-21065<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> --Speed Fix&lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> <br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_200.64<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> '''''conf file'''''<br /> <br /> All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_207.21<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> <br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Radiata Stories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu-hack-triace=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Mandatory triace fix for boot crash and fix for uncommon glitches like outlines in Jack's face during specific cutscenes.&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_204.71<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> <br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> &lt;br&gt;SCAJ_200.16<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> <br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> <br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Suikoden III====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-20387<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --vu1-mpg-cycles=2500 <br /> --ee-cycle-scalar=1.3<br /> --iop-cycle-scalar=1.3<br /> <br /> #Fix all graphics and improve frame-rate. Needs further performance adjustment for very wide areas.&lt;/pre&gt; <br /> <br /> ====Tales of Destiny: Directors Cut====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLPS-25842, SLPS-25841, SCKA-20119<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> <br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> <br /> --host-display-mode=16:9<br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Tales Of The Abyss (NTSC-U) (SLUS-21386)<br /> -- emu used=psychonauts v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(0.1)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL Versions<br /> <br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SCES-52758 ONLY!<br /> <br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> <br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> ====Timesplitters====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> ====Tomb Raider: Anniversary====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_215.55<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;SLES_539.08<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> <br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=283879 Talk:PS2 Classics Emulator Compatibility List 2021-12-16T16:12:04Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> '''''Conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_208.51<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_504.10<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> '''''conf file'''''<br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.46<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_540.41<br /> <br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> <br /> #emu used=GTA 3 v1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Ape Escape: Pumped &amp; Primed====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --cop2-no-clamping=1<br /> --vu1-mpg-cycles=250<br /> #Fix for flickering textures&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;pre&gt;--emu used=jakx v2<br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> <br /> --Fix game frame rate<br /> eeObj.WriteMem32(0x3816e0,0x10000025) -- NTSC ONLY!!<br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_510.44 / SLES_529.68<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_204.97<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_200.71<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> <br /> '''''*Alternate fix Jak emus'''''<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> <br /> &lt;pre&gt;<br /> --DOA 2 Hardcore NTSC US<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x0021b63c,0x3c014534) -- Widescreen<br /> eeObj.WriteMem32(0x002b06ec,0x24060000) -- Fixes game hanging on boot.<br /> <br /> iopObj.WriteMem32(0x001D77E4,0x27C40010) --fixes music/sound effects<br /> iopObj.WriteMem32(0x001D77E8,0x0C0032B7) --fixes music/sound effects <br /> iopObj.WriteMem32(0x001D77EC,0x00000000) --fixes music/sound effects <br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.PadSetLightBar(0,255,200,250)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Def Jam Vendetta====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-21397<br /> <br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> <br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Ephemeral Fantasia™ ====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> --framelimit-mode=normal<br /> <br /> --vu1-no-clamping=0<br /> <br /> #Fixes missing character/world parts.&lt;/pre&gt;<br /> <br /> ====Everblue 2====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_513.81<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x230b68, 0x4be503bc, 0x4b0c211c)<br /> eeInsnReplace(0x230b6c, 0x4b0c211c, 0x4be503bc)<br /> eeInsnReplace(0x230b84, 0x4be603bc, 0x4bc0295c)<br /> eeInsnReplace(0x230b88, 0x4bc0295c, 0x4be603bc)<br /> eeInsnReplace(0x230ba0, 0x4be703bc, 0x4bc0319c)<br /> eeInsnReplace(0x230ba4, 0x4bc0319c, 0x4be703bc)<br /> eeInsnReplace(0x230bbc, 0x4be803bc, 0x4bc039dc)<br /> eeInsnReplace(0x230bc0, 0x4bc039dc, 0x4be803bc)<br /> eeInsnReplace(0x230bd8, 0x4be903bc, 0x4bc0421c)<br /> eeInsnReplace(0x230bdc, 0x4bc0421c, 0x4be903bc)<br /> eeInsnReplace(0x230bf4, 0x4bea03bc, 0x4bc04a5c)<br /> eeInsnReplace(0x230bf8, 0x4bc04a5c, 0x4bea03bc)<br /> eeInsnReplace(0x230c10, 0x4beb03bc, 0x4bc0529c)<br /> eeInsnReplace(0x230c14, 0x4bc0529c, 0x4beb03bc)<br /> <br /> #Missing textures fix&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_210.98<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> ====Galarians: Ash====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> --gs-adaptive-frameskip=1<br /> <br /> --vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> <br /> --ee-jit-pagefault-threshold=30<br /> <br /> --lopnor-config=1 #found here http://ps3.aldostools.org/ps2config.html<br /> <br /> --ee-cycle-scalar=2.0<br /> <br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Galarians Ash NTSC<br /> -- emu used=jakx v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(2.2)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x001e0100,0x3c013f40) -- 16:9<br /> emuObj.ThrottleMax() -- Drastically reduces loading screens duration on most games<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> &lt;/pre&gt;<br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_530.20<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> <br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> #God Of War EU<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> local gsObj = getGsObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) removes corrupted lines around the objects when use --gs-uprender<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Ice Age 2 Meltdown====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.07<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x2feb80, 0x27bdff70, 0x27bdfee0)<br /> eeInsnReplace(0x2febbc, 0x27bd0090, 0x27bd0120)<br /> <br /> #fix for company logo freeze.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang. <br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=1<br /> <br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Marc Ecko's Getting Up - Contents Under Pressure™ NTSC====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-adaptive-frameskip=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> --gs-check-trans-rejection=1<br /> <br /> --vu0-mpg-cycles=175<br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> --vif1-instant-xfer=0<br /> --vif-ignore-invalid-cmd=1<br /> --vif1-ignore-cmd-ints=1<br /> --fpu-rsqrt-fast-estimate=1<br /> --iop-cycle-scalar=2.5<br /> --ee-cycle-scalar=1.5<br /> --vu1-no-clamping=0<br /> --gs-ignore-rect-correction=1<br /> --gs-dirty-page-policy=1<br /> <br /> #emu used=jakx v2<br /> &lt;/pre&gt;<br /> '''''LUA'''''<br /> &lt;pre&gt;<br /> --<br /> -- ported to PS4<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local cpr = require(&quot;ee-cpr0-alias&quot;)<br /> local hwaddr = require(&quot;ee-hwaddr&quot;)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 0<br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1)<br /> --------------------------------------------------------<br /> <br /> local patcher = function()<br /> eeObj.WriteMem32(0x0056764c,0x3c023f40)<br /> emuObj.ThrottleMax()<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> local ApplyVifCycleSettings = function()<br /> <br /> eeObj.Vu1MpgCycles(math.floor(175))<br /> eeObj.SetVifDataCycleScalar(1, 2.6)<br /> eeObj.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> end<br /> <br /> ApplyVifCycleSettings()<br /> <br /> local frameskip = {}<br /> <br /> frameskip.DeterministicMode = 0 -- set 0 for native (non-deterministic) behavior, see function frameskip.GetFramesInQueue()<br /> <br /> -- constants:<br /> local CLOCK_EE = 294912000.0<br /> local CLOCK_EE_60hz = 294912000.0 / 60<br /> local AdvanceCycleChunkSize = 16000<br /> local ChunksPerFrame = (CLOCK_EE_60hz / AdvanceCycleChunkSize)<br /> local TaperHoldBaseline = ChunksPerFrame / 30 -- frames to hold even the smallest taper values<br /> local TaperRatePerFrame = ChunksPerFrame / 180 -- frames to taper away 1.0 worth of dog-ratio<br /> local TaperHoldPerChunk = 15.0 / ChunksPerFrame -- hold for 15 frames per one frame of delay<br /> local EnableTapering = true<br /> <br /> local MaxChunkCounter = math.floor(ChunksPerFrame * 2.50) -- warning: jaks can't frameskip past 2.0, they clamp ratio and slow down instead.<br /> <br /> -- globals:<br /> local isFrameDone = false<br /> local m_counter = 0<br /> local m_prev_framecount = 0<br /> local m_taper_peak = 0<br /> local m_taper_hold = 0<br /> <br /> -- Vars For diagnostic:<br /> local d_truelog = false<br /> local d_numframes = 0<br /> <br /> frameskip.GetFramesInQueue = function()<br /> if frameskip.DeterministicMode == 0 then<br /> return gsObj.GetFramesInQueue()<br /> <br /> elseif frameskip.DeterministicMode == 1 then<br /> -- five regular frames, four slow frames<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 9<br /> if modulo &lt; 5 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 2 then<br /> -- nice slow cyclic test!<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 240<br /> if modulo &lt; 200 then<br /> return 0<br /> else<br /> return 3<br /> end<br /> <br /> elseif frameskip.DeterministicMode == 3 then<br /> -- slow cycle from 0 to 3 and back to 0, across about 10 seconds...<br /> local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 600<br /> if modulo &lt; 100 then<br /> return 0<br /> elseif modulo &lt; 200 then<br /> return 1<br /> elseif modulo &lt; 300 then<br /> return 2<br /> elseif modulo &lt; 300 then<br /> return 3<br /> elseif modulo &lt; 400 then<br /> return 2<br /> elseif modulo &lt; 500 then<br /> return 1<br /> else<br /> return 0<br /> end<br /> end<br /> <br /> return gsObj.GetFramesInQueue()<br /> end<br /> <br /> frameskip.onFrameFinishedHook = function()<br /> emuObj.CountFrameOnPS2() -- updates FRAPS/Actual FPS reading in olympus<br /> <br /> -- local cyl_data, cyl_mpg = eeObj.GetVif1Cycles()<br /> -- print (string.format(&quot;data=%6d mpg=%6d&quot;, cyl_data, cyl_mpg))<br /> <br /> local frameCount = frameskip.GetFramesInQueue()<br /> <br /> m_counter = 0<br /> if frameCount ~= 0 or m_prev_framecount ~= 0 then<br /> -- Keep in mind here that the incurred cycle delay will be appended after the standard<br /> -- VIF/VU cycle delays. Standard delays can be read using eeObj.GetVif1Cycles() as shown<br /> -- in a print snippet above.<br /> <br /> local fcnew = frameCount<br /> local fcold = m_prev_framecount<br /> <br /> -- first frame being a bit slow is often a red herring, because of how the deferred<br /> -- EE/GS pipeline works. So weight it very lightly here (if either fcold or fcnew is<br /> -- 0 then it'll go negative and help offset remaining 1.0)<br /> <br /> if fcnew &lt; 1.2 then fcnew = fcnew - 0.6 end<br /> <br /> -- Delta from prev to new frame is used to indicate vectoring toward poor perf.<br /> -- eg. if prev was 1 and new is 3 then ramp up frameskip in a hurry (+2)<br /> <br /> local fcdelta = fcnew - fcold<br /> fcdelta = (fcdelta &gt;= 0) and (fcdelta / 2.0) or 0<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 7.5) * (fcnew + fcold + fcdelta) -- baseline<br /> <br /> -- fcold and fcnew are squared and so to scale back the curve a bit we subtract some<br /> -- amount from them here:<br /> <br /> fcnew = fcnew - 0.25<br /> fcold = fcold - 0.40<br /> <br /> m_counter = m_counter + (ChunksPerFrame / 15.0) * (fcold * fcold) -- weighted prev slowness<br /> m_counter = m_counter + (ChunksPerFrame / 9.0) * (fcnew * (fcnew+fcdelta)) -- weighted current slowness<br /> <br /> -- Boundscheck the counter. Keep in mind that a counter delay of 2 frames will run at ~20fps.<br /> m_counter = math.floor(m_counter)<br /> if m_counter &gt; MaxChunkCounter then m_counter = MaxChunkCounter end<br /> <br /> if EnableTapering and m_taper_peak &lt; m_counter then<br /> m_taper_hold = TaperHoldBaseline + (m_counter * TaperHoldPerChunk)<br /> m_taper_peak = m_counter<br /> end<br /> end<br /> <br /> -- Tapering kind of helps reduce the game's built-in jutter problem... but not really to the<br /> -- extent that I would like. -- jstine<br /> <br /> local m_origc = m_counter<br /> if m_counter &lt; m_taper_peak then<br /> m_counter = math.floor(m_taper_peak)<br /> end<br /> <br /> --print (string.format(&quot;onFrameFinished! numFrames=%d,%d counter=%3d taper_hold=%5.1f taper_peak=%5.1f delayInFrames=%5.3f&quot;,<br /> -- m_prev_framecount, frameCount, m_origc, m_taper_hold, m_taper_peak, m_counter / ChunksPerFrame<br /> --));<br /> <br /> if m_taper_peak &gt; 0 then<br /> if m_taper_hold &gt; 0 then<br /> m_taper_hold = m_taper_hold - 1<br /> elseif m_origc &lt;= 25 then<br /> -- TODO make these constants?<br /> m_taper_peak = m_taper_peak - (m_taper_peak &gt; 112 and TaperRatePerFrame or 0.75)<br /> end<br /> <br /> -- when taper is a large value, slide it back quickly regardless of hold state<br /> if m_taper_peak &gt; 450 and m_taper_peak &gt; m_origc then<br /> m_taper_peak = m_taper_peak * 0.90<br /> end<br /> end<br /> <br /> m_prev_framecount = frameCount<br /> isFrameDone = true -- enables SpinWaitDelayHook<br /> end<br /> <br /> frameskip.SpinWaitDelayHook = function(hookpc, gprv, writeon)<br /> if not isFrameDone then<br /> return<br /> end<br /> <br /> local numFrames = frameskip.GetFramesInQueue()<br /> local isSkipping = false<br /> <br /> --local numFrames = frameskip.GetFramesInQueue()<br /> --print (string.format(&quot;HOOKED @ 0x%02x - counter=%d numFrames=%d&quot;, hookpc, m_counter, numFrames))<br /> <br /> if m_counter &gt; 0 then<br /> --if not d_truelog then<br /> -- print ( string.format(&quot;HOOKED! - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> --d_truelog = true<br /> <br /> -- SetFrameSkipping call removed because it causes severe frame loss, due to internal scanout<br /> -- not aligning to when this hook is invoked. The call was only implemented in order to solve<br /> -- interlace jitter problems on Jak TPL anyway, and isn't needed here... --jstine<br /> --gsObj.SetFrameSkipping(true)<br /> <br /> isSkipping = true<br /> end<br /> <br /> if isSkipping then<br /> --local v0 = eeObj.GetGpr(gprv)<br /> eeObj.SetGpr(gprv, writeon)<br /> eeObj.AdvanceClock(AdvanceCycleChunkSize)<br /> m_counter = m_counter - 1<br /> -- print ( string.format(&quot;SKIPP! - numFrames=%d&quot;, numFrames))<br /> else<br /> isFrameDone = false<br /> --gsObj.SetFrameSkipping(false)<br /> m_counter = 0<br /> <br /> --if d_truelog then<br /> -- print &quot;BUSY ENDED, RESUMIMG...&quot;<br /> --end<br /> --d_truelog = false<br /> end<br /> <br /> --if d_numframes ~= numFrames then<br /> -- print ( string.format(&quot;Frame Queue Changed - numFrames=%d&quot;, numFrames))<br /> -- d_numframes = numFrames<br /> --end<br /> end<br /> <br /> -- Performace fix (bug #9785 )<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { waveThreshold = 90000} )<br /> emuObj.SetGsTitleFix( &quot;ignoreAreaUpdate&quot;, 0, { } )<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-override-small-tri-area=1<br /> <br /> --vif1-instant-xfer=0<br /> <br /> --ee-cycle-scalar=1.8<br /> --ee-sif1-cycle-scalar=1.8<br /> --iop-cycle-scalar=0.8<br /> --iop-sif1-cycle-scalar=1.5<br /> <br /> --vu1-di-bit=0<br /> --vu-t-bit=1 <br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(2.3)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 600 <br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1) <br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting --gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> &lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLES_543.22<br /> <br /> &lt;pre&gt; <br /> --host-audio-latency=2.77<br /> --verbose-cdvd-reads=700<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=smooth<br /> --gs-optimize-30fps=1 <br /> <br /> --fpu-accurate-range=0x150000,0x170000 # Fix loading freeze, needs to be improved<br /> <br /> --ee-cycle-scalar=1.36<br /> --vu1-mpg-cycles=1200<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS-21065<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> --Speed Fix&lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> <br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_200.64<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> '''''conf file'''''<br /> <br /> All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_207.21<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> <br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Radiata Stories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu-hack-triace=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Mandatory triace fix for boot crash and fix for uncommon glitches like outlines in Jack's face during specific cutscenes.&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_204.71<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> <br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> &lt;br&gt;SCAJ_200.16<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> <br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> <br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Suikoden III====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-20387<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --vu1-mpg-cycles=2500 <br /> --ee-cycle-scalar=1.3<br /> --iop-cycle-scalar=1.3<br /> <br /> #Fix all graphics and improve frame-rate. Needs further performance adjustment for very wide areas.&lt;/pre&gt; <br /> <br /> ====Tales of Destiny: Directors Cut====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLPS-25842, SLPS-25841, SCKA-20119<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_213.86<br /> <br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> <br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> <br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> <br /> #choral castle soft lock fix<br /> <br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL Versions<br /> <br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SCES-52758 ONLY!<br /> <br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> <br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> ====Timesplitters====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> ====Tomb Raider: Anniversary====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_215.55<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;SLES_539.08<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> <br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=283878 Talk:PS2 Classics Emulator Compatibility List 2021-12-16T16:06:49Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> '''''Conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_208.51<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_504.10<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> '''''conf file'''''<br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.46<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_540.41<br /> <br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> <br /> #emu used=GTA 3 v1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Ape Escape: Pumped &amp; Primed====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --cop2-no-clamping=1<br /> --vu1-mpg-cycles=250<br /> #Fix for flickering textures&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;pre&gt;--emu used=jakx v2<br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> <br /> --Fix game frame rate<br /> eeObj.WriteMem32(0x3816e0,0x10000025) -- NTSC ONLY!!<br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_510.44 / SLES_529.68<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_204.97<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_200.71<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> <br /> '''''*Alternate fix Jak emus'''''<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> <br /> &lt;pre&gt;<br /> --DOA 2 Hardcore NTSC US<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x0021b63c,0x3c014534) -- Widescreen<br /> eeObj.WriteMem32(0x002b06ec,0x24060000) -- Fixes game hanging on boot.<br /> <br /> iopObj.WriteMem32(0x001D77E4,0x27C40010) --fixes music/sound effects<br /> iopObj.WriteMem32(0x001D77E8,0x0C0032B7) --fixes music/sound effects <br /> iopObj.WriteMem32(0x001D77EC,0x00000000) --fixes music/sound effects <br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.PadSetLightBar(0,255,200,250)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Def Jam Vendetta====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-21397<br /> <br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> <br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Ephemeral Fantasia™ ====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> --framelimit-mode=normal<br /> <br /> --vu1-no-clamping=0<br /> <br /> #Fixes missing character/world parts.&lt;/pre&gt;<br /> <br /> ====Everblue 2====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_513.81<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x230b68, 0x4be503bc, 0x4b0c211c)<br /> eeInsnReplace(0x230b6c, 0x4b0c211c, 0x4be503bc)<br /> eeInsnReplace(0x230b84, 0x4be603bc, 0x4bc0295c)<br /> eeInsnReplace(0x230b88, 0x4bc0295c, 0x4be603bc)<br /> eeInsnReplace(0x230ba0, 0x4be703bc, 0x4bc0319c)<br /> eeInsnReplace(0x230ba4, 0x4bc0319c, 0x4be703bc)<br /> eeInsnReplace(0x230bbc, 0x4be803bc, 0x4bc039dc)<br /> eeInsnReplace(0x230bc0, 0x4bc039dc, 0x4be803bc)<br /> eeInsnReplace(0x230bd8, 0x4be903bc, 0x4bc0421c)<br /> eeInsnReplace(0x230bdc, 0x4bc0421c, 0x4be903bc)<br /> eeInsnReplace(0x230bf4, 0x4bea03bc, 0x4bc04a5c)<br /> eeInsnReplace(0x230bf8, 0x4bc04a5c, 0x4bea03bc)<br /> eeInsnReplace(0x230c10, 0x4beb03bc, 0x4bc0529c)<br /> eeInsnReplace(0x230c14, 0x4bc0529c, 0x4beb03bc)<br /> <br /> #Missing textures fix&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_210.98<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> ====Galarians: Ash====<br /> '''''CLI file'''''<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> --gs-adaptive-frameskip=1<br /> <br /> --vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> <br /> --ee-jit-pagefault-threshold=30<br /> <br /> --lopnor-config=1 #found here http://ps3.aldostools.org/ps2config.html<br /> <br /> --ee-cycle-scalar=2.0<br /> <br /> &lt;/pre&gt;<br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> -- Galarians Ash NTSC<br /> -- emu used=jakx v2<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> apiRequest(2.2)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x001e0100,0x3c013f40) -- 16:9<br /> emuObj.ThrottleMax() -- Drastically reduces loading screens duration on most games<br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> &lt;/pre&gt;<br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_530.20<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> <br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> #God Of War EU<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> local gsObj = getGsObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) removes corrupted lines around the objects when use --gs-uprender<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Ice Age 2 Meltdown====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.07<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x2feb80, 0x27bdff70, 0x27bdfee0)<br /> eeInsnReplace(0x2febbc, 0x27bd0090, 0x27bd0120)<br /> <br /> #fix for company logo freeze.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang. <br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=1<br /> <br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-override-small-tri-area=1<br /> <br /> --vif1-instant-xfer=0<br /> <br /> --ee-cycle-scalar=1.8<br /> --ee-sif1-cycle-scalar=1.8<br /> --iop-cycle-scalar=0.8<br /> --iop-sif1-cycle-scalar=1.5<br /> <br /> --vu1-di-bit=0<br /> --vu-t-bit=1 <br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(2.3)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 600 <br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1) <br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting --gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> &lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLES_543.22<br /> <br /> &lt;pre&gt; <br /> --host-audio-latency=2.77<br /> --verbose-cdvd-reads=700<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=smooth<br /> --gs-optimize-30fps=1 <br /> <br /> --fpu-accurate-range=0x150000,0x170000 # Fix loading freeze, needs to be improved<br /> <br /> --ee-cycle-scalar=1.36<br /> --vu1-mpg-cycles=1200<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS-21065<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> --Speed Fix&lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> <br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_200.64<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> '''''conf file'''''<br /> <br /> All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_207.21<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> <br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Radiata Stories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu-hack-triace=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Mandatory triace fix for boot crash and fix for uncommon glitches like outlines in Jack's face during specific cutscenes.&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_204.71<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> <br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> &lt;br&gt;SCAJ_200.16<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> <br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> <br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Suikoden III====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-20387<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --vu1-mpg-cycles=2500 <br /> --ee-cycle-scalar=1.3<br /> --iop-cycle-scalar=1.3<br /> <br /> #Fix all graphics and improve frame-rate. Needs further performance adjustment for very wide areas.&lt;/pre&gt; <br /> <br /> ====Tales of Destiny: Directors Cut====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLPS-25842, SLPS-25841, SCKA-20119<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_213.86<br /> <br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> <br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> <br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> <br /> #choral castle soft lock fix<br /> <br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL Versions<br /> <br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SCES-52758 ONLY!<br /> <br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> <br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> ====Timesplitters====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> ====Tomb Raider: Anniversary====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_215.55<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;SLES_539.08<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> <br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=283877 Talk:PS2 Classics Emulator Compatibility List 2021-12-16T15:59:16Z <p>162.199.155.139: /* Ape Escape: Pumped &amp; Primed */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> '''''Conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_208.51<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_504.10<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> '''''conf file'''''<br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.46<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_540.41<br /> <br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> <br /> #emu used=GTA 3 v1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Ape Escape: Pumped &amp; Primed====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --cop2-no-clamping=1<br /> --vu1-mpg-cycles=250<br /> #Fix for flickering textures&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;pre&gt;--emu used=jakx v2<br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> <br /> --Fix game frame rate<br /> eeObj.WriteMem32(0x3816e0,0x10000025) -- NTSC ONLY!!<br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_510.44 / SLES_529.68<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_204.97<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_200.71<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> <br /> '''''*Alternate fix Jak emus'''''<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> <br /> &lt;pre&gt;<br /> --DOA 2 Hardcore NTSC US<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x0021b63c,0x3c014534) -- Widescreen<br /> eeObj.WriteMem32(0x002b06ec,0x24060000) -- Fixes game hanging on boot.<br /> <br /> iopObj.WriteMem32(0x001D77E4,0x27C40010) --fixes music/sound effects<br /> iopObj.WriteMem32(0x001D77E8,0x0C0032B7) --fixes music/sound effects <br /> iopObj.WriteMem32(0x001D77EC,0x00000000) --fixes music/sound effects <br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.PadSetLightBar(0,255,200,250)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Def Jam Vendetta====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-21397<br /> <br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> <br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Ephemeral Fantasia™ ====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> --framelimit-mode=normal<br /> <br /> --vu1-no-clamping=0<br /> <br /> #Fixes missing character/world parts.&lt;/pre&gt;<br /> <br /> ====Everblue 2====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_513.81<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x230b68, 0x4be503bc, 0x4b0c211c)<br /> eeInsnReplace(0x230b6c, 0x4b0c211c, 0x4be503bc)<br /> eeInsnReplace(0x230b84, 0x4be603bc, 0x4bc0295c)<br /> eeInsnReplace(0x230b88, 0x4bc0295c, 0x4be603bc)<br /> eeInsnReplace(0x230ba0, 0x4be703bc, 0x4bc0319c)<br /> eeInsnReplace(0x230ba4, 0x4bc0319c, 0x4be703bc)<br /> eeInsnReplace(0x230bbc, 0x4be803bc, 0x4bc039dc)<br /> eeInsnReplace(0x230bc0, 0x4bc039dc, 0x4be803bc)<br /> eeInsnReplace(0x230bd8, 0x4be903bc, 0x4bc0421c)<br /> eeInsnReplace(0x230bdc, 0x4bc0421c, 0x4be903bc)<br /> eeInsnReplace(0x230bf4, 0x4bea03bc, 0x4bc04a5c)<br /> eeInsnReplace(0x230bf8, 0x4bc04a5c, 0x4bea03bc)<br /> eeInsnReplace(0x230c10, 0x4beb03bc, 0x4bc0529c)<br /> eeInsnReplace(0x230c14, 0x4bc0529c, 0x4beb03bc)<br /> <br /> #Missing textures fix&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_210.98<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_530.20<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> <br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> #God Of War EU<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> local gsObj = getGsObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) removes corrupted lines around the objects when use --gs-uprender<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Ice Age 2 Meltdown====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.07<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x2feb80, 0x27bdff70, 0x27bdfee0)<br /> eeInsnReplace(0x2febbc, 0x27bd0090, 0x27bd0120)<br /> <br /> #fix for company logo freeze.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang. <br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=1<br /> <br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-override-small-tri-area=1<br /> <br /> --vif1-instant-xfer=0<br /> <br /> --ee-cycle-scalar=1.8<br /> --ee-sif1-cycle-scalar=1.8<br /> --iop-cycle-scalar=0.8<br /> --iop-sif1-cycle-scalar=1.5<br /> <br /> --vu1-di-bit=0<br /> --vu-t-bit=1 <br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(2.3)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 600 <br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1) <br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting --gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> &lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLES_543.22<br /> <br /> &lt;pre&gt; <br /> --host-audio-latency=2.77<br /> --verbose-cdvd-reads=700<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=smooth<br /> --gs-optimize-30fps=1 <br /> <br /> --fpu-accurate-range=0x150000,0x170000 # Fix loading freeze, needs to be improved<br /> <br /> --ee-cycle-scalar=1.36<br /> --vu1-mpg-cycles=1200<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS-21065<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> --Speed Fix&lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> <br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_200.64<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> '''''conf file'''''<br /> <br /> All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_207.21<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> <br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Radiata Stories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu-hack-triace=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Mandatory triace fix for boot crash and fix for uncommon glitches like outlines in Jack's face during specific cutscenes.&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_204.71<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> <br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> &lt;br&gt;SCAJ_200.16<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> <br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> <br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Suikoden III====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-20387<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --vu1-mpg-cycles=2500 <br /> --ee-cycle-scalar=1.3<br /> --iop-cycle-scalar=1.3<br /> <br /> #Fix all graphics and improve frame-rate. Needs further performance adjustment for very wide areas.&lt;/pre&gt; <br /> <br /> ====Tales of Destiny: Directors Cut====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLPS-25842, SLPS-25841, SCKA-20119<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_213.86<br /> <br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> <br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> <br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> <br /> #choral castle soft lock fix<br /> <br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL Versions<br /> <br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SCES-52758 ONLY!<br /> <br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> <br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> ====Timesplitters====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> ====Tomb Raider: Anniversary====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_215.55<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;SLES_539.08<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> <br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=283681 Talk:PS2 Classics Emulator Compatibility List 2021-11-12T16:06:39Z <p>162.199.155.139: /* God Of War */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> '''''Conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_208.51<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_504.10<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> '''''conf file'''''<br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.46<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SCES_540.41<br /> <br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> <br /> #emu used=GTA 3 v1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_510.44 / SLES_529.68<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_204.97<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_200.71<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> <br /> '''''*Alternate fix Jak emus'''''<br /> <br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> <br /> &lt;pre&gt;<br /> --DOA 2 Hardcore NTSC US<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x0021b63c,0x3c014534) -- Widescreen<br /> eeObj.WriteMem32(0x002b06ec,0x24060000) -- Fixes game hanging on boot.<br /> <br /> iopObj.WriteMem32(0x001D77E4,0x27C40010) --fixes music/sound effects<br /> iopObj.WriteMem32(0x001D77E8,0x0C0032B7) --fixes music/sound effects <br /> iopObj.WriteMem32(0x001D77EC,0x00000000) --fixes music/sound effects <br /> <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.PadSetLightBar(0,255,200,250)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Def Jam Vendetta====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-21397<br /> <br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> <br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Ephemeral Fantasia™ ====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --host-display-mode=16:9<br /> --framelimit-mode=normal<br /> <br /> --vu1-no-clamping=0<br /> <br /> #Fixes missing character/world parts.&lt;/pre&gt;<br /> <br /> ====Everblue 2====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_513.81<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x230b68, 0x4be503bc, 0x4b0c211c)<br /> eeInsnReplace(0x230b6c, 0x4b0c211c, 0x4be503bc)<br /> eeInsnReplace(0x230b84, 0x4be603bc, 0x4bc0295c)<br /> eeInsnReplace(0x230b88, 0x4bc0295c, 0x4be603bc)<br /> eeInsnReplace(0x230ba0, 0x4be703bc, 0x4bc0319c)<br /> eeInsnReplace(0x230ba4, 0x4bc0319c, 0x4be703bc)<br /> eeInsnReplace(0x230bbc, 0x4be803bc, 0x4bc039dc)<br /> eeInsnReplace(0x230bc0, 0x4bc039dc, 0x4be803bc)<br /> eeInsnReplace(0x230bd8, 0x4be903bc, 0x4bc0421c)<br /> eeInsnReplace(0x230bdc, 0x4bc0421c, 0x4be903bc)<br /> eeInsnReplace(0x230bf4, 0x4bea03bc, 0x4bc04a5c)<br /> eeInsnReplace(0x230bf8, 0x4bc04a5c, 0x4bea03bc)<br /> eeInsnReplace(0x230c10, 0x4beb03bc, 0x4bc0529c)<br /> eeInsnReplace(0x230c14, 0x4bc0529c, 0x4beb03bc)<br /> <br /> #Missing textures fix&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_210.98<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;br&gt;SLES_530.20<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> <br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> #God Of War EU<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> local gsObj = getGsObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) removes corrupted lines around the objects when use --gs-uprender<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Ice Age 2 Meltdown====<br /> '''''LUA file'''''<br /> <br /> &lt;br&gt;SLUS_213.07<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> eeInsnReplace(0x2feb80, 0x27bdff70, 0x27bdfee0)<br /> eeInsnReplace(0x2febbc, 0x27bd0090, 0x27bd0120)<br /> <br /> #fix for company logo freeze.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;'''''LUA file'''''<br /> <br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang. <br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> <br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--fpu-no-clamping=1<br /> <br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;<br /> --gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> --gs-override-small-tri-area=1<br /> <br /> --vif1-instant-xfer=0<br /> <br /> --ee-cycle-scalar=1.8<br /> --ee-sif1-cycle-scalar=1.8<br /> --iop-cycle-scalar=0.8<br /> --iop-sif1-cycle-scalar=1.5<br /> <br /> --vu1-di-bit=0<br /> --vu-t-bit=1 <br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(2.3)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local thresholdArea = 600 <br /> <br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(1) <br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting --gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> &lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLES_543.22<br /> <br /> &lt;pre&gt; <br /> --host-audio-latency=2.77<br /> --verbose-cdvd-reads=700<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=smooth<br /> --gs-optimize-30fps=1 <br /> <br /> --fpu-accurate-range=0x150000,0x170000 # Fix loading freeze, needs to be improved<br /> <br /> --ee-cycle-scalar=1.36<br /> --vu1-mpg-cycles=1200<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS-21065<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> --Speed Fix&lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> <br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_200.64<br /> <br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> '''''conf file'''''<br /> <br /> All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_207.21<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> <br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Radiata Stories====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--vu-hack-triace=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> <br /> #Mandatory triace fix for boot crash and fix for uncommon glitches like outlines in Jack's face during specific cutscenes.&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_204.71<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> <br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> &lt;br&gt;SCAJ_200.16<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> <br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> <br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> <br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> <br /> --gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Suikoden III====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS-20387<br /> <br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --vu1-mpg-cycles=2500 <br /> --ee-cycle-scalar=1.3<br /> --iop-cycle-scalar=1.3<br /> <br /> #Fix all graphics and improve frame-rate. Needs further performance adjustment for very wide areas.&lt;/pre&gt; <br /> <br /> ====Tales of Destiny: Directors Cut====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLPS-25842, SLPS-25841, SCKA-20119<br /> <br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SLUS_213.86<br /> <br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> <br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> <br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> <br /> #choral castle soft lock fix<br /> <br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;PAL Versions<br /> <br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;SCES-52758 ONLY!<br /> <br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> <br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> ====Timesplitters====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> ====Tomb Raider: Anniversary====<br /> '''''LUA'''''<br /> <br /> &lt;br&gt;SLUS_215.55<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> &lt;br&gt;SLES_539.08<br /> <br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All Versions<br /> <br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> '''''conf file'''''<br /> <br /> &lt;br&gt;All versions<br /> <br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> <br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282383 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T18:19:37Z <p>162.199.155.139: /* Dead or Alive 2: Hardcore */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> *Alternate fix Jak emus(LUA)<br /> <br /> &lt;pre&gt;<br /> --DOA 2 Hardcore NTSC US<br /> <br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> local iopObj = getIOPObject()<br /> <br /> local patcher = function()<br /> <br /> eeObj.WriteMem32(0x0021b63c,0x3c014534) -- Widescreen<br /> eeObj.WriteMem32(0x002b06ec,0x24060000) -- Fixes game hanging on boot.<br /> <br /> iopObj.WriteMem32(0x001D77E4,0x27C40010)<br /> iopObj.WriteMem32(0x001D77E8,0x0C0032B7) <br /> iopObj.WriteMem32(0x001D77EC,0x00000000) <br /> end<br /> <br /> emuObj.AddVsyncHook(patcher)<br /> <br /> emuObj.PadSetLightBar(0,255,200,250)<br /> emuObj.SetDisplayAspectWide()<br /> gsObj.SetDeinterlaceShift(0) <br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282382 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T18:12:10Z <p>162.199.155.139: /* Ace Combat 4 */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> '''''Conf file'''''<br /> &lt;br&gt;<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> <br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282381 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T18:10:34Z <p>162.199.155.139: /* 24 The Game */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> # &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282380 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T18:10:16Z <p>162.199.155.139: /* 24 The Game */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> # Fixed lags issue.<br /> &lt;JAK v2emu Used&gt;<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282379 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:50:55Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Area 51====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=EdgeSmooth<br /> <br /> --ee-cycle-scalar=3.11<br /> --iop-cycle-scalar=0.58<br /> <br /> --vu1-mpg-cycles=1650<br /> --vu0-mpg-cycles=1650<br /> <br /> --host-audio-latency=2.7 <br /> <br /> --host-vsync=1<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Speed improvement&lt;/pre&gt;<br /> <br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282378 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:49:22Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ==== X-Men Legends====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> --host-audio-latency=3.01&lt;/pre&gt;<br /> <br /> ==== X-Men Legends II====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --vu1=jit-sync<br /> <br /> --vu1-mpg-cycles=2050<br /> --vu0-mpg-cycles=2050<br /> <br /> --ee-cycle-scalar=2.32<br /> --iop-cycle-scalar=2.32<br /> <br /> --host-audio-latency=3.01<br /> <br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282377 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:46:11Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Crash Nitro Kart====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync #fixes black screen after ps2 logo<br /> <br /> --vu0-di-bits=0 #eliminates micro-freezes during races<br /> --vu1-di-bits=0 #eliminates micro-freezes during races<br /> --ee-cycle-scalar=2.0<br /> --ee-sif0-cycle-scalar=2.11<br /> --iop-cycle-scalar=2.0<br /> --host-audio-latency=2.57<br /> --vu1-mpg-cycles=424<br /> --vu0-mpg-cycles=424<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> &lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282376 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:42:45Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Van Helsing====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=edgesmooth<br /> <br /> --vu1-mpg-cycles=358<br /> --vu0-mpg-cycles=358<br /> <br /> --ee-cycle-scalar=2.8 <br /> --iop-cycle-scalar=2.8 <br /> <br /> --host-audio-latency=1.511<br /> <br /> #Fix for performance issues.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282375 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:40:51Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====Spider-Man 3 ====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-di-bits=0<br /> --vu1-di-bits=0<br /> <br /> --ee-cycle-scalar=2.21 <br /> --iop-cycle-scalar=2.1 <br /> <br /> --vu1-mpg-cycles=310<br /> --vu0-mpg-cycles=310<br /> <br /> --host-audio-latency=2.21<br /> <br /> #Fix for slowdown and micro-freezes&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282374 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:38:12Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====WinBack: Covert Operations====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> <br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282373 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:36:02Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;&lt;/pre&gt;<br /> <br /> ====Timesplitters====<br /> <br /> &lt;br&gt;CLI<br /> <br /> &lt;pre&gt;—vu1=jit-sync <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282372 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:30:49Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Mafia====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> <br /> #Fix.&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282371 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:28:15Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 2====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --gs-progressive=1<br /> <br /> #Fixes missing characters.&lt;/pre&gt;<br /> <br /> ====Soul Calibur 3====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif1-instant-xfer=0<br /> --ee-cycle-scalar=1.4<br /> --iop-cycle-scalar=2.1<br /> --vu1-mpg-cycles=190<br /> --framelimiter=1<br /> --framelimit-fps=60.0<br /> --framelimit-scalar=2<br /> --host-vsync=60<br /> <br /> #Fixes missing characters, corrupted graphics and speed correction.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282370 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:24:00Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====Second Sight====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fix for black screen after ps2 logo and graphical glitches.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282369 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:21:48Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Eternal Poison====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> --vif1-instant-xfer=0<br /> <br /> #Fixes black screen after ps2 logo and graphical glitches&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282368 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:19:12Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Def Jam Vendetta====<br /> <br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu-xgkick-delay=0.58<br /> <br /> #Fix for missing character models/textures<br /> <br /> &lt;/pre&gt;<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282367 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:15:21Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Mortal Kombat - Shaolin Monks====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--iop-cycle-scalar=0.8<br /> --framelimit-fps=2.0<br /> --host-vsync=1<br /> --vif1-instant-xfer=0<br /> --gs-optimize-30fps=1<br /> --host-audio-latency=0.3<br /> <br /> #Fix for graphical glitches, menu speed and audio.&lt;/pre&gt;<br /> <br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282366 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:12:28Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Hunter the Reckoning Wayward====<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> #--vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> #--vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #fix for graphical glitches.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282365 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:10:17Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Urban Reign====<br /> All<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vif-ignore-invalid-cmd=0<br /> --vif1-ignore-cmd-ints=1<br /> --vif1-instant-xfer=0<br /> --vu1=jit-sync<br /> <br /> #Black screen after ps2 logo and loading screen fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282364 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:08:01Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Steambot Chronicles====<br /> ALL<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--fpu-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> --vu0-opt-flags=1<br /> --vu1-opt-flags=1<br /> --cop2-opt-flags=1<br /> --vu0-const-prop=0<br /> --vu1-const-prop=0<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu0-jr-cache-policy=newprog<br /> --vu0-jalr-cache-policy=newprog<br /> <br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282363 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:04:54Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Jaws Unleashed====<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x006758a8,0x03e42000)<br /> eeObj.WriteMem32(0x006758b8,0x800026fc)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> #fix for loading screen hang.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282362 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T17:01:04Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====MTV's Celebrity Deathmatch====<br /> All versions<br /> &lt;br&gt;CLI<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #Fix for black-screen after ps2 logo.&lt;/pre&gt;<br /> <br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=282361 Talk:PS2 Classics Emulator Compatibility List 2021-02-26T16:56:09Z <p>162.199.155.139: /* Custom PS2emu Configuration Files */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpjk-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====10000 Bullets====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1=jit-sync<br /> <br /> # Fixes Blackscreen after PS2 Logo.<br /> # Jak v1 used<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Gradius V====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1=jit-sync<br /> <br /> #fix for blackscreen after PS2 Logo.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Manhunt 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.7<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=900<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --gs-optimize-30fps=1<br /> --framelimit-fps=2.0<br /> --ee-cycle-scalar=0.8<br /> --gs-uprender=none<br /> <br /> # Fixed framerate dip issue using Jak v2 emulator (NOTE: disabling uprender fixes fps drop to some extent and corrupted lines on shadows, however in NTSC Version, there will be a black screen glitch in cutscenes only!!).<br /> &lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;<br /> apiRequest(0.1)<br /> <br /> -- Fix lags and slowdowns<br /> <br /> eeInsnReplace(0x370DA8, 0x00000000, 0x24020001)<br /> <br /> # Minor framerate issue exists in NTSC version. PAL version works fine with no pain.<br /> &lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====Need for Speed Underground 2====<br /> (SLUS-21065)<br /> &lt;br&gt;LUA<br /> <br /> &lt;pre&gt;apiRequest(1.0)<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local patcher = function()<br /> eeObj.WriteMem32(0x001D77C8,0x100000B4)<br /> end<br /> emuObj.AddVsyncHook(patcher)<br /> <br /> &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> SCAJ_200.16<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1485C4,0x148724<br /> #Fix &lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====SSX====<br /> <br /> &lt;br&gt;'''''CLI'''''<br /> &lt;pre&gt;<br /> <br /> --iop-cycle-scalar=1.8<br /> --host-audio-latency=1.1<br /> <br /> #Use JakX v2 emu&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====The Simpsons - Hit &amp; Run (NTSC-U)====<br /> <br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --gs-motion-factor=25<br /> --ee-cycle-scalar=3.6<br /> --iop-cycle-scalar=3.6<br /> --ee-regalloc-scalar=RW<br /> --gs-progressive=1<br /> <br /> #&lt;use kinetica v2 emu&gt;<br /> <br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.<br /> <br /> == Potential THPS Fix ==<br /> <br /> ''FMV's skip hex code, initial value 4000838C 0800E003 0000628C 00000000, changed to 4000838C 0800E003 01000224 00000000''<br /> <br /> Trying to patch the the game executable using this code with '''elf search tool and ps2 patch engine''' should fix the iso to skip all fmvs and work, this is how you can get some ps2 games to run on ps2 thats forced into progressive output as the videos are likely locked as interlace. The only other way i can think of is if theres a way to force field flipping on their emulator like OPL can do. Someone with a compatible console should try it, im on 7.02 so I cant</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=282207 PS2 Classics Emulator Compatibility List 2021-01-27T15:20:58Z <p>162.199.155.139: /* M */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line.<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || ? || ? || --vu1=jit-sync allows game to boot past PS2 logo.<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{minorissues}} || ? || When you first load missions it will drop frames but it will pick up in seconds to play normally.<br /> |-<br /> | 7 Sins ||{{playable}}|| ? || ?||<br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details.<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{minorissues}} || {{notavailable}} || MAJOR lag and audio distortion during cutscenes and the initial logo roll-call. Very minor lag during actual game (maybe one to three frames dropped every 10 minutes) <br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || ? || No noticeable issues, plays great.<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{unplayable}} || ? || Massive performance issues. Roguev2 is 1-2fps, Jakv2 is more like 50% but still very much unplayable.<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues.<br /> |-<br /> | Army Men: RTS || ? || {{unplayable}} || ? || Doesn't even load the game, only the background image.<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{unplayable}} || ? || Freezes on the pic1.png.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{minorissues}} || ? || ? || Menu entries are glitched. Except that, everything works fine<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{notavailable}} || {{Unplayable}} || {{notavailable}} || <br /> |-<br /> | Baroque || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||?|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? ||<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{playable}} || Has English patch<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{unplayable}} || ? || Freezes at the start of first level.<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bouncer, The || ? || {{playable}} || ? || NTSC-U tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance.<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} ||<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || ? || {{playable}} || ? || <br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{playable}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_53158 Crashes after ps2 logo&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable &lt;/span&gt;<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51523 Crashes on game loading screen&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect &lt;/span&gt;<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issue with squad nothing that really affects gameplay, audio stutters here and there<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{minorissues}} || ? || {{notavailable}} || Character models are flickering, else works fine<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{unplayable}} || {{unplayable}} || ? || Game doesn't boot<br /> |- <br /> | Crash of the Titans || ? || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds.<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{unplayable}} || ? || Massive, substantial, graphical corruption. Missing polygons, missing textures, overbloom light sources.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms.<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || ? || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering,<br /> |-<br /> | Digimon Rumble Arena 2 || {{Unplayable}} || ? || ? || Menu Screen is bugged. FPU_Compare_Hack from PCSX2 is needed but not available for PS4.&lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || ? || Low frame rate<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 || ? || {{Playable}} || {{majorissues}} || Game freeze in subsequent levels.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || ?|| Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{playable}} || {{playable}} || {{playable}} || Tested with Jak v2 emulator, however played the story mode and no issue of freezing as per now. Further tests are welcome<br /> |-<br /> | Dragon Ball Z: Sagas || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{unplayable}} || ? || ? || Incredible low performance, estimate around 50% native speed. A lot of audio stutter and scratching due to slow speed.<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || ? || {{majorissues}} || ? || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring<br /> |-<br /> | Driver - Parallel Lines || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:Red&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{unplayable}} || ? || --vu1=jit-sync allows game to boot past PS2 logo. Game has severe graphical issues making it unplayable<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues<br /> |-<br /> | Everblue 2 || ? || {{minorissues}} || ? || Some geometry/terrain pop-in at edges of screen, known PCSX2 issue. Game plays absolutely fine regardless.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 Logo.<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || Really bad slowdown, graphics appear to render perfectly.<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan]<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan]<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan]<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || ? || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || ? || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN &lt;span style=&quot;background:#FF1000&quot;&gt;although the English patched version won't load past Pic1.png splash screen.)&lt;/span&gt;<br /> |-<br /> | Final Fight: Streetwise || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || ? || ? || <br /> |-<br /> | FlatOut 2|| {{unplayable}} || ? || ? || Game menus are ok, but very low FPS during game make game unplayable<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51467 Crashes after PS2 logo.&lt;/span&gt; &lt;span style=&quot;background:#90FF90&quot;&gt; SLUS_20658 Works with no issues &lt;/span&gt;<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{majorissues}} || ? || It looks very blurry. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || ? || ? || <br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{majorissues}} || ? || Missing character models during gameplay.Major graphical issues.Tested with Roguev1 emu, Jak emu &amp; KOF98 emu<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || ? || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{majorissues}} || ? || Work, but low fps in menu and game (1-2fps)<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || ? || {{unplayable}} || ? || Black screen after PS2 logo with Jak emu.<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{minorissues}} || {{unplayable}} || ? || SCES_52156 Game Crashes if you select 60hz or progressive scan as a refresh rate but works well on 50hz does have some issues with the skybox glitching or not loading correctly. Same glitch as PS3, stuck with the church ladder. NTSC versions freezes after publisher logos.<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{playable}} || {{playable}} || Requires MVTU to be disabled, vu1=jit-sync disables this in PS2emu.<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || The only minor graphical issue is the ghost cars aren't transparent and are solid.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || ? || {{unplayable}} || ? || Ok framerate when pursuing the map, but once a gun fight breaks out, the fps dips.<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{unplayable}} || ? || ? || Very low framerate. Unplayable<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in psxc2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller.<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || ? || the game stop at black screen after the loading of the title screen ends.<br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Headhunter || {{minorissues}} || {{majorissues}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLUS_20416 loads ok and runs without any fps drops but the screen and textures are heavily glitched making it unenjoyable to play.&lt;/span&gt;<br /> |-<br /> | Headhunter Redemption || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{majorissues}} || ? || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons.<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | PAL Custom Image doesn't boot past the PS2 logo <br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || ? || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in<br /> |-<br /> | Jaws Unleashed || ? || {{unplayable}} || ? || Freeze at loading screen before main menu<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || ? || Blackscreen after first intro video. Can still hear audio during blackscreen <br /> |-<br /> | James Bond 007: Everything or Nothing || ? || {{majorissues}} || ? || Low framerate &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || ? || {{majorissues}} || ? || Framerate slowdowns throughout the opening level. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater’s pro Surfer || {{playable}} || ? || ? || Works fine. Bully emu used<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{minorissues}} || {{notavailable}} || PAL works with Bully emu. Need to test with NTSC.<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || ? || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || ? || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages.<br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching.<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || --vu1=jit-sync allows game to boot, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Also requires EE Rounding Mode to fix gameplay issues.<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{unplayable}} || {{unplayable}} || ? || you cannot finish 1st stage due to misplaced items even with the config fix!! Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]'').<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{unplayable}} || ? || Game immediately freezes within seconds of starting a bout.<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || ? || {{unplayable}} || {{majorissues}} || Game immediately freezes when starting a new game. South Korean Ver(NTSC-J) issue = Yin Phase freezes when first starting. But Yang Phase playable.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> |Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> |Leisure Suit Larry: Magna Cum Laude || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || ? || {{majorissues}} || ? || Playable, but game does not reset after death. <br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Looney Tunes: Space Race || ? || {{minorissues}} || ? || Playable, with minor graphic issues. <br /> |-<br /> | The Lord of the Rings: Aragorn's Quest || {{playable}} || ? || ? || No known issues<br /> |-<br /> | The Lord of the Rings: The Fellowship of the Ring || {{minorissues}} || {{minorissues}} || ? || Small FPS drops in level with smoke or fog.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{unplayable}} || ? || After intro video blackscreen<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{playable}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]]. &lt;span style=&quot;color:white; background:Red&gt; Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.&lt;/span&gt;<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{majorissues}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{playable}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || {{playable}} || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || ? || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || ? || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging...<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{playable}} || ? || ? || No noticeable issues, works great.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || ? || {{playable}} || ? || No noticeable issues, seems to work perfect.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || ? || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. <br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{majorissues}} || ? || Boots using StarOcean3 Emu. However the game has graphical issues and flickering textures<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || ? || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MVP Baseball 2005 || ? || {{playable}} || ? || No known issues<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || ? || {{playable}} || ? || <br /> |-<br /> | Namco Museum - 50th Anniversary || ? || {{playable}} || ? || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || ? || {{playable}} || ? || Didn't notice or encounter any issues.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu)<br /> |-<br /> | Naruto: Ultimate Ninja 3 || ? || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || ? || Flickering issues.<br /> |-<br /> | NASCAR: Dirt to Daytona || {{notavailable}} || {{playable}} || {{notavailable}} || Works great.<br /> |-<br /> | NASCAR: Thunder 2004 || ? || {{minorissues}} || ? || Very playable but some minor graphical issues and some flickering during gameplay.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> |-<br /> | Need for Speed: Most Wanted &lt;span style=&quot;background:#FFAA00&quot;&gt;(Black Edition)&lt;/span&gt; || {{majorissues}} || {{majorissues}} || {{majorissues}} || &lt;span style=&quot;background:#FFAA00&quot;&gt;(Major reflections glitches with minor sound stuttering. Total framedrop on open areas)&lt;/span&gt;<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{unplayable}} || {{unplayable}} || ? || 1 fps when going in-game. SLUS_21065 same as pal version<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? || <br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || ? || ? || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu.<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak)<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || ? || {{majorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{unplayable}} || ? || Freezes on pic1.png<br /> |-<br /> | Pac-Man World 2 || ? || {{minorissues}} || ? || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level.<br /> |-<br /> | Pac-Man World 3 || ? || {{unplayable}} || ? || Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, Roguev2, KoF98, no go on any of them.<br /> |-<br /> | Pac-Man World Rally || ? || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Pro Evolution Soccer 2009 || ? || {{playable}} || ? || Absolutely fine. No issues noted.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || ? || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. Known in Japan as Puyo Puyo Fever.<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. <br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || ? || {{minorissues}} || ? || Requires TriAce hack (--vu-hack-triace=1) has minor-to-major slowdown in some scenes as well as a slight blurring from what looks like a broken depth of field effect.<br /> (I've been playing through the game just fine, no major slow downs that prevent the game from being enjoyed. Slow down only really happened during some cut scenes and areas where lots of characters are animating at once. It's very playable in my opinion, almost done with the game. Playing on PS4 original F.W 6.72 Changed issues from major to minor because the game can be completed) <br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || ? || ? || Crashes when going in-game, menu very laggy<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || ? || ? ||<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Red Star, The || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || ? || ? || Very poor performance.<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable }} || ? || Works fine on first mission don’t know about rest.<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || ? || {{majorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> |SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 logo, multiple emulators tried.<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20:&lt;br&gt;Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22:&lt;br&gt;Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || ? || ? || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || ? || ? || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{minorissues}} || {{majorissues}} || ? || Some graphical glitches, characters disappears sometimes, but playable. [SLUS20347 very low out-of-combat framerate, in-combat runs smooth but character slowly deforms and vanishes over time]<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{playable}} || {{minorissues}} || ? || Pal version Works great using JakEmuv1! US version: Cutscenes are a bit choppy which cause audio desync<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || ? || {{minorissues}} || ? || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || ? || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || ? || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{notavailable}} || Black screen.<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{unplayable}} || {{unplayable}} || {{unplayable}} || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is massive. Also has camera issues, which I believe are remedied with CLAMPS on PCSX2.<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{unplayable}} || {{unplayable}} || ? || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is worse than SC2. Very small amounts of scenery, no character models, just weapons. <br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || ? || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult.<br /> |-<br /> | Spider-Man 3 || {{majorissues}} || {{majorissues}} || ? || Very low fps, runs at about half speed, some slightly broken effects.<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || ? || {{unplayable}} || ? || Freezes after PS2 logo.<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{unplayable}} || ? || Massive performance and graphical issues. <br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{playable}} || {{unplayable}} || ? || NTSC version freezes in the main menu, PAL version don't works fine, the train apear in perpendicular.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{unplayable}} || {{unplayable}} || ? || Massive graphics corruption, flickering models, spiky polygon syndrome.<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || ? || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive: Eve of Destruction (Driven to Destruction) || ? || {{minorissues}} || {{notavailable}} || Slight frame drop during heavy particle effects, otherwise fine.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{unplayable}} || ? || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || ? || Only works with Jak emu<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || ? || ? || Black screen after first cutscene, can't go in-menu<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || ? || Minor frame rate issues on first level, else works fine<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> | Tourist Trophy || {{unplayable}} || ? || ? || small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || ? || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:Red&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all.<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || ? || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{unplayable}} || {{unplayable}} || {{unplayable}} || Jak emulator gets further than before and players are only able to access the main menu, though the game still freezes before starting the first mission. Rogue Emu refuses even to load and freezes on black screen after PS2 Logo. Same issue persists on Korean and Japanese versions. Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{minorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area. No significant issue as of now, will continued to monitor.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches.<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{notavailable}} || {{playable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Roguev1. Widescreen patch causes graphics to not render.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> |Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || <br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> |Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> |Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || ? || {{playable}} || ? ||<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || ? || Seems to work fine, <br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. <br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=282186 PS2 Classics Emulator Compatibility List 2021-01-21T16:54:33Z <p>162.199.155.139: /* G */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line.<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || ? || ? || --vu1=jit-sync allows game to boot past PS2 logo.<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{minorissues}} || ? || When you first load missions it will drop frames but it will pick up in seconds to play normally.<br /> |-<br /> | 7 Sins ||{{playable}}|| ? || ?||<br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details.<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{minorissues}} || {{notavailable}} || MAJOR lag and audio distortion during cutscenes and the initial logo roll-call. Very minor lag during actual game (maybe one to three frames dropped every 10 minutes) <br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || ? || No noticeable issues, plays great.<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{unplayable}} || ? || Massive performance issues. Roguev2 is 1-2fps, Jakv2 is more like 50% but still very much unplayable.<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues.<br /> |-<br /> | Army Men: RTS || ? || {{unplayable}} || ? || Doesn't even load the game, only the background image.<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{unplayable}} || ? || Freezes on the pic1.png.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{minorissues}} || ? || ? || Menu entries are glitched. Except that, everything works fine<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{notavailable}} || {{Unplayable}} || {{notavailable}} || <br /> |-<br /> | Baroque || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||?|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? ||<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{playable}} || Has English patch<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{unplayable}} || ? || Freezes at the start of first level.<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bouncer, The || ? || {{playable}} || ? || NTSC-U tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance.<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} ||<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || ? || {{playable}} || ? || <br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{playable}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_53158 Crashes after ps2 logo&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable &lt;/span&gt;<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51523 Crashes on game loading screen&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect &lt;/span&gt;<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issue with squad nothing that really affects gameplay, audio stutters here and there<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{minorissues}} || ? || {{notavailable}} || Character models are flickering, else works fine<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{unplayable}} || {{unplayable}} || ? || Game doesn't boot<br /> |- <br /> | Crash of the Titans || ? || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds.<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{unplayable}} || ? || Massive, substantial, graphical corruption. Missing polygons, missing textures, overbloom light sources.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms.<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || ? || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering,<br /> |-<br /> | Digimon Rumble Arena 2 || {{Unplayable}} || ? || ? || Menu Screen is bugged. FPU_Compare_Hack from PCSX2 is needed but not available for PS4.&lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || ? || Low frame rate<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 || ? || {{Playable}} || {{majorissues}} || Game freeze in subsequent levels.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || ?|| Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{playable}} || {{playable}} || {{playable}} || Tested with Jak v2 emulator, however played the story mode and no issue of freezing as per now. Further tests are welcome<br /> |-<br /> | Dragon Ball Z: Sagas || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{unplayable}} || ? || ? || Incredible low performance, estimate around 50% native speed. A lot of audio stutter and scratching due to slow speed.<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || ? || {{majorissues}} || ? || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring<br /> |-<br /> | Driver - Parallel Lines || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:Red&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{unplayable}} || ? || --vu1=jit-sync allows game to boot past PS2 logo. Game has severe graphical issues making it unplayable<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues<br /> |-<br /> | Everblue 2 || ? || {{minorissues}} || ? || Some geometry/terrain pop-in at edges of screen, known PCSX2 issue. Game plays absolutely fine regardless.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 Logo.<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || Really bad slowdown, graphics appear to render perfectly.<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan]<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan]<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan]<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || ? || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || ? || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN &lt;span style=&quot;background:#FF1000&quot;&gt;although the English patched version won't load past Pic1.png splash screen.)&lt;/span&gt;<br /> |-<br /> | Final Fight: Streetwise || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || ? || ? || <br /> |-<br /> | FlatOut 2|| {{unplayable}} || ? || ? || Game menus are ok, but very low FPS during game make game unplayable<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51467 Crashes after PS2 logo.&lt;/span&gt; &lt;span style=&quot;background:#90FF90&quot;&gt; SLUS_20658 Works with no issues &lt;/span&gt;<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{majorissues}} || ? || It looks very blurry. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || ? || ? || <br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{majorissues}} || ? || Missing character models during gameplay.Major graphical issues.Tested with Roguev1 emu, Jak emu &amp; KOF98 emu<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || ? || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{majorissues}} || ? || Work, but low fps in menu and game (1-2fps)<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || ? || {{unplayable}} || ? || Black screen after PS2 logo with Jak emu.<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{minorissues}} || {{unplayable}} || ? || SCES_52156 Game Crashes if you select 60hz or progressive scan as a refresh rate but works well on 50hz does have some issues with the skybox glitching or not loading correctly. Same glitch as PS3, stuck with the church ladder. NTSC versions freezes after publisher logos.<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{playable}} || {{playable}} || Requires MVTU to be disabled, vu1=jit-sync disables this in PS2emu.<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || The only minor graphical issue is the ghost cars aren't transparent and are solid.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || ? || {{unplayable}} || ? || Ok framerate when pursuing the map, but once a gun fight breaks out, the fps dips.<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{unplayable}} || ? || ? || Very low framerate. Unplayable<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in psxc2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller.<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || ? || the game stop at black screen after the loading of the title screen ends.<br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Headhunter || {{minorissues}} || {{majorissues}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLUS_20416 loads ok and runs without any fps drops but the screen and textures are heavily glitched making it unenjoyable to play.&lt;/span&gt;<br /> |-<br /> | Headhunter Redemption || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{majorissues}} || ? || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons.<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | PAL Custom Image doesn't boot past the PS2 logo <br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || ? || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in<br /> |-<br /> | Jaws Unleashed || ? || {{unplayable}} || ? || Freeze at loading screen before main menu<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || ? || Blackscreen after first intro video. Can still hear audio during blackscreen <br /> |-<br /> | James Bond 007: Everything or Nothing || ? || {{majorissues}} || ? || Low framerate &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || ? || {{majorissues}} || ? || Framerate slowdowns throughout the opening level. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater’s pro Surfer || {{playable}} || ? || ? || Works fine. Bully emu used<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{minorissues}} || {{notavailable}} || PAL works with Bully emu. Need to test with NTSC.<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || ? || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || ? || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages.<br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching.<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || --vu1=jit-sync allows game to boot, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Also requires EE Rounding Mode to fix gameplay issues.<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{unplayable}} || {{unplayable}} || ? || you cannot finish 1st stage due to misplaced items even with the config fix!! Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]'').<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{unplayable}} || ? || Game immediately freezes within seconds of starting a bout.<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || ? || {{unplayable}} || {{majorissues}} || Game immediately freezes when starting a new game. South Korean Ver(NTSC-J) issue = Yin Phase freezes when first starting. But Yang Phase playable.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> |Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> |Leisure Suit Larry: Magna Cum Laude || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || ? || {{majorissues}} || ? || Playable, but game does not reset after death. <br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Looney Tunes: Space Race || ? || {{minorissues}} || ? || Playable, with minor graphic issues. <br /> |-<br /> | The Lord of the Rings: Aragorn's Quest || {{playable}} || ? || ? || No known issues<br /> |-<br /> | The Lord of the Rings: The Fellowship of the Ring || {{minorissues}} || {{minorissues}} || ? || Small FPS drops in level with smoke or fog.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{unplayable}} || ? || After intro video blackscreen<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{playable}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]]. &lt;span style=&quot;color:white; background:Red&gt; Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.&lt;/span&gt;<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{majorissues}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{playable}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || ? || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || ? || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || ? || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging...<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{playable}} || ? || ? || No noticeable issues, works great.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || ? || {{playable}} || ? || No noticeable issues, seems to work perfect.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || ? || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. <br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{majorissues}} || ? || Boots using StarOcean3 Emu. However the game has graphical issues and flickering textures<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || ? || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MVP Baseball 2005 || ? || {{playable}} || ? || No known issues<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || ? || {{playable}} || ? || <br /> |-<br /> | Namco Museum - 50th Anniversary || ? || {{playable}} || ? || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || ? || {{playable}} || ? || Didn't notice or encounter any issues.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu)<br /> |-<br /> | Naruto: Ultimate Ninja 3 || ? || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || ? || Flickering issues.<br /> |-<br /> | NASCAR: Dirt to Daytona || {{notavailable}} || {{playable}} || {{notavailable}} || Works great.<br /> |-<br /> | NASCAR: Thunder 2004 || ? || {{minorissues}} || ? || Very playable but some minor graphical issues and some flickering during gameplay.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> |-<br /> | Need for Speed: Most Wanted &lt;span style=&quot;background:#FFAA00&quot;&gt;(Black Edition)&lt;/span&gt; || {{majorissues}} || {{majorissues}} || {{majorissues}} || &lt;span style=&quot;background:#FFAA00&quot;&gt;(Major reflections glitches with minor sound stuttering. Total framedrop on open areas)&lt;/span&gt;<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{unplayable}} || {{unplayable}} || ? || 1 fps when going in-game. SLUS_21065 same as pal version<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? || <br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || ? || ? || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu.<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak)<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || ? || {{majorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{unplayable}} || ? || Freezes on pic1.png<br /> |-<br /> | Pac-Man World 2 || ? || {{minorissues}} || ? || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level.<br /> |-<br /> | Pac-Man World 3 || ? || {{unplayable}} || ? || Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, Roguev2, KoF98, no go on any of them.<br /> |-<br /> | Pac-Man World Rally || ? || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Pro Evolution Soccer 2009 || ? || {{playable}} || ? || Absolutely fine. No issues noted.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || ? || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. Known in Japan as Puyo Puyo Fever.<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. <br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || ? || {{minorissues}} || ? || Requires TriAce hack (--vu-hack-triace=1) has minor-to-major slowdown in some scenes as well as a slight blurring from what looks like a broken depth of field effect.<br /> (I've been playing through the game just fine, no major slow downs that prevent the game from being enjoyed. Slow down only really happened during some cut scenes and areas where lots of characters are animating at once. It's very playable in my opinion, almost done with the game. Playing on PS4 original F.W 6.72 Changed issues from major to minor because the game can be completed) <br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || ? || ? || Crashes when going in-game, menu very laggy<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || ? || ? ||<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Red Star, The || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || ? || ? || Very poor performance.<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable }} || ? || Works fine on first mission don’t know about rest.<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || ? || {{majorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> |SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 logo, multiple emulators tried.<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20:&lt;br&gt;Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22:&lt;br&gt;Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || ? || ? || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || ? || ? || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{minorissues}} || {{majorissues}} || ? || Some graphical glitches, characters disappears sometimes, but playable. [SLUS20347 very low out-of-combat framerate, in-combat runs smooth but character slowly deforms and vanishes over time]<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{playable}} || {{minorissues}} || ? || Pal version Works great using JakEmuv1! US version: Cutscenes are a bit choppy which cause audio desync<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || ? || {{minorissues}} || ? || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || ? || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || ? || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{notavailable}} || Black screen.<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{unplayable}} || {{unplayable}} || {{unplayable}} || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is massive. Also has camera issues, which I believe are remedied with CLAMPS on PCSX2.<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{unplayable}} || {{unplayable}} || ? || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is worse than SC2. Very small amounts of scenery, no character models, just weapons. <br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || ? || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult.<br /> |-<br /> | Spider-Man 3 || {{majorissues}} || {{majorissues}} || ? || Very low fps, runs at about half speed, some slightly broken effects.<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || ? || {{unplayable}} || ? || Freezes after PS2 logo.<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{unplayable}} || ? || Massive performance and graphical issues. <br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{playable}} || {{unplayable}} || ? || NTSC version freezes in the main menu, PAL version don't works fine, the train apear in perpendicular.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{unplayable}} || {{unplayable}} || ? || Massive graphics corruption, flickering models, spiky polygon syndrome.<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || ? || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive: Eve of Destruction (Driven to Destruction) || ? || {{minorissues}} || {{notavailable}} || Slight frame drop during heavy particle effects, otherwise fine.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{unplayable}} || ? || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || ? || Only works with Jak emu<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || ? || ? || Black screen after first cutscene, can't go in-menu<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || ? || Minor frame rate issues on first level, else works fine<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> | Tourist Trophy || {{unplayable}} || ? || ? || small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || ? || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:Red&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all.<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || ? || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{unplayable}} || {{unplayable}} || {{unplayable}} || Jak emulator gets further than before and players are only able to access the main menu, though the game still freezes before starting the first mission. Rogue Emu refuses even to load and freezes on black screen after PS2 Logo. Same issue persists on Korean and Japanese versions. Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{minorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area. No significant issue as of now, will continued to monitor.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches.<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{notavailable}} || {{playable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Roguev1. Widescreen patch causes graphics to not render.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> |Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || <br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> |Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> |Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || ? || {{playable}} || ? ||<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || ? || Seems to work fine, <br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. <br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=282165 PS2 Classics Emulator Compatibility List 2021-01-15T16:46:58Z <p>162.199.155.139: /* E */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line.<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || ? || ? || --vu1=jit-sync allows game to boot past PS2 logo.<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{minorissues}} || ? || When you first load missions it will drop frames but it will pick up in seconds to play normally.<br /> |-<br /> | 7 Sins ||{{playable}}|| ? || ?||<br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details.<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{minorissues}} || {{notavailable}} || MAJOR lag and audio distortion during cutscenes and the initial logo roll-call. Very minor lag during actual game (maybe one to three frames dropped every 10 minutes) <br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || ? || No noticeable issues, plays great.<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{unplayable}} || ? || Massive performance issues. Roguev2 is 1-2fps, Jakv2 is more like 50% but still very much unplayable.<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues.<br /> |-<br /> | Army Men: RTS || ? || {{unplayable}} || ? || Doesn't even load the game, only the background image.<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{unplayable}} || ? || Freezes on the pic1.png.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{minorissues}} || ? || ? || Menu entries are glitched. Except that, everything works fine<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{notavailable}} || {{Unplayable}} || {{notavailable}} || <br /> |-<br /> | Baroque || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||?|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? ||<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{playable}} || Has English patch<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{unplayable}} || ? || Freezes at the start of first level.<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bouncer, The || ? || {{playable}} || ? || NTSC-U tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance.<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} ||<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || ? || {{playable}} || ? || <br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{playable}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_53158 Crashes after ps2 logo&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable &lt;/span&gt;<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51523 Crashes on game loading screen&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect &lt;/span&gt;<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issue with squad nothing that really affects gameplay, audio stutters here and there<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{minorissues}} || ? || {{notavailable}} || Character models are flickering, else works fine<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{unplayable}} || {{unplayable}} || ? || Game doesn't boot<br /> |- <br /> | Crash of the Titans || ? || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds.<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{unplayable}} || ? || Massive, substantial, graphical corruption. Missing polygons, missing textures, overbloom light sources.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms.<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || ? || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering,<br /> |-<br /> | Digimon Rumble Arena 2 || {{Unplayable}} || ? || ? || Menu Screen is bugged. FPU_Compare_Hack from PCSX2 is needed but not available for PS4.&lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || ? || Low frame rate<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 || ? || {{Playable}} || {{majorissues}} || Game freeze in subsequent levels.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || ?|| Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{playable}} || {{playable}} || {{playable}} || Tested with Jak v2 emulator, however played the story mode and no issue of freezing as per now. Further tests are welcome<br /> |-<br /> | Dragon Ball Z: Sagas || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{unplayable}} || ? || ? || Incredible low performance, estimate around 50% native speed. A lot of audio stutter and scratching due to slow speed.<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || ? || {{majorissues}} || ? || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring<br /> |-<br /> | Driver - Parallel Lines || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:Red&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{majorissues}} || ? || --vu1=jit-sync allows game to boot past PS2 logo. Game has severe graphical issues making it unplayable<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues<br /> |-<br /> | Everblue 2 || ? || {{minorissues}} || ? || Some geometry/terrain pop-in at edges of screen, known PCSX2 issue. Game plays absolutely fine regardless.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 Logo.<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || Really bad slowdown, graphics appear to render perfectly.<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan]<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan]<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan]<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || ? || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || ? || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN &lt;span style=&quot;background:#FF1000&quot;&gt;although the English patched version won't load past Pic1.png splash screen.)&lt;/span&gt;<br /> |-<br /> | Final Fight: Streetwise || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || ? || ? || <br /> |-<br /> | FlatOut 2|| {{unplayable}} || ? || ? || Game menus are ok, but very low FPS during game make game unplayable<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51467 Crashes after PS2 logo.&lt;/span&gt; &lt;span style=&quot;background:#90FF90&quot;&gt; SLUS_20658 Works with no issues &lt;/span&gt;<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{majorissues}} || ? || It looks very blurry. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || ? || ? || <br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{majorissues}} || ? || Missing character models during gameplay.Major graphical issues.Tested with Roguev1 emu, Jak emu &amp; KOF98 emu<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || ? || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{majorissues}} || ? || Work, but low fps in menu and game (1-2fps)<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || ? || {{unplayable}} || ? || Black screen after PS2 logo with Jak emu.<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{minorissues}} || {{unplayable}} || ? || SCES_52156 Game Crashes if you select 60hz or progressive scan as a refresh rate but works well on 50hz does have some issues with the skybox glitching or not loading correctly. Same glitch as PS3, stuck with the church ladder. NTSC versions freezes after publisher logos.<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{unplayable}} || {{playable}} || Requires MVTU to be disabled, doable in PCSX2 but no such option has yet been discovered in PS2emu.<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || The only minor graphical issue is the ghost cars aren't transparent and are solid.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || ? || {{unplayable}} || ? || Ok framerate when pursuing the map, but once a gun fight breaks out, the fps dips.<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{unplayable}} || ? || ? || Very low framerate. Unplayable<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in psxc2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller.<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || ? || the game stop at black screen after the loading of the title screen ends.<br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Headhunter || {{minorissues}} || {{majorissues}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLUS_20416 loads ok and runs without any fps drops but the screen and textures are heavily glitched making it unenjoyable to play.&lt;/span&gt;<br /> |-<br /> | Headhunter Redemption || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{majorissues}} || ? || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons.<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | PAL Custom Image doesn't boot past the PS2 logo <br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || ? || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in<br /> |-<br /> | Jaws Unleashed || ? || {{unplayable}} || ? || Freeze at loading screen before main menu<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || ? || Blackscreen after first intro video. Can still hear audio during blackscreen <br /> |-<br /> | James Bond 007: Everything or Nothing || ? || {{majorissues}} || ? || Low framerate &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || ? || {{majorissues}} || ? || Framerate slowdowns throughout the opening level. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater’s pro Surfer || {{playable}} || ? || ? || Works fine. Bully emu used<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{minorissues}} || {{notavailable}} || PAL works with Bully emu. Need to test with NTSC.<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || ? || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || ? || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages.<br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching.<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || --vu1=jit-sync allows game to boot, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Also requires EE Rounding Mode to fix gameplay issues.<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{unplayable}} || {{unplayable}} || ? || you cannot finish 1st stage due to misplaced items even with the config fix!! Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]'').<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{unplayable}} || ? || Game immediately freezes within seconds of starting a bout.<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || ? || {{unplayable}} || {{majorissues}} || Game immediately freezes when starting a new game. South Korean Ver(NTSC-J) issue = Yin Phase freezes when first starting. But Yang Phase playable.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> |Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> |Leisure Suit Larry: Magna Cum Laude || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || ? || {{majorissues}} || ? || Playable, but game does not reset after death. <br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Looney Tunes: Space Race || ? || {{minorissues}} || ? || Playable, with minor graphic issues. <br /> |-<br /> | The Lord of the Rings: Aragorn's Quest || {{playable}} || ? || ? || No known issues<br /> |-<br /> | The Lord of the Rings: The Fellowship of the Ring || {{minorissues}} || {{minorissues}} || ? || Small FPS drops in level with smoke or fog.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{unplayable}} || ? || After intro video blackscreen<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{playable}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]]. &lt;span style=&quot;color:white; background:Red&gt; Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.&lt;/span&gt;<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{majorissues}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{playable}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || ? || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || ? || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || ? || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging...<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{playable}} || ? || ? || No noticeable issues, works great.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || ? || {{playable}} || ? || No noticeable issues, seems to work perfect.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || ? || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. <br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{majorissues}} || ? || Boots using StarOcean3 Emu. However the game has graphical issues and flickering textures<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || ? || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || ? || {{playable}} || ? || <br /> |-<br /> | Namco Museum - 50th Anniversary || ? || {{playable}} || ? || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || ? || {{playable}} || ? || Didn't notice or encounter any issues.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu)<br /> |-<br /> | Naruto: Ultimate Ninja 3 || ? || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || ? || Flickering issues.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> |-<br /> | Need for Speed: Most Wanted &lt;span style=&quot;background:#FFAA00&quot;&gt;(Black Edition)&lt;/span&gt; || {{majorissues}} || {{majorissues}} || {{majorissues}} || &lt;span style=&quot;background:#FFAA00&quot;&gt;(Major reflections glitches with minor sound stuttering. Total framedrop on open areas)&lt;/span&gt;<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{unplayable}} || {{unplayable}} || ? || 1 fps when going in-game. SLUS_21065 same as pal version<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? || <br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || ? || ? || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu.<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak)<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || ? || {{majorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{unplayable}} || ? || Freezes on pic1.png<br /> |-<br /> | Pac-Man World 2 || ? || {{minorissues}} || ? || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level.<br /> |-<br /> | Pac-Man World 3 || ? || {{unplayable}} || ? || Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, Roguev2, KoF98, no go on any of them.<br /> |-<br /> | Pac-Man World Rally || ? || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Pro Evolution Soccer 2009 || ? || {{playable}} || ? || Absolutely fine. No issues noted.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || ? || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. Known in Japan as Puyo Puyo Fever.<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. <br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || ? || {{minorissues}} || ? || Requires TriAce hack (--vu-hack-triace=1) has minor-to-major slowdown in some scenes as well as a slight blurring from what looks like a broken depth of field effect.<br /> (I've been playing through the game just fine, no major slow downs that prevent the game from being enjoyed. Slow down only really happened during some cut scenes and areas where lots of characters are animating at once. It's very playable in my opinion, almost done with the game. Playing on PS4 original F.W 6.72 Changed issues from major to minor because the game can be completed) <br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || ? || ? || Crashes when going in-game, menu very laggy<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || ? || ? ||<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Red Star, The || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || ? || ? || Very poor performance.<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable }} || ? || Works fine on first mission don’t know about rest.<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || ? || {{majorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> |SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 logo, multiple emulators tried.<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20:&lt;br&gt;Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22:&lt;br&gt;Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || ? || ? || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || ? || ? || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{minorissues}} || {{majorissues}} || ? || Some graphical glitches, characters disappears sometimes, but playable. [SLUS20347 very low out-of-combat framerate, in-combat runs smooth but character slowly deforms and vanishes over time]<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{playable}} || {{minorissues}} || ? || Pal version Works great using JakEmuv1! US version: Cutscenes are a bit choppy which cause audio desync<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || ? || {{minorissues}} || ? || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || ? || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || ? || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{notavailable}} || Black screen.<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{unplayable}} || {{unplayable}} || {{unplayable}} || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is massive. Also has camera issues, which I believe are remedied with CLAMPS on PCSX2.<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{unplayable}} || {{unplayable}} || ? || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is worse than SC2. Very small amounts of scenery, no character models, just weapons. <br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || ? || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult.<br /> |-<br /> | Spider-Man 3 || {{majorissues}} || {{majorissues}} || ? || Very low fps, runs at about half speed, some slightly broken effects.<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || ? || {{unplayable}} || ? || Freezes after PS2 logo.<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{unplayable}} || ? || Massive performance and graphical issues. <br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{playable}} || {{unplayable}} || ? || NTSC version freezes in the main menu, PAL version don't works fine, the train apear in perpendicular.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{unplayable}} || {{unplayable}} || ? || Massive graphics corruption, flickering models, spiky polygon syndrome.<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || ? || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{unplayable}} || ? || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || ? || Only works with Jak emu<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || ? || ? || Black screen after first cutscene, can't go in-menu<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || ? || Minor frame rate issues on first level, else works fine<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> | Tourist Trophy || {{unplayable}} || ? || ? || small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || ? || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:Red&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all.<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || ? || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{unplayable}} || {{unplayable}} || {{unplayable}} || Jak emulator gets further than before and players are only able to access the main menu, though the game still freezes before starting the first mission. Rogue Emu refuses even to load and freezes on black screen after PS2 Logo. Same issue persists on Korean and Japanese versions. Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{minorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area. No significant issue as of now, will continued to monitor.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches.<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{notavailable}} || {{playable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Roguev1. Widescreen patch causes graphics to not render.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> |Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || <br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> |Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> |Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || ? || {{playable}} || ? ||<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || ? || Seems to work fine, <br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. <br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=282164 PS2 Classics Emulator Compatibility List 2021-01-15T16:43:20Z <p>162.199.155.139: /* # */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line.<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{playable}} || ? || ? || --vu1=jit-sync allows game to boot past PS2 logo.<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{minorissues}} || ? || When you first load missions it will drop frames but it will pick up in seconds to play normally.<br /> |-<br /> | 7 Sins ||{{playable}}|| ? || ?||<br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details.<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{minorissues}} || {{notavailable}} || MAJOR lag and audio distortion during cutscenes and the initial logo roll-call. Very minor lag during actual game (maybe one to three frames dropped every 10 minutes) <br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || ? || No noticeable issues, plays great.<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{unplayable}} || ? || Massive performance issues. Roguev2 is 1-2fps, Jakv2 is more like 50% but still very much unplayable.<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues.<br /> |-<br /> | Army Men: RTS || ? || {{unplayable}} || ? || Doesn't even load the game, only the background image.<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{unplayable}} || ? || Freezes on the pic1.png.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{minorissues}} || ? || ? || Menu entries are glitched. Except that, everything works fine<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{notavailable}} || {{Unplayable}} || {{notavailable}} || <br /> |-<br /> | Baroque || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||?|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? ||<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{playable}} || Has English patch<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{unplayable}} || ? || Freezes at the start of first level.<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bouncer, The || ? || {{playable}} || ? || NTSC-U tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance.<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} ||<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || ? || {{playable}} || ? || <br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{playable}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_53158 Crashes after ps2 logo&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable &lt;/span&gt;<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51523 Crashes on game loading screen&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect &lt;/span&gt;<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issue with squad nothing that really affects gameplay, audio stutters here and there<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{minorissues}} || ? || {{notavailable}} || Character models are flickering, else works fine<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{unplayable}} || {{unplayable}} || ? || Game doesn't boot<br /> |- <br /> | Crash of the Titans || ? || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds.<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{unplayable}} || ? || Massive, substantial, graphical corruption. Missing polygons, missing textures, overbloom light sources.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms.<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || ? || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering,<br /> |-<br /> | Digimon Rumble Arena 2 || {{Unplayable}} || ? || ? || Menu Screen is bugged. FPU_Compare_Hack from PCSX2 is needed but not available for PS4.&lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || ? || Low frame rate<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 || ? || {{Playable}} || {{majorissues}} || Game freeze in subsequent levels.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || ?|| Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{playable}} || {{playable}} || {{playable}} || Tested with Jak v2 emulator, however played the story mode and no issue of freezing as per now. Further tests are welcome<br /> |-<br /> | Dragon Ball Z: Sagas || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{unplayable}} || ? || ? || Incredible low performance, estimate around 50% native speed. A lot of audio stutter and scratching due to slow speed.<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || ? || {{majorissues}} || ? || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring<br /> |-<br /> | Driver - Parallel Lines || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:Red&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{unplayable}} || ? || Black screen after PS2 logo<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues<br /> |-<br /> | Everblue 2 || ? || {{minorissues}} || ? || Some geometry/terrain pop-in at edges of screen, known PCSX2 issue. Game plays absolutely fine regardless.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 Logo.<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || Really bad slowdown, graphics appear to render perfectly.<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan]<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan]<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan]<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || ? || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || ? || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN &lt;span style=&quot;background:#FF1000&quot;&gt;although the English patched version won't load past Pic1.png splash screen.)&lt;/span&gt;<br /> |-<br /> | Final Fight: Streetwise || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || ? || ? || <br /> |-<br /> | FlatOut 2|| {{unplayable}} || ? || ? || Game menus are ok, but very low FPS during game make game unplayable<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51467 Crashes after PS2 logo.&lt;/span&gt; &lt;span style=&quot;background:#90FF90&quot;&gt; SLUS_20658 Works with no issues &lt;/span&gt;<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{majorissues}} || ? || It looks very blurry. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || ? || ? || <br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{majorissues}} || ? || Missing character models during gameplay.Major graphical issues.Tested with Roguev1 emu, Jak emu &amp; KOF98 emu<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || ? || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{majorissues}} || ? || Work, but low fps in menu and game (1-2fps)<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || ? || {{unplayable}} || ? || Black screen after PS2 logo with Jak emu.<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{minorissues}} || {{unplayable}} || ? || SCES_52156 Game Crashes if you select 60hz or progressive scan as a refresh rate but works well on 50hz does have some issues with the skybox glitching or not loading correctly. Same glitch as PS3, stuck with the church ladder. NTSC versions freezes after publisher logos.<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{unplayable}} || {{playable}} || Requires MVTU to be disabled, doable in PCSX2 but no such option has yet been discovered in PS2emu.<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || The only minor graphical issue is the ghost cars aren't transparent and are solid.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || ? || {{unplayable}} || ? || Ok framerate when pursuing the map, but once a gun fight breaks out, the fps dips.<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{unplayable}} || ? || ? || Very low framerate. Unplayable<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in psxc2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller.<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || ? || the game stop at black screen after the loading of the title screen ends.<br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Headhunter || {{minorissues}} || {{majorissues}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLUS_20416 loads ok and runs without any fps drops but the screen and textures are heavily glitched making it unenjoyable to play.&lt;/span&gt;<br /> |-<br /> | Headhunter Redemption || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{majorissues}} || ? || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons.<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | PAL Custom Image doesn't boot past the PS2 logo <br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || ? || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in<br /> |-<br /> | Jaws Unleashed || ? || {{unplayable}} || ? || Freeze at loading screen before main menu<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || ? || Blackscreen after first intro video. Can still hear audio during blackscreen <br /> |-<br /> | James Bond 007: Everything or Nothing || ? || {{majorissues}} || ? || Low framerate &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || ? || {{majorissues}} || ? || Framerate slowdowns throughout the opening level. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater’s pro Surfer || {{playable}} || ? || ? || Works fine. Bully emu used<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{minorissues}} || {{notavailable}} || PAL works with Bully emu. Need to test with NTSC.<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || ? || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || ? || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages.<br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching.<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || --vu1=jit-sync allows game to boot, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Also requires EE Rounding Mode to fix gameplay issues.<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{unplayable}} || {{unplayable}} || ? || you cannot finish 1st stage due to misplaced items even with the config fix!! Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]'').<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{unplayable}} || ? || Game immediately freezes within seconds of starting a bout.<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || ? || {{unplayable}} || {{majorissues}} || Game immediately freezes when starting a new game. South Korean Ver(NTSC-J) issue = Yin Phase freezes when first starting. But Yang Phase playable.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> |Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> |Leisure Suit Larry: Magna Cum Laude || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || ? || {{majorissues}} || ? || Playable, but game does not reset after death. <br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Looney Tunes: Space Race || ? || {{minorissues}} || ? || Playable, with minor graphic issues. <br /> |-<br /> | The Lord of the Rings: Aragorn's Quest || {{playable}} || ? || ? || No known issues<br /> |-<br /> | The Lord of the Rings: The Fellowship of the Ring || {{minorissues}} || {{minorissues}} || ? || Small FPS drops in level with smoke or fog.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{unplayable}} || ? || After intro video blackscreen<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{playable}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]]. &lt;span style=&quot;color:white; background:Red&gt; Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.&lt;/span&gt;<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{majorissues}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{playable}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || ? || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || ? || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || ? || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging...<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{playable}} || ? || ? || No noticeable issues, works great.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || ? || {{playable}} || ? || No noticeable issues, seems to work perfect.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || ? || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. <br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{majorissues}} || ? || Boots using StarOcean3 Emu. However the game has graphical issues and flickering textures<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || ? || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || ? || {{playable}} || ? || <br /> |-<br /> | Namco Museum - 50th Anniversary || ? || {{playable}} || ? || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || ? || {{playable}} || ? || Didn't notice or encounter any issues.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu)<br /> |-<br /> | Naruto: Ultimate Ninja 3 || ? || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || ? || Flickering issues.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> |-<br /> | Need for Speed: Most Wanted &lt;span style=&quot;background:#FFAA00&quot;&gt;(Black Edition)&lt;/span&gt; || {{majorissues}} || {{majorissues}} || {{majorissues}} || &lt;span style=&quot;background:#FFAA00&quot;&gt;(Major reflections glitches with minor sound stuttering. Total framedrop on open areas)&lt;/span&gt;<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{unplayable}} || {{unplayable}} || ? || 1 fps when going in-game. SLUS_21065 same as pal version<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? || <br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || ? || ? || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu.<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak)<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || ? || {{majorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{unplayable}} || ? || Freezes on pic1.png<br /> |-<br /> | Pac-Man World 2 || ? || {{minorissues}} || ? || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level.<br /> |-<br /> | Pac-Man World 3 || ? || {{unplayable}} || ? || Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, Roguev2, KoF98, no go on any of them.<br /> |-<br /> | Pac-Man World Rally || ? || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Pro Evolution Soccer 2009 || ? || {{playable}} || ? || Absolutely fine. No issues noted.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || ? || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. Known in Japan as Puyo Puyo Fever.<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. <br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || ? || {{minorissues}} || ? || Requires TriAce hack (--vu-hack-triace=1) has minor-to-major slowdown in some scenes as well as a slight blurring from what looks like a broken depth of field effect.<br /> (I've been playing through the game just fine, no major slow downs that prevent the game from being enjoyed. Slow down only really happened during some cut scenes and areas where lots of characters are animating at once. It's very playable in my opinion, almost done with the game. Playing on PS4 original F.W 6.72 Changed issues from major to minor because the game can be completed) <br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || ? || ? || Crashes when going in-game, menu very laggy<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || ? || ? ||<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Red Star, The || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || ? || ? || Very poor performance.<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable }} || ? || Works fine on first mission don’t know about rest.<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || ? || {{majorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> |SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 logo, multiple emulators tried.<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20:&lt;br&gt;Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22:&lt;br&gt;Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || ? || ? || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || ? || ? || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{minorissues}} || {{majorissues}} || ? || Some graphical glitches, characters disappears sometimes, but playable. [SLUS20347 very low out-of-combat framerate, in-combat runs smooth but character slowly deforms and vanishes over time]<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{playable}} || {{minorissues}} || ? || Pal version Works great using JakEmuv1! US version: Cutscenes are a bit choppy which cause audio desync<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || ? || {{minorissues}} || ? || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || ? || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || ? || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{notavailable}} || Black screen.<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{unplayable}} || {{unplayable}} || {{unplayable}} || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is massive. Also has camera issues, which I believe are remedied with CLAMPS on PCSX2.<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{unplayable}} || {{unplayable}} || ? || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is worse than SC2. Very small amounts of scenery, no character models, just weapons. <br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || ? || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult.<br /> |-<br /> | Spider-Man 3 || {{majorissues}} || {{majorissues}} || ? || Very low fps, runs at about half speed, some slightly broken effects.<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || ? || {{unplayable}} || ? || Freezes after PS2 logo.<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{unplayable}} || ? || Massive performance and graphical issues. <br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{playable}} || {{unplayable}} || ? || NTSC version freezes in the main menu, PAL version don't works fine, the train apear in perpendicular.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{unplayable}} || {{unplayable}} || ? || Massive graphics corruption, flickering models, spiky polygon syndrome.<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || ? || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{unplayable}} || ? || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || ? || Only works with Jak emu<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || ? || ? || Black screen after first cutscene, can't go in-menu<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || ? || Minor frame rate issues on first level, else works fine<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> | Tourist Trophy || {{unplayable}} || ? || ? || small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || ? || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:Red&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all.<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || ? || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{unplayable}} || {{unplayable}} || {{unplayable}} || Jak emulator gets further than before and players are only able to access the main menu, though the game still freezes before starting the first mission. Rogue Emu refuses even to load and freezes on black screen after PS2 Logo. Same issue persists on Korean and Japanese versions. Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{minorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area. No significant issue as of now, will continued to monitor.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches.<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{notavailable}} || {{playable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Roguev1. Widescreen patch causes graphics to not render.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> |Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || <br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> |Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> |Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || ? || {{playable}} || ? ||<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || ? || Seems to work fine, <br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. <br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=PS2_Classics_Emulator_Compatibility_List&diff=282163 PS2 Classics Emulator Compatibility List 2021-01-15T16:41:50Z <p>162.199.155.139: /* K */</p> <hr /> <div>&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;{{PS2 Classics Emulator Compatibility List}}&lt;!--// PLEASE DO NOT REMOVE THIS //--&gt;<br /> <br /> <br /> == # ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot; | Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | .hack//Infection || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Mutation || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Outbreak || ? || {{playable}} || ? || <br /> |-<br /> | .hack//Quarantine || ? || {{playable}} || ? || <br /> |-<br /> | 10 Pin: Champions Alley || {{playable}} || {{notavailable}} || {{notavailable}} || Works great with Jakv2 emulator, no visuals with Roguev2. 50Hz game, use a &quot;--force-pal-60hz=1&quot; in recent emulators to fix framepacing.<br /> |-<br /> | &lt;abbr title=&quot;This Game got cancelled!&quot;&gt;100 Bullets&lt;/abbr&gt; [NTSC-U/C Prototype Version] || {{notavailable}} || {{notavailable}} || {{notavailable}} || style=&quot;background-color:#90FF90;&quot; | An unreleased prototype tested using Rogue emulator. Works fine and just disable uprender from '''2x2''' to '''none''' in order to remove the white trail line.<br /> |-<br /> | 187: Drive or Die || {{playable}} || {{unplayable}} || ? || Pal version works flawlessly using Jaxv1 Emu but US version: Black screen after PS2 logo. Tried on several emulators, including Roguev2 and Jakv2.<br /> |-<br /> | 1945 I&amp;II The Arcade Games || {{majorissues}} || {{notavailable}} || {{majorissues}} || Image is shaky constantly. In the PAL version of the game, 1945 works perfectly fine, but 1945 II is completely broken. In the NTSC-J version, Strikers 1945 II plays, but eventually crashes. 1945 in the NTSC-J version is untested.&lt;br&gt;Known in Japan as ''彩京シューティングコレクション Vol.1 STRIKERS1945 I&amp;II (Psikyo Shooting Collection Vol. 1: Strikers 1945 I+II)''<br /> |-<br /> | 10,000 Bullets || {{unplayable}} || ? || ? || Black screen freeze after PS2 logo.<br /> |-<br /> | 18 Wheeler: American Pro Trucker || {{unplayable}} || {{unplayable}} || ? || Tested with six different emulator templates, none of them worked. Either freeze on Pic1.png or black screen immediately after PS2 logo.<br /> |-<br /> | 24: The Game || {{playable}} ||?||?|| Fixed lag, check [[Talk:PS2_Classics_Emulator_Compatibility_List#24_The_Game|emulator configuration]]. <br /> |-<br /> | 25 to Life ||?|| {{playable}} || ?||<br /> |-<br /> | 4x4 Evolution || ? || {{playable}} || {{notavailable}} || No issues noted.<br /> |-<br /> | 50 Cent: Bulletproof || ? || {{minorissues}} || ? || When you first load missions it will drop frames but it will pick up in seconds to play normally.<br /> |-<br /> | 7 Sins ||{{playable}}|| ? || ?||<br /> |-<br /> | PS2 Demo Disc [PBPX-95514] || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screens/freezes after intro information.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''&lt;span style=&quot;color:#FF0000&quot;&gt;#&lt;/span&gt;{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == A ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ace Combat: The Belkan War || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat Zero: The Belkan War|Emulator Configuration]] for additional details.<br /> |-<br /> | Ace Combat 4: Shattered Skies || {{playable}} || {{minorissues}} || ? || Use custom config to fix terrain rendering and collision detection and to fix clouds wrong shader. Everything else performs normally. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 4|Emulator Configuration]] for additional details.<br /> |-<br /> | rowspan=&quot;2&quot; | Ace Combat 5: The Unsung War || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | Available as a &quot;PS2 Classics&quot; as part of the &quot;Pre-Order-Bonus&quot; for &quot;Ace Combat 7: Skies Unknown&quot; (PS4) only (not available separately).<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | Homebrew iso (NTSC-U/C version) cannot save or load due to memory card corruption. Use custom config to fix terrain rendering. Clouds using shaders have the wrong shader applied, upscaler issue, remove up2x2 render to fix. Check [[Talk:PS2 Classics Emulator Compatibility List#Ace Combat 5|Emulator Configuration]] for additional details.<br /> |-<br /> | ADK DAMASHII || {{official}} || {{official}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew ISO has substantial performance issues unless you use official game fixes from &quot;Samurai Shodown Anthology&quot;, where it's perfect afterwards<br /> |-<br /> | The Adventures of Cookie &amp; Cream || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | The Adventures of Darwin (Darwin) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 99: The Genshijin (THE 原始人)''<br /> |-<br /> | The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Aero Elite - Combat Academy || {{notavailable}} || {{playable}} || {{notavailable}} ||<br /> |- <br /> | Aeon Flux || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Agassi Tennis Generation || ? || {{unplayable}} || ? || Game locks up on the users first serve.<br /> |-<br /> | Age of Empires II The Age of Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Agressive Inline || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | AirForce Delta Strike || ? || {{Unplayable}} || ? || Game crashes in the early minutes.<br /> |-<br /> | AirBlade || {{playable}} || {{playable}} || ? || Works fantastically using Jak emulator and config fix for flickering models. Check [[Talk:PS2 Classics Emulator Compatibility List#AirBlade|Emulator Configuration]] for additional details.<br /> |- <br /> | Akira Psycho Ball || {{playable}} || ? || ? ||<br /> |-<br /> | Aqua Teen Hunger Force: Zombie Ninja Pro-Am || ? || {{playable}} || {{notavailable}} || <br /> |-<br /> | Alien Hominid || ? || {{minorissues}} || {{notavailable}} || MAJOR lag and audio distortion during cutscenes and the initial logo roll-call. Very minor lag during actual game (maybe one to three frames dropped every 10 minutes) <br /> |-<br /> | Aliens in the Attic || {{playable}} || ? || ? || <br /> |-<br /> | Aliens vs Predator: Extinction || ? || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Alone in the Dark: The New Nightmare || {{minorissues}} || ? || ? || Black Screen in phone cutscene but playable<br /> |-<br /> | Alpine Racer 3 || {{playable}} || ? || ? || No noticeable issues, plays great.<br /> |-<br /> | Altered Beast || {{unplayable}}|| ? || ? || Black screen after play station logo<br /> |-<br /> | Alvin and the Chipmunks || ? || {{playable}} || ? || <br /> |-<br /> | Amplitude || ? || {{playable}} || ? ||<br /> |-<br /> | Animaniacs: The Great Edgar Hunt || {{playable}} || {{notavailable}} || {{notavailable}} || PAL-Version includes 5 languages (English, French, German, Spanish, Italian)!<br /> |-<br /> | Antz Extreme Racing || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape 2 || {{official}} || {{official}} || ? || Custom made pkg have issues with mipmaping on far rendered textures, that are fixable by using custom config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ape Escape 2|Emulator Configuration]] for additional details. [Known in Japan as ''Saru! Get You! 2 (サルゲッチュ2)]''<br /> |-<br /> | Ape Escape 3 || ? || {{playable}} || ? || <br /> |-<br /> | Ape Escape: Pumped &amp; Primed || ? || {{unplayable}} || ? || Massive performance issues. Roguev2 is 1-2fps, Jakv2 is more like 50% but still very much unplayable.<br /> |-<br /> | Arc the Lad: Twilight of the Spirits || {{official}} || {{official}} || ? || <br /> |-<br /> | Arcana Heart || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Area 51 || {{minorissues}} || {{minorissues}} || ? || NTSC-U/C Version fully playable with portions of the floor glitching in and out randomly. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLES_52570 (PAL Version) worked for me but the floor was glitching, and the graphics were fuzzy with the occasional fps drop and audio stutter&lt;/span&gt;<br /> |-<br /> | Armored Core 2 || {{unplayable}} || {{unplayable}} || ? || Big problem. Many graphical glitches in interface, but during gameplay no problem. So, due to problems with the interface it is impossible to play.<br /> |-<br /> | Armored Core 2: Another Age || ? || {{playable}} || ? || No issues noticed, works great with StarOcean3 emu, refuses to boot on Jak emu. <br /> |-<br /> | Armored Core 3 || ? || {{minorissues}} || ? || Some very minor slowdown at certain points, usually when in a position to see the entire battle arena at once.<br /> |-<br /> | Silent Line: Armored Core (Armored Core 3: Silent Line) || {{playable}} || {{playable}} || ? || No issues detected. Not an expansion to AC3, completely separate game that follows on from AC3.<br /> |-<br /> | Armored Core Nexus || ? || {{majorissues}} || ? || Disc 02 very bad emulated.<br /> |-<br /> | Armored Core Last Raven || ? || {{playable}} || ? || Same as Last Line, this is a separate game but follows on directly from AC Nexus.<br /> |-<br /> | Army Men: Air Attack 2 || {{playable}} || ? || ? || No issues.<br /> |-<br /> | Army Men: RTS || ? || {{unplayable}} || ? || Doesn't even load the game, only the background image.<br /> |-<br /> | Army Men: Sarge's Heroes 2 || ? || {{unplayable}} || ? || Freezes on the pic1.png.<br /> |-<br /> | Army Men: Soldiers of Misfortune || ? || {{playable}} || ? || <br /> |-<br /> | ART OF FIGHTING ANTHOLOGY || {{official}} || {{official}} || ? || Known in Japan as ''Ryuuko no Ken: Ten-Chi-Jin (龍虎の拳~天・地・人~)''<br /> |-<br /> | Arthur &amp; the Minimoys || {{playable}} || ? || ? || Works fine<br /> |-<br /> | Atelier Iris: Eternal Mana || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 2: The Azoth of Destiny || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Iris 3: Grand Phantasm || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Atelier Marie &amp; Elie: The Alchemist of Salburg || {{notavailable}} || {{notavailable}} || {{minorissues}} || English translated version, seems like it's fine though has periodic &lt;1s freezes during menu navigation.<br /> |-<br /> | Athens 2004 || {{playable}} || ? || ? || <br /> |-<br /> | ATV Offroad Fury 3 || ? || {{unplayable}} || ? || Loads to grey screen and fails to go beyond that.<br /> |-<br /> | ATV Quad Power Racing 2 || ? || {{unplayable}} || ? || Fails to load past PS2 splash.<br /> |-<br /> | Auto Modelista || {{minorissues}} || ? || ? || Menu entries are glitched. Except that, everything works fine<br /> |-<br /> | Avatar - The Last Airbender || ? || {{unplayable}} || ? || Freezes at loading screen after starting a new game.<br /> |-<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;A&lt;/span&gt;{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == B ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | B-Boy || ? || {{unplayable}} || ? || Substantial graphical corruption, missing characters, missing textures. Tried on various emulators, tried with clutmerge enabled. No go.<br /> |-<br /> | Baldur's Gate : Dark Alliance || {{notavailable}} || {{Unplayable}} || {{notavailable}} || <br /> |-<br /> | Baroque || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Batman Begins || {{unplayable}} || {{unplayable}} || {{unplayable}} || Black screen after EA Games Logo and now loading screen with Rogue emulator for all 3 versions. Even you can observe the bats sound during the black screen of death. Jak Emulator refuses even to load and crashes while loading. This Game is released in Korea (SLKA-25292), but the language is still in English, due to the fact that there was no localized PS2 version released in Korean markets.<br /> |-<br /> | Battlefield 2: Modern Combat||{{majorissues}}|| {{majorissues}} ||?|| Major issues such as audio stuttering and low fps. &lt;span style=&quot;color:white; background:Red&gt;Jak emulator freezes before the game starts.&lt;/span&gt;<br /> |-<br /> | Battle Engine Aquila || ? || {{minorissues}} || ? || Using Rogue emu; Minor slowdown if there's a lot of enemies on screen at once and/or in a position to view entire map. Also slight skybox corruption in the corners. Unplayable in Jak emu due to much worse performance.<br /> |-<br /> | Battle Stadium D.O.N || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Beat Down: Fists of Vengeance || {{unplayable}} || {{unplayable}} || {{Playable}} || Black screen after selecting 50/60hz (PAL) and crashes after PS2 logo (NTSC). Japanese ISO works 100% fine with no lag, freeze or graphical issues. Known in Japan as simply ''Beat Down'' (ビートダウン, ''Bīto Daun'')<br /> |-<br /> | Beatmania IIDX 9th Style || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 11: IIDX RED || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Beatmania IIDX 15: DJ Troopers || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Beatmania IIDX 16: EMPRESS Premium Best Disc || {{notavailable}} || {{notavailable}} || {{unplayable}} || Screen constantly jitters up and down due to interlacing. Menus work fine, but the game freezes when the song starts.<br /> |-<br /> | Ben 10: Protector of Earth || {{playable}} || ? || ? ||<br /> |-<br /> | Berserk: Millennium Falcon Hen Seima Senki no Shō || {{notavailable}} || {{notavailable}} || {{playable}} || Has English patch<br /> |- <br /> | Beyond Good &amp; Evil || {{minorissues}} || {{minorissues}}|| {{notavailable}} || Some Lag issues and graphical glitches<br /> |- <br /> | BLACK || {{minorissues}} || {{minorissues}} || ? || Some little sound problems but playable and white outline in the corners and around some characters in NTSC versions. PAL --&gt;https://www.youtube.com/watch?v=5jYjkyGMbMk<br /> |-<br /> | Blade 2 || ? || {{unplayable}} || ? || Freezes at the start of first level.<br /> |-<br /> | Bleach: Blade Battlers 2nd || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Bleach: Hanatarishi Yabuu || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Blood Will Tell: Tezuka Osamu's Dororo || ? || {{unplayable}} || ? || Game does not boot after ps2 logo from bios flashes<br /> |-<br /> | BloodRayne || ? || {{unplayable}} || ? || crashes on start jak V.2 and rogue V.1(ps4)<br /> |-<br /> | BloodRayne 2 || ? || {{playable}} || ? || Works fine<br /> |-<br /> | Bloody Roar 3 || {{playable}} || ? || ? || Interlacing artefacts in cutscenes<br /> |-<br /> | Bloody Roar 4 || ? || {{playable}} || ? || SPS (Spiky Poly Syndrome) requires clamping fix. Works great on Jak emu .--- Check [[Talk:PS2 Classics Emulator Compatibility List#Bloody Roar 4|Emulator Configuration]] for additional details.<br /> |-<br /> | BlowOut || ? || {{playable}} || ? || <br /> |-<br /> | BMX XXX || {{playable}} || ? || ? || Works Fine<br /> |-<br /> | Bode Miller Alpine Skiing || ? || {{playable}} || ? || <br /> |-<br /> | Bolt (Disney Bolt) || {{minorissues}} || {{minorissues}} || ? || Small graphical glitches.<br /> |-<br /> | Bomberman Hardball || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Bomberman Kart || {{playable}} || ? || ? || <br /> |-<br /> | Bouncer, The || ? || {{playable}} || ? || NTSC-U tested with Jakv2 emulator on PS4 6.72 FW.<br /> |-<br /> | Bratz Diamondz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Girlz Really Rock || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz The Movie || {{Unplayable}} || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Bratz Rock Angelz || ? || {{Unplayable}} || {{notavailable}} || The games freezes at the intro screen.<br /> |-<br /> | Brave - The search for spirit dancer || {{unplayable}} || {{unplayable}} || ? || Massive graphics and physics issues makes the game unplayable.<br /> |-<br /> | Breath of Fire V: Dragon Quarter || {{minorissues}} || {{minorissues}} || ? || Some minor title screen font corruption, applicable to both EU and NA versions, though utterly inconsequential to game itself.<br /> |-<br /> | Broken Sword: The Sleeping Dragon || {{playable}} || {{notavailable}} || ? || No NTSC-U/C Release for PS2 (PAL = SLES-51157 / NTSC-U = SLPS-25356) - Released in North America only for original Xbox and Windows.<br /> |-<br /> | Brothers in Arms: Earned in Blood || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Brothers in Arms: Road to Hill 30 || {{playable}} || ? || ? || Remove uprender 2x2 to fix horizontal lines on parts of the screen (--gs-uprender=none --gs-upscale=none)<br /> |-<br /> | Bujingai: The Forsaken City || ? || {{playable}} || ? ||<br /> |-<br /> | Bully (Canis Canem Edit) || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Some Lag issues and graphical glitches (without official patches). Hattrick vs Golloway Bug in both rogue V.1 &amp; jak V.2 (playable {ps4} but not past that mission unless you mess with the emulator settings). --- Check [[Talk:PS2 Classics Emulator Compatibility List#Canis Canem Edit/Bully|Emulator Configuration]] for additional details.<br /> |-<br /> | Burnout || {{playable}} || {{minorissues}} || ? || Aside from a small texture issue that affects the Start, Checkpoint, and Finish markers, the game runs absolutely flawlessly.<br /> |-<br /> | Burnout 2: Point of Impact || {{playable}} || {{playable}} || ? || [[Talk:PS2 Classics Emulator Compatibility List#Burnout2: POI|Use config to fix white parts.]]<br /> |-<br /> | Burnout 3: Takedown || {{unplayable}} || {{minorissues}} || ? || style=&quot;background-color:#FFFF90;&quot; | Minor issues like a weird pink faded line 1 inch width full height on left side of the screen besides that the game runs good.&lt;br&gt;PAL version freezes before race randomly.<br /> |-<br /> | Burnout Dominator || ? || {{unplayable}} || ? || US version freeze before race begins (Jak emu)<br /> |-<br /> | Burnout Revenge || {{unplayable}} || {{unplayable}} || ? || Freeze before race begins<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;B&lt;/span&gt;{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == C ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Cat in The Hat || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 Logo.<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Capcom Classics Collection || {{playable}} || {{minorissues}} || ? || Minor graphical issues in a couple of games and random crashes when exiting a game<br /> |-<br /> | Capcom Fighting Evolution || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Capcom vs. SNK 2 - Mark of the Millennium || {{playable}} || ? || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Call of Duty: Finest Hour || {{unplayable}} || ? || ? || SLES-52782 It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 2: Big Red One || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty 3 || ? || {{unplayable}} || ? || It tears and it has unbelievable lag, you can't even hear the dialog<br /> |-<br /> | Call of Duty: World at War - Final Fronts || {{playable}} || ? || ? || Patched glitches and lag issues, please refer [[Talk:PS2_Classics_Emulator_Compatibility_List#Call_of_Duty:_World_at_War_-_Final_Fronts|Emulator config]] for more help.<br /> |-<br /> | Cars || ? || {{playable}} || ? || No known issues<br /> |-<br /> | CART Fury Championship Racing || ? || {{unplayable}} || {{notavailable}} || Boots to black screen after Playstation 2 Splash. Tested using Jak emu.<br /> |-<br /> | Castle Shikigami II: War of the Worlds || {{playable}} || ? || ? || Known in Japan as ''Shikigami no Shiro II''<br /> |-<br /> | Castlevania: Curse of Darkness || {{playable}} || {{majorissues}} || ? || Lots of graphics issues with stretched polygons appearing across the screen when camera is near walls. In pcsx2 fix is no clamping for vu0/1 and cop2, but it won't help on ps4. <br /> |-<br /> | Castlevania: Lament of Innocence || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Castleween (Spirits &amp; Spells) || {{playable}} || {{notavailable}} || ? || No known issue (Known in Japan as ''Mahou no Pumpkin: Ann to Greg no Daibouken [魔法のパンプキン ~アンとグレッグの大冒険~]'')&lt;br&gt;No NTSC-U/C release for PS2 - available in North America as ''Spirits &amp; Spells'' only for Nintendo GameCube and Nintendo Game Boy Advance.<br /> |-<br /> | Chaos Field: New Order || ? || ? || {{playable}} || <br /> |-<br /> | Charlie and the Chocolate Factory || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Choaniki: Sei Naru Protein Densetsu || ? || ? || {{playable}} ||<br /> |-<br /> | The Chronicles of Narnia: Prince Caspian || ? || {{playable}} || ? || No known issues<br /> |-<br /> | The Chronicles of Narnia: The Lion, The Witch and The Wardrobe || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Chulip || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Clock Tower 3 || ? || {{playable}} || ? || <br /> |-<br /> | Code of the Samurai || {{playable}} || ? || ? || No known issues (Known in Japan as ''Shinsengumi Gunrou-den [新選組群狼伝]'')<br /> |-<br /> | Cold Fear || {{unplayable}} || {{playable}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_53158 Crashes after ps2 logo&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_21047 only error i found is less then minor your characters head loses its texture for a split second here and there, very much playable &lt;/span&gt;<br /> |-<br /> | Cold Winter || {{minorissues}} || {{minorissues}} || ? || Require config file to fix rendering, and physics, there are still some issues with steering, and FMV. Check [[Talk:PS2 Classics Emulator Compatibility List#Cold Winter|Emulator Configuration]] for additional details.<br /> |-<br /> | Colosseum: Road to Freedom || {{playable}} || ? || ? || No known issues. Known as ''Gladiator: Road to Freedom'' in Japan.<br /> |-<br /> | Codename: Kids Next Door – Operation: V.I.D.E.O.G.A.M.E. || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Colin McRae Rally 2004 || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfect.<br /> |-<br /> | Colin McRae Rally 2005 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Appalling performance, in low 10s and under. Tried Jak and Rogue emus.<br /> |-<br /> | Colin McRae Rally 3 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Commandos: Strike Force || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Commandos 2: Men Of Courage || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Conflict: Desert Storm || {{playable}} || ? || {{notavailable}} || SLES_50902 No known issues<br /> |-<br /> | Conflict: Desert Storm 2 || {{unplayable}} || {{minorissues}} || {{notavailable}} || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51523 Crashes on game loading screen&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;background:#FFFF90&quot;&gt;SLUS_20689 minor grapchic issue when killing an enemy limbs seem to get larger other than that perfect &lt;/span&gt;<br /> |-<br /> | Conflict: Global Storm || {{minorissues}} || ? || {{notavailable}} || SLES_52573 a few minor graphical issue with squad nothing that really affects gameplay, audio stutters here and there<br /> |-<br /> | Conflict: Vietnam || {{playable}} || ? || {{notavailable}} || SLES_52630 No known issues<br /> |-<br /> | Constantine || {{playable}} || {{playable}} || ? || No issues encountered.<br /> |-<br /> | Contra: Shattered Soldier || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Coraline || ? || {{unplayable}} || ? || Game freezes on first scene<br /> |-<br /> | Cowboy Bebop: Tsuioku no Serenade || ? || ? || {{playable}} || works with KOF98emu<br /> |-<br /> | Crash: Mind over Mutant || {{minorissues}} || ? || {{notavailable}} || Character models are flickering, else works fine<br /> |-<br /> | Crash Bandicoot: The Wrath of Cortex || ? || {{minorissues}} || ? || Some minor background graphics glitches<br /> |-<br /> | Crash 'N' Burn || ? || {{unplayable}} || ? || Grey screen. Audio can be heard from publisher and developer cinematics.<br /> |-<br /> | Crash Nitro Kart || {{unplayable}} || {{unplayable}} || ? || Game doesn't boot<br /> |- <br /> | Crash of the Titans || ? || {{minorissues}} || ? || Hesitant to list this as minor issues as the game itself looks and runs fantastically, however the main menu screen stalls periodically for a few seconds.<br /> |-<br /> | Crash Twinsanity || {{minorissues}} || {{minorissues}} || ? || PAL: Minor distance LOD fade visual glitches. Occasionally, parts of Crash's model become semi transparent. US: Sometimes the game will crash when loading but very rarely, Crash is semi-transparent, has a tiny bit of slow down when there is too many boxes or Wumpa Fruit on screen and minor LOD fade visual glitches.<br /> |-<br /> | Crash Tag Team Racing || {{majorissues}} || {{majorissues}} || ? || Game runs at incredibly slow framerate, even in the main menu. Crash's model has some visual glitches too.<br /> |-<br /> | Crazy Taxi || ? || {{playable}} || ? || <br /> |-<br /> | Crime Life: Gang Wars || {{playable}} || ? || ? || No issues of any note. <br /> |-<br /> | Crimson Sea 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Crimson Tears || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Critical Velocity || {{notavailable}} || {{notavailable}} || {{unplayable}} || FMVs are horribly rendered to the point that they look like clown vomit (epilepsy warning). Game then locks at a black screen as soon as it starts with sound effects still playing in the background.<br /> |-<br /> | Crouching Tiger, Hidden Dragon (Tiger and Dragon) || ? || {{playable}} || ? || <br /> |-<br /> | Culdcept || ? || {{playable}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;C&lt;/span&gt;{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == D ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Dance Dance Revolution 7thMix DDRMAX2 || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution Extreme || ? || ? || {{unplayable}} || Black screen after PS2 BIOS<br /> |-<br /> | Dance Dance Revolution X || ? || {{playable}} || ? || Works fine. Progressive output not tested.<br /> |-<br /> | Dark Cloud || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Dark Chronicle (Dark Cloud 2) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Homebrew creation also works fine, no issues.<br /> |-<br /> | Darkwatch || {{playable}} || {{playable}} || {{notavailable}} || Perfect. No issues.<br /> |-<br /> | Dave Mirra Freestyle BMX 2 || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Dawn of Mana || ? || {{unplayable}} || ? || Massive, substantial, graphical corruption. Missing polygons, missing textures, overbloom light sources.<br /> |-<br /> | Dead or Alive 2: Hardcore || ? || {{playable}} || {{playable}} || Require config file to fix black screen, new patch added full sound effects support. Check [[Talk:PS2 Classics Emulator Compatibility List#Dead or Alive 2: Hardcore|Emulator Configuration]] for additional details.<br /> |-<br /> | Dead to Rights || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dead to Rights 2 || {{playable}} || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Death by Degrees || ? || {{playable}} || ? || <br /> |-<br /> | Def Jam - Fight for NY || {{playable}} || {{playable}} || ? || Seems fine, no issues of note. SLES_52507 same as NTSC no issues<br /> |-<br /> | Delta Force Black Hawk Down || ? || {{majorissues}} || ? || Low fps in menu and game, visual glitches in game<br /> |-<br /> | Destroy All Humans! || {{official}} || {{official}} || ? || <br /> |-<br /> | Destroy All Humans! 2 || {{official}} || {{official}} || {{notavailable}} ||<br /> |-<br /> | Destruction Derby Arenas || ? || {{unplayable}} || ? || Does not load past splash screen.<br /> |-<br /> | Deus Ex: The Conspiracy || {{minorissues}} || {{minorissues}} || {{notavailable}} || Very minor graphical corruption involving lighting, visible as random flicker and pseudo-transparent square box around firearms.<br /> |-<br /> | Devil Kings || {{playable}} || ? || ? ||<br /> |-<br /> | Devil May Cry 1 || ? || {{unplayable}} || ? || when you start the game in new game appears black screen<br /> |-<br /> | Devil May Cry 2 || ? || {{minorissues}} || ? || Graphical glitches, character faces keep disappearing. Tested NTSC-U with Jakv2 emulator.<br /> |-<br /> | Devil May Cry 3: (Dante's Awakening) [Special Edition] || {{minorissues}} || {{playable}} || ? || version pal with flickering,<br /> |-<br /> | Digimon Rumble Arena 2 || {{Unplayable}} || ? || ? || Menu Screen is bugged. FPU_Compare_Hack from PCSX2 is needed but not available for PS4.&lt;br&gt;Known in Japan as ''Digimon Battle Chronicle (デジモンバトルクロニクル)''<br /> |-<br /> | Digimon World 4 || {{unplayable}} || {{unplayable}} || ? || both versions stuck after ps2 logo<br /> |-<br /> | Digimon World Data Squad || ? || {{playable}} || ? || <br /> |-<br /> | Dirge of Cerberus: Final Fantasy VII || {{minorissues}} || {{minorissues}} || ? || It has sometimes little framedrops, but playable. NTSC-U does not work with Jakv2 emulator, black screen after BIOS.<br /> |-<br /> | Disaster Report (SOS: The Final Escape) || {{playable}} || {{playable}} || {{playable}} || No major issues noticed, game *seems* a little blurry though that could be intentional. South Korea Ver(NTSC-J)(Kor name ='절체절명도시') = playable [Known in Japan as: ''絶体絶命都市 (Zettai Zetsumei Toshi)'']<br /> |- <br /> | Disgaea: Hour of Darkness || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Disgaea 2: Cursed Memories || ? || {{playable}} || ? || Use: [[Talk:PS2 Classics Emulator Compatibility List#Disgaea 2: Cursed Memories|Emulator Configuration]] in order to avoid graphic issues caused by upscaler.<br /> |-<br /> | Disney's Chicken Little || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Disney's Dinosaur || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | Disney's Donald Duck: Goin' Quackers (Donald Duck: Quack Attack) || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Meet the Robinsons || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Peter Pan: The Legend of Never-Land || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Piglet's Big Game || {{majorissues}} || ? || ? ||<br /> |-<br /> | Disney's Stitch: Experiment 626 || {{playable}} || ? || ? || <br /> |-<br /> | Disney's Tarzan: Freeride (Disney's Tarzan: Untamed) || {{majorissues}} || ? || ? || Low frame rate<br /> |-<br /> | Disney's The Haunted Mansion || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Ratatouille || ? || {{playable}} || ? || <br /> |-<br /> | Disney/Pixar Toy Story 3 || {{playable}} || ? || ? || <br /> |-<br /> | Disney/Pixar The Incredibles || ? || {{playable}} || ? || <br /> |-<br /> | DoDonPachi DaiOuJou || {{notavailable}} || {{notavailable}} || {{playable}} || No issues aside from framerate due to objects on screen (this happens on original hardware as well).&lt;br&gt;Also known as ''&quot;Angry Leader Bee: Blissful Death&quot; (怒首領蜂 大往生)''<br /> |-<br /> |Don 2 - The Game ||{{playable}}||{{notavailable}}||{{notavailable}}|| Playable, no issues.<br /> |-<br /> | Dora the Explorer: Dora Saves the Snow Princess || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Dora the Explorer: Dora Saves the Crystal Kingdom || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Downhill Domination || {{majorissues}} || ? || ? || Massive flickering, invisible models, and alpha textures not drawing correctly&lt;br&gt;(known in Japan as ''MT Bikers: Bakusou Mountain Bikers [爆走マウンテンバイカーズ]'')<br /> |-<br /> | Dragon Ball Z: Budokai || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Ball Z: Budokai 2 || ? || {{playable}} || ? || No issues with Jak emu ''(known in Japan as Dragon Ball Z 2 [ドラゴンボールZ2])''<br /> |-<br /> | Dragon Ball Z: Budokai 3 || ? || {{Playable}} || {{majorissues}} || Game freeze in subsequent levels.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi || {{unplayable}} || {{unplayable}} || ? || Same issues as Infinite World; random hard locks during combat. Will test on different emulators.<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 2 || {{minorissues}} || {{playable}} || ? || PAL Version had minor graphical glitches, it doesn't display correct life bar, ki charge, attack charge and companion charge. (known in Japan as ''Dragon Ball Z: Sparking! NEO [ドラゴンボールZ Sparking! NEO]'') Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_2|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Budokai Tenkaichi 3 || ? || {{playable}} || ?|| Known in Japan as ''Dragon Ball Z: Sparking! Meteor (ドラゴンボールZ Sparking! METEOR)'' Fix for UI glitches [[Talk:PS2_Classics_Emulator_Compatibility_List#Dragon_Ball_Z:_Budokai_Tenkaichi_3|Emulator Configuration]]<br /> |-<br /> | Dragon Ball Z: Infinite World || {{playable}} || {{playable}} || {{playable}} || Tested with Jak v2 emulator, however played the story mode and no issue of freezing as per now. Further tests are welcome<br /> |-<br /> | Dragon Ball Z: Sagas || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Dragon Blaze || {{playable}} || ? || ? || No issues detected.<br /> |-<br /> | Dragon Quest V: Tenkuu no Hanayome || {{notavailable}} || {{notavailable}} || {{majorissues}} || Gets stuck in Faerie land unable to proceed.<br /> |-<br /> | Dragon Quest VIII: Journey of the Cursed King || {{minorissues}} || {{minorissues}} || ? || Fix for shadow bug [[Talk:PS2 Classics Emulator Compatibility List#Dragon Quest VIII: Journey of the Cursed King|Emulator Configuration]]. Game still needs fixes for minor graphics issues. Has FPS drops in battles against some kinds of monsters later in the game.<br /> |-<br /> | Dragons Lair 3D: Special Edition || {{playable}} || {{notavailable}} || {{notavailable}} || <br /> |-<br /> | Drakan: The Ancients' Gates || {{playable}} || {{playable}} || ? || Requires early emulator, Jak emu causes substantial performance drop.<br /> |-<br /> | Drakengard || {{unplayable}} || ? || ? || Incredible low performance, estimate around 50% native speed. A lot of audio stutter and scratching due to slow speed.<br /> |-<br /> | Drakengard 2 || {{majorissues}} || ? || ? || Much better speed than Drakengard, probably full speed, though has some minor graphics issues and - what makes this major - objective items are invisible.<br /> |-<br /> | DreamWorks &amp; Aardman Flushed Away || ? || {{playable}} || ? || <br /> |-<br /> | DreamWorks Kung Fu Panda || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Madagascar: Escape 2 Africa (Madagascar: Escape 2 Africa) || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek Smash n' Crash Racing || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | DreamWorks Shrek SuperSlam || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | DreamWorks Shrek the Third || ? || {{minorissues}} || ? || Audio issues.<br /> |-<br /> | Drive to Survive (Mashed: Fully Loaded) || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 28: Bousou! Kenka Grand Prix, Drive to Survive''<br /> |-<br /> | Driv3r (Driver 3) || ? || {{majorissues}} || ? || Game menu runs fine; Major lag/frame drops once in actual gameplay and whitewashed coloring<br /> |-<br /> | Driver - Parallel Lines || {{majorissues}} || {{majorissues}} || {{unplayable}} || Same as Driver 3 with Jak emulator, however no graphical glitches observed as such. &lt;span style=&quot;color:white; background:Red&gt;Rogue emulator throws unhandled pagefault error and Japanese version crashes on Jak and Rogue emulator as well.&lt;/span&gt;<br /> |-<br /> | Dynasty Tactics 2 || ? || {{unplayable}} || ? || Cannot progress through the chain tactics portion of the tutorial, menu option to chain does not appear.<br /> |-<br /> | Dynasty Warriors 3 || {{playable}} || ? || ? || Shin Sangokumusou 2 in Japan - [https://en.wikipedia.org/wiki/Dynasty_Warriors_3 Info]<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;D&lt;/span&gt;{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == E ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | E.O.E: Eve of Extinction || ? || {{playable}} || ? || No problems with Jakv2. <br /> |-<br /> | Ecco the Dolphin: Defender of the Future || {{playable}} || {{playable}} || ? || Graphical issues solved with bully emu<br /> |-<br /> | Echo Night: Beyond || {{minorissues}} || ? || ? || Dynamic shadow work incorrectly, when use flashlight ''(known in Japan as Nebula: Echo Night [ネビュラ -エコーナイト])''<br /> |-<br /> | Ed, Edd n Eddy: The Mis-Edventures || ? || {{minorissues}} || ? || Cutscenes lag.<br /> |-<br /> | Endgame || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Enter the Matrix || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Ephemeral Fantasia || ? || {{majorissues}} || ? || Player character's body is massively corrupted and missing polygons/textures. Tried on Jak and Rogue.<br /> |-<br /> | Eragon || {{unplayable}} || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Espgaluda || ? || ? || {{playable}} ||<br /> |-<br /> | ESPN NFL 2K5 || ? || {{minorissues}} || ? || Menus are unnavigable due to a graphical glitch covering up half the screen, in-game is perfect<br /> |- <br /> | Eternal Ring || ? || {{official}} || ? || <br /> |-<br /> | Eternal Poison || ? || {{unplayable}} || ? || Black screen after PS2 logo<br /> |-<br /> | Evangelion: Jo || {{notavailable}} || {{notavailable}} || {{playable}} || Working great, No known issues<br /> |-<br /> | Everblue 2 || ? || {{minorissues}} || ? || Some geometry/terrain pop-in at edges of screen, known PCSX2 issue. Game plays absolutely fine regardless.<br /> |-<br /> | Evergrace || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Everybody's Tennis (Hot Shots Tennis) || {{official}} || {{official}} || ? || Known in Japan as ''Minna no Tennis (みんなのテニス)'' Check [[Talk:PS2 Classics Emulator Compatibility List#Everybody's Tennis/Hot Shots Tennis|Emulator Configuration]] for additional details.<br /> |-<br /> | Evil Dead: A Fistful of Boomstick || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Evil Dead: Regeneration || {{playable}} || {{playable}} || ? || Working great, no issues<br /> |-<br /> | Extermination || {{playable}} || {{minorissues}} || ? || Some Frame Drops in NTSC version<br /> |-<br /> | Ex Zeus || {{playable}} || ? || ? |<br /> |-<br /> | Eye Toy Play || {{unplayable}} || {{unplayable}} || {{unplayable}} || The eye toy camera doesnt connect due to no USB support/passthrough. On a side note, there was no issues otherwise.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;E&lt;/span&gt;{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == F ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | F1 06 || {{playable}} || ? || ? || Work at full speed, without any issues.<br /> |-<br /> | F355 Challenge || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | FAHRENHEIT (INDIGO PROPHECY) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Custom PS2 NTSC-U/C and PAL ISO reported &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; as well.<br /> |-<br /> | Fallout - Brotherhood of Steel || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 Logo.<br /> |-<br /> | The Fairly OddParents - Breakin' da Rules || ? || {{unplayable}} || ? || Game doesn't boot after PS2 logo.<br /> |-<br /> | Fantastic 4 (Fantastic Four) || ? || {{playable}} || ? || <br /> |-<br /> | Fantastic Four: Rise of the Silver Surfer || ? || {{majorissues}} || ? || Really bad slowdown, graphics appear to render perfectly.<br /> |-<br /> | FantaVision || {{official}} || {{official}} || ? || <br /> |-<br /> | Fast and The Furious, The || ? || {{unplayable}} || ? || Throw unhandled PF at GS thread while loading race. <br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 1 || {{playable}} || {{playable}} || ? || No issues.<br /> |-<br /> | FATAL FURY BATTLE ARCHIVES VOL. 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | Fatal Frame || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero&quot; in Europe and &quot;零 〜zero〜&quot; in Japan]<br /> |-<br /> | Fatal Frame II: Crimson Butterfly || ? || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero II&quot; in Europe and &quot;Zero ~Akai Chou~&quot; in Japan]<br /> |-<br /> | Fatal Frame III: The Tormented || {{playable}} || {{playable}} || ? || Seemingly perfect using Jak emu. [Known as &quot;Project Zero III&quot; in Europe and &quot;Zero: Shisei no Koe&quot; in Japan]<br /> |-<br /> | FIFA 2002 || {{majorissues}} || ? || ? || Loads up fine, players missing, changed kits etc no frame issues (Europe Version)<br /> |-<br /> | FIFA 12 || {{minorissues}} || ? || ? || Some sound problems but playable<br /> |-<br /> | FIFA Street || {{playable}} || ? || ? || <br /> |-<br /> | FIFA Street 2 || {{minorissues}} || ? || ? || Very minor graphical corruption on stage preview during &quot;select stage&quot;, inconsequential really.<br /> |-<br /> | Fight Club || {{unplayable}} || {{unplayable}} || ? || Absurd graphic patterns (severe graphical glitches) observed throughout, which makes the game unplayable. Tested with Jak and Rogue emulators.<br /> |-<br /> | Fight Night 2004 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 2 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Fight Night: Round 3 || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Final Fantasy X || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy X-2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Final Fantasy XII (International Zodiac Job System) || {{playable}} || {{playable}} || {{playable}} || No major issues encountered.&lt;br&gt;(IZJS doesn't exist in EU/NA territories, plays fine from JPN &lt;span style=&quot;background:#FF1000&quot;&gt;although the English patched version won't load past Pic1.png splash screen.)&lt;/span&gt;<br /> |-<br /> | Final Fight: Streetwise || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Fire Pro Wrestling Returns || ? || {{playable}} || ? || <br /> |-<br /> | Fireblade || {{minorissues}} || ? || ? || Terrain rendering has significant glitches<br /> |-<br /> | Fisherman's Challenge || ? || {{unplayable}} || ? || Graphic issues make game unplayable<br /> |-<br /> | FlatOut || {{playable}} || ? || ? || <br /> |-<br /> | FlatOut 2|| {{unplayable}} || ? || ? || Game menus are ok, but very low FPS during game make game unplayable<br /> |-<br /> | The Flintstones: Bedrock Racing || {{playable}} || ? || ? || <br /> |-<br /> | The Flintstones in Viva Rock Vegas || {{playable}} || ? || ? || <br /> |-<br /> | Ford Racing 3 || ? || {{minorissues}} || ? || Strange small texture glitches pertaining to shadows from vehicles whenever the camera is in close proximity. Also a thin white line about 5 feet in front of player vehicle that wraps around the entire terrain. No framerate or other texture issues.<br /> |-<br /> | Ford Street Racing (Ford Bold Moves Street Racing) || ? || {{majorissues}} || ? || low framrate<br /> |-<br /> | Forever Kingdom: Evergrace 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Forgotten Realms: Demon Stone || {{majorissues}} || ? || ? || Black lines over FMVs, constant spiky-poly-syndrome during gameplay.<br /> |-<br /> | Freedom Fighters || {{unplayable}} || {{playable}} || ? || &lt;span style=&quot;background:#FF1000&quot;&gt;SLES_51467 Crashes after PS2 logo.&lt;/span&gt; &lt;span style=&quot;background:#90FF90&quot;&gt; SLUS_20658 Works with no issues &lt;/span&gt;<br /> |-<br /> | Freekstyle || ? || {{unplayable}} || ? || Doesn't boot<br /> |-<br /> | Frequency || ? || {{playable}} || ? || <br /> |-<br /> | Frogger: Ancient Shadows || ? || {{playable}} || ? || Custom config fixes model glitchs. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Frogger:_Ancient_Shadow|Emulator Configuration]] for additional details. <br /> |-<br /> | Frogger: The Great Quest || ? || {{playable}} || ? || <br /> |-<br /> | Front Mission V || ? || {{playable}} || ? || screen tearing, fixable by --gs-uprender=none, as well as --host-display-mode=4:3<br /> |-<br /> | Front Mission 4 || ? || {{playable}} || ? || No noticeable issues<br /> |-<br /> | Fullmetal Alchemist and the Broken Angel || {{notavailable}} || {{majorissues}} || ? || It looks very blurry. Known in Japan as Hagane no Renkinjutsushi: Tobenai Tenshi.<br /> |-<br /> | Fullmetal Alchemist: Dream Carnival || {{notavailable}} || {{notavailable}} || {{playable}} || Works fine<br /> |-<br /> | Fur Fighters: Viggo's Revenge || ? || {{minorissues}} || ? || Runs fine, Main Menu has slight shaking issue.<br /> |-<br /> | Futurama || ? || {{minorissues}} || ? || Framerate drop and slow down in some areas<br /> |-<br /> | FU'UN SUPER COMBO || {{official}} || {{official}} || ? || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;F&lt;/span&gt;{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == G ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | G1 Jockey 3 || ? || {{playable}} || ? || <br /> |-<br /> | Gadget Racers || {{playable}} || ? || ? || <br /> |-<br /> | Galactic Wrestling featuring Ultimate Muscle - The Kinnikuman Legacy || ? || {{majorissues}} || ? || Missing character models during gameplay.Major graphical issues.Tested with Roguev1 emu, Jak emu &amp; KOF98 emu<br /> |-<br /> | Galerians: Ash || ? || {{majorissues}} || ? || Major graphical issues, screen keeps flashing, missing special effects, missing cutscene videos, missing examination results (grey screen on many screens)<br /> |-<br /> | Garfield: Lasagna World Tour || ? || {{playable}} || ? || <br /> |-<br /> | Garfield: Saving Arlene || {{playable}} || ? || ? || <br /> |-<br /> | Garou: Mark of the Wolves || {{notavailable}} || {{notavailable}} || {{playable}} || Perfect, no issues whatsoever. Also known as &quot;NeoGeo Online Collection Vol. 1 - Garou - Mark of the Wolves&quot;<br /> |-<br /> | Gauntlet: Dark Legacy || ? || {{playable}} || ? || Looks great, runs great on Roguev2 emulator, freezes on many others - including Jak. Some minor polygons vanish at edge of screen due to widescreen patch.<br /> |-<br /> | Gauntlet: Seven Sorrows || ? || {{majorissues}} || ? || Work, but low fps in menu and game (1-2fps)<br /> |-<br /> | G-Force || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Genji: Dawn of the Samurai || ? || {{unplayable}} || ? || Black screen after PS2 logo with Jak emu.<br /> |-<br /> | The Getaway ||{{playable}} || {{minorissues}} || ? || Game is fully working now , fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#The Getaway|Emulator Configuration]]<br /> |-<br /> | The Getaway: Black Monday || {{playable}} || {{playable}} || ? ||Fix for crash in the Chapter 5 (PAL) Check [[Talk:PS2 Classics Emulator Compatibility List#The Getaway: Black Monday|Emulator Configuration]] for additional details.<br /> |-<br /> | Ghost in the Shell: Stand Alone Complex || {{playable}} || ? || ? || No issues of note, unpassable door glitch fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Ghost in the Shell: Stand Alone Complex|Emulator Configuration]] for further information.<br /> |-<br /> | Ghostbusters || {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator<br /> |-<br /> | Ghost Rider|| {{playable}} || {{playable}} || ? || Fully playable using Bully v2 Emulator.<br /> |-<br /> | Ghosthunter || {{minorissues}} || {{unplayable}} || ? || SCES_52156 Game Crashes if you select 60hz or progressive scan as a refresh rate but works well on 50hz does have some issues with the skybox glitching or not loading correctly. Same glitch as PS3, stuck with the church ladder. NTSC versions freezes after publisher logos.<br /> |-<br /> | GigaWing Generations || {{playable}} || ? || ? || Make sure to select 60Hz on SLES-53548 version, else game runs slower.<br /> |-<br /> | Gitaroo Man (Gitaroo-Man) || ? || {{minorissues}} || ? || Slight flickering during tutorial and shark level (lighting bug?). Game plays perfectly, beat the game with 0 audio/gameplay stutter.<br /> |-<br /> | Global Defense Force || {{playable}} || ? || {{playable}} || Known in Japan as (''Simple 2000 Series Vol. 81: The Chikyuu Boueigun 2 (THE地球防衛軍2 Za Chikyū Bōeigun 2'')<br /> |-<br /> | Go, Diego, Go! Safari Rescue || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | The Godfather || {{playable}} || ? || ? ||No known issues<br /> |-<br /> | God Hand || {{playable}} || {{playable}} || ? || patched the missing ground glitch, see [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Hand|Emulator config]] for help.<br /> |-<br /> | God of War || {{playable}} || {{playable}} || {{playable}} || Fixed low framerate and maximum glitches were patched, works 100% fine (PAL, NTSC, Japanese and Korean version). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_Of_War|Emulator config details]]<br /> |-<br /> | God of War II ||{{minorissues}} || {{minorissues}} || {{playable}} || Most of the glitches were patched, however the game lags few times (during cutscenes as well) and gets back to normal. '''Recommended settings''' in-game must be enabled : Progressive Scan and Widescreen. Failing to do so will result in graphical bugs in future game levels (Tested for NTSC and PAL versions). Check [[Talk:PS2_Classics_Emulator_Compatibility_List#God_of_War_2|Emulator config details]]. &lt;span style=&quot;background:#90FF90&quot;&gt; Korean version (SCKA_300.06) and Japanese version (SLPM_670.13) works with no issues at all &lt;/span&gt;<br /> |-<br /> | Godzilla: Save the Earth || {{unplayable}} || ? || ? || Freezes randomly for no predictable reason.<br /> |-<br /> | Godzilla: Unleashed || {{unplayable}} || ? || ? || Fatal error a few frames after loading a match.<br /> |-<br /> | Go Kart Rally || {{playable}} || ? || ? ||<br /> |-<br /> | Goldeneye: Rogue Agent || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Gradius 3 &amp; 4 || ? || {{playable}} || ? || Works fine.<br /> |-<br /> | Gradius V || ? || {{unplayable}} || {{playable}} || Requires MVTU to be disabled, doable in PCSX2 but no such option has yet been discovered in PS2emu.<br /> |-<br /> | Gran Turismo 2000 Trial Version || ? || ? || {{minorissues}} || Minor graphical issues.<br /> |-<br /> | Gran Turismo Concept 2002 Tokyo-Geneva || {{minorissues}} || ? || ? || Minor graphical issues. works well overall.<br /> |-<br /> | Gran Turismo 3: A-Spec || {{minorissues}} || {{minorissues}} || ? || The only minor graphical issue is the ghost cars aren't transparent and are solid.<br /> |-<br /> | Gran Turismo 4 - Prologue|| {{minorissues}} || {{minorissues}} || ? || runs well with upscaling + edgesmooth on... used 4:3 but 16:9 option is in-game...<br /> |-<br /> | Gran Turismo 4 || {{minorissues}} || {{minorissues}} || ? || Minor graphical glitches but good FPS.For NTSC go for 480p resolution, it's great. the japanese version is mentioned lower in this page in the bios section, it seems to have a special patch... need more info ideally.<br /> |-<br /> | Grand Prix Challenge || {{majorissues}} || {{majorissues}} || ? || Road textures are incorrect / rainbow color / corrupt. Low frame rate in wet weather races.<br /> |-<br /> | Grand Theft Auto III || {{official}} || {{official}} || ? || style=&quot;background-color:#FFAA00;&quot; | Flickering lightning, when using a custom image file (without official patches) - Customized Emulator Configuration File might be helpful<br /> |-<br /> | Grand Theft Auto: San Andreas || {{official}} || {{official}} || ? || style=&quot;background-color:#FFFF90;&quot; | Frame-pacing issues due to 25 FPS / 30 FPS conversion from the original PAL-code, when playing the &quot;official&quot; '''European Version''' [http://www.eurogamer.net/articles/digitalfoundry-2015-grand-theft-auto-san-andreas-face-off]<br /> |-<br /> | Grand Theft Auto: Vice City || {{official}} || {{official}} || ? || <br /> |-<br /> | Grand Theft Auto: Vice City Stories || ? || {{unplayable}} || ? || Ok framerate when pursuing the map, but once a gun fight breaks out, the fps dips.<br /> |-<br /> | Grand Theft Auto: Liberty City Stories || {{unplayable}} || ? || ? || Very low framerate. Unplayable<br /> |-<br /> | Grandia Xtreme || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Grandia II || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | Grandia III || {{notavailable}} || {{playable}} || ? || <br /> |-<br /> | Gregory Horror Show || {{unplayable}} || {{notavailable}} || ? || Black screen after PS2 splash, using Jakemu, kofemu &amp; RogueV2emu,Crash is caused by a weird transfer from IOP to EE through SIF that has a size &gt; 0x80000000. Clamping the size fixes the crash in psxc2. Unknown if this is the issue.<br /> |-<br /> | GrimGrimoire || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Growlanser Generations / Growlanser 2 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Growlanser Generations / Growlanser 3 || ? || {{unplayable}} || ? || Black screen on save.<br /> |-<br /> | Guilty Gear: Isuka || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear X2 || ? || {{playable}} || ? || Runs and looks absolutely great. [Also known as &quot;Guilty Gear XX&quot;]<br /> |-<br /> | Guilty Gear X2 Reloaded: The Midnight Carnival || {{playable}} || ? || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guilty Gear XX Accent Core Plus || ? || {{playable}} || ? || Runs and looks absolutely great.<br /> |-<br /> | Guitar Hero || {{unplayable}} || {{unplayable}} || ? || Both PAL and NTSC-U versions freeze when trying to load any song or start career mode.<br /> |-<br /> | Guitar Hero II || ? || {{majorissues}} || ? || The freezes when about to start a game of career and quick play. Unsure about when it is finished. Cannot use a PS4 guitar either you must use the controller.<br /> |-<br /> | Guitar Hero III || ? || {{unplayable}} || ? || the game stop at black screen after the loading of the title screen ends.<br /> |-<br /> | Gun || {{unplayable}} || {{unplayable}} || {{notavailable}} || Game freezes while loading on the title screen. Only plays Activision developer and publisher cinematics at the beginning. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | GunGriffon Blaze || ? || {{playable}} || ? || Plays perfectly on Roguev2 emulator, freezes on Pic1.png or after PS2 logo on half a dozen other emulators, including Jak and Star Ocean.<br /> |-<br /> | Guy Game, The || ? || {{minorissues}} || ? || Plays perfectly except for some broken text during videos. Game is playable 100% despite said issues.<br /> |}<br /> <br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;G&lt;/span&gt;{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == H ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Half-Life [''HλLF-LIFE''] || {{playable}} || {{minorissues}} || ? || Frame drops into the 20s, might be due to emulation. I run a Spanish copy of this game, and with a few compatibility tweaks runs perfectly.<br /> |-<br /> | Hard Hitter Tennis (Hard Hitter 2) || ? || {{playable}} || ? || Known in Japan as ''Magical Sports: Hard Hitter 2 (マジカルスポーツ Hard Hitter 2)''<br /> |-<br /> | Harry Potter and the Chamber of Secrets || {{Unplayable}} || {{Unplayable}} || ? || Throws an Unhandled PageFault.<br /> |-<br /> | Harry Potter and the Goblet of Fire || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Half-Blood Prince || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter and the Order of the Phoenix || ? || {{Unplayable}} || ? || Doesn't boot.<br /> |-<br /> | Harry Potter: Quidditch World Cup || ? || {{Unplayable}} || ? || Doesn't boot past initial splash screen.<br /> |-<br /> | Harry Potter and the Philosopher's Stone || {{minorissues}} || ? || ? || It works , the only thing you need to know is the game will lag in some scenes , but it is still playable. See https://www.youtube.com/watch?v=2DomP_KOCZo<br /> |-<br /> | Harry Potter and the Prisoner of Azkaban || ? || {{Unplayable}} || ? || Black screen<br /> |-<br /> | Harvest Moon: A Wonderful Life (Special Edition) || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari: Oh! Wonderful Life (牧場物語~ワンダフルライフ)''<br /> |-<br /> | Harvest Moon: Save the Homeland || {{official}} || {{official}} || ? || Known in Japan as ''Bokujō Monogatari 3: Heart ni Hi o Tsukete (牧場物語3 ハートに火をつけて)''<br /> |-<br /> | Haunting Ground || {{majorissues}} || {{unplayable}} || {{unplayable}} || Seemed to run fine, minor shadow casting issues but nothing intrusive, however the screen goes black after you get hit by a monster and it doesn't recover. Audio continues. Hellish freezes of sound and fall fps when monster appears<br /> |-<br /> | Headhunter || {{minorissues}} || {{majorissues}} || ? || SCES-50500 plays absolutely fine, no major graphical issues whatsoever. Some minor slowdown in city during heavy traffic. &lt;span style=&quot;background:#FFAA00&quot;&gt;SLUS_20416 loads ok and runs without any fps drops but the screen and textures are heavily glitched making it unenjoyable to play.&lt;/span&gt;<br /> |-<br /> | Headhunter Redemption || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | Heatseeker || {{minorissues}} || ? || ? ||Some graphical glitches, font in menu is partially broken<br /> |-<br /> | Heracles: Battle With The Gods || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Heracles: Chariot Racing || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Herdy Gerdy || ? || {{majorissues}} || ? || Very low frame rate<br /> |-<br /> | Heroes of the pacific || {{unplayable}} || ? || ? || Saves before access game, but doesn’t boot. Only PAL tested.<br /> |-<br /> | Homura || {{playable}} || {{notavailable}} || ? || <br /> |-<br /> | High Heat Major League Baseball 2002 || ? || {{playable}} || ? ||<br /> |-<br /> | The History Channel: Battle for the Pacific || ? || {{majorissues}} || ? || Weapon textures don't render properly. Major slowdown<br /> |-<br /> |History Civil War: Secret Missions||?||{{playable}}||?|| Playable with no issues<br /> |-<br /> | Hitman: Silent Assassin || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Hitman: Contracts || {{unplayable}} || {{unplayable}} || ? || Game crashes while loading, before going to main menu. Tested Jak and Rogue emulators for both versions.<br /> |-<br /> | Hitman: Blood Money || {{unplayable}} || {{unplayable}} || ? || Black screen/freeze after selecting video output in Rogue emulator. Jak emulator crashes while loading and before going main menu.<br /> |-<br /> | The Hobbit (The Hobbit: The Prelude to the Lord of the Rings) || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Hokuto no Ken: Shinpan no Sōsōsei Kengō Retsuden || {{notavailable}} || {{notavailable}} || {{playable}} || Only works with RogueV1 emu. Freezes with other emus. AKA Fist of the North Star <br /> |-<br /> | Hot Wheels: Stunt Track Challenge || ? || {{unplayable}} || ? || No visuals other then a gray screen. The menu is still working and the music is playing but you can't see anything. AKA the game still plays however you'll be practically a blind person<br /> |-<br /> | Hot Wheels: Beat That || ? || {{unplayable}} || ? || Menus works fine. Graphical glitches during car selection (no background - polygons shown on cars). Game crashes after loading a race. <br /> |-<br /> | Hulk || ? || {{playable}} || ? || Tested and Works Perfect. <br /> |-<br /> | Hudson Selection Volume 1: Cubic Lode Runne || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hudson Selection Volume 2: Star Soldier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Does not boot.<br /> |-<br /> | Hudson Selection Volume 3: Bonk! || {{notavailable}} || {{notavailable}} || {{unplayable}} || Freeze on pic1 splash. Tried half a dozen emulators and remade ISO half a dozen times. Completely stumped.<br /> |-<br /> | Hudson Selection Volume 4: Adventure Island || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Hunter the Reckoning: Wayward || {{majorissues}} || ? || ? || Substantial graphics corruption, flickering geometry, missing floor tiles/polygons.<br /> |-<br /> | HSX: Hypersonic.Xtreme || {{unplayable}} || ? || ? || No sound. Tracks are not visible. World Editor buggy. Known in Europe as G-Surfers.<br /> |-<br /> | Hyper Street Fighter II: The Anniversary Edition || {{playable}} || ? || ? || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;H&lt;/span&gt;{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == I ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ibara || ? || ? || {{playable}} ||<br /> |-<br /> | Ichigeki Sacchuu!! HoiHoi-San || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | ICO || {{playable}} || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing || ? || {{playable}} || ? ||<br /> |-<br /> | IHRA Drag Racing 2 || ? || {{playable}} || ? || <br /> |-<br /> | Impossible Mission || {{playable}} || ? || ? || <br /> |-<br /> | In the Groove ||?|| {{playable}} || ? || Works with no issues<br /> |-<br /> | The Incredible Hulk: Ultimate Destruction || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Indiana Jones and the Emperor's Tomb || ? || {{unplayable}} || ? || Will start with minor glitches, but game crashes before being able to complete first level<br /> |-<br /> | Indiana Jones and the Staff of Kings || {{minorissues}} || {{minorissues}} || ? || Some graphical glitches. PAL version looks a bit blurry. Cutscenes stutter slightly, boost mode might fix this (haven't tried).<br /> |-<br /> | Innocent Life: A Futuristic Harvest Moon || ? || {{playable}} || ? || No issues noticed in my short testing. Works on Roguev2 and StarOcean3. Jakv2 emu causes substantial slowdown in FMVs.<br /> |-<br /> | InuYasha: Feudal Combat || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | InuYasha: Secret of the Cursed Mask || ? || {{minorissues}} || ? || Occasional flickering during battle transition and lip movements are choppy or nonexistent during dialogue.<br /> |-<br /> | I-Ninja || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Iridium Runners || ? || {{minorissues}} || ? || Small FPS drop when in a race, the title screen doesnt render properly, and a few minor graphical issues.<br /> |-<br /> | Iron Man (Iron Man: The Official Videogame) || {{playable}} || {{minorissues}} || ? || Missing text on some menus, broken shine/lighting on Iron Man post-first mission.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;I&lt;/span&gt;{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == J ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Jackass: The Game || {{minorissues}} ||{{ minorissues}} || ? || Flickering characters on some stages, only tried Rogue Emu.<br /> |-<br /> | Jade Cocoon 2 || ? || {{playable}} || ? || No issues.<br /> |-<br /> | Jackie Chan Adventures || {{unplayable}} || ? || ? || the game, and hangs on the loading screen.<br /> |-<br /> | rowspan=&quot;2&quot; | Jak and Daxter: The Precursor Legacy || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA02541_00-SCPS150210000001)<br /> |-<br /> | style=&quot;background-color:#FFAA00;&quot; | PAL Custom Image graphical glitches, framerate problems, Maybe some issues could be fixed with a custom Emulation config or patch <br /> |-<br /> | rowspan=&quot;2&quot; | Jak II: Renegade || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || style=&quot;background:#55cc55; color:white;&quot; | Official &quot;PS2 Classics on PS4&quot; Title released in Japan (JP9000-CUSA08581_00-SCPS150570000001)<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | PAL Custom Image doesn't boot past the PS2 logo <br /> |-<br /> | rowspan=&quot;2&quot; | Jak 3 || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; {{official}} || rowspan=&quot;2&quot; style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07841'''_00-JPPS400000000001).<br /> |-<br /> | style=&quot;background-color:#FFFF90;&quot; | PAL Custom Image experiences framerate issues during tutorial area <br /> |-<br /> | Jak X: Combat Racing || {{official}} || {{official}} || style=&quot;background-color:#FFB6C1;&quot; | PS2 Classics || style=&quot;background-color:#FFB6C1;&quot; | This Game is released as a official &quot;PS2 Classics on PS4&quot; Title in Japan, but the language is still in English, due to the fact that there was no physical PS2 version released in Japan. It shares the same [[Productcode]] with the NTSC-U/C version release for PS4 (UP9000-'''CUSA07842'''_00-JPPS400000000001).<br /> |-<br /> | Jak and Daxter: The Lost Frontier || ? || {{unplayable}} || {{notavailable}} || Starts freezing randomly after ~1 hour into the game and eventually freezes every single time on a bridge that progresses the main story roughly 2.5 hours in<br /> |-<br /> | Jaws Unleashed || ? || {{unplayable}} || ? || Freeze at loading screen before main menu<br /> |-<br /> | James Bond 007: Agent Under Fire || ? || {{unplayable}} || ? || Blackscreen after first intro video. Can still hear audio during blackscreen <br /> |-<br /> | James Bond 007: Everything or Nothing || ? || {{majorissues}} || ? || Low framerate &lt;!--// but it has sexy Heidi Klum included in this Game :P //--&gt;<br /> |-<br /> | James Bond 007: From Russia with Love || ? || {{majorissues}} || ? || Framerate slowdowns throughout the opening level. Did not carry on<br /> |-<br /> | James Bond 007: Nightfire (007: Nightfire) || {{unplayable}} || {{minorissues}} || ? || Completed prelude/tutorial doesnt load through to main menu making unplayable. User will need to quit before completing the tutorial and access main menu manually. PAL version seems to crash a lot during the prelude/tutorial right as you begin the driving section <br /> |-<br /> | James Bond 007: Quantum of Solace (007: Quantum of Solace) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Jimmy Neutron: Boy Genius || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Judge Dredd: Dredd vs. Death || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Jumper: Griffin's Story || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Just Cause || {{playable}} || ? || ? || Jak emu fixes the crash at the first mission.<br /> |-<br /> | Jurassic: The Hunted (Jurassic Hunter) [Jurassic: The Hunter] || {{notavailable}} || {{playable}} || {{notavailable}} || No issues noticed.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;J&lt;/span&gt;{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == K ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Kaan: Barbarian's Blade || {{playable}} || {{notavailable}} || {{notavailable}} || No known issues.<br /> |-<br /> | Kamen Rider Blade || {{notavailable}} || {{notavailable}} || {{minorissues}} || Minor issues in animations (invisible models, missing body parts, missing animations).<br /> |-<br /> | Kamen Rider Kabuto || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues.<br /> |-<br /> | Kao the Kangaroo: Round 2 || ? || {{unplayable}} || {{notavailable}} || Major issue with GFX makes game unplayable.<br /> |-<br /> | Katamari Damacy || {{notavailable}} || {{minorissues}} || ? || Items sticked to the Katamari are invisible.<br /> |-<br /> | We Love Katamari || {{notavailable}} || {{majorissues}} || ? || Static 2D image in training level 2<br /> |-<br /> | Kelly Slater’s pro Surfer || {{playable}} || ? || ? || Works fine. Bully emu used<br /> |-<br /> | Kengo - Master of Bushido || {{playable}} || ? || ? || No issues noticed<br /> |-<br /> | Killer7 || {{playable}} || {{playable}} || ? || Completely fine with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Killer7|Emulator Configuration]] for additional details.<br /> |-<br /> | Kill Switch (kill.switch) || {{playable}} || {{minorissues}} || {{notavailable}} || PAL works with Bully emu. Need to test with NTSC.<br /> |-<br /> | Killzone || {{unplayable}} || ? || {{unplayable}} || Very low framerate - Unplayable.<br /> |-<br /> | Kim Possible: What's the Switch || {{playable}} || ? || ? || fixed lag during cutscenes; see here for more details [[Talk:PS2 Classics Emulator Compatibility List#Kim Possible: What's the Switch|Emulator Configuration]]<br /> |-<br /> | Kinetica || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | The King of Fighters: '94 Re-Bout || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: '98 Ultimate Match || {{official}} || {{official}} || ? || <br /> |-<br /> | The King of Fighters: 2000 || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC=J) = playable<br /> |-<br /> | The King of Fighters: 2002 Unlimited Match [Tougeki Ver.] || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3D background stage polygons glitch over character sprites affecting playability of game.<br /> |-<br /> | The King of Fighters: 2003 || ? || {{majorissues}} || ? || 3D background stage polygons glitch over character sprites affecting playability of game. Not *as* bad as 94RB or 2002UM, but still visible in 2 or 3 stages.<br /> |-<br /> | The King of Fighters: Maximum Impact (KOF Maximum Impact) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact 2 (The King of Fighters 2006) || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: Maximum Impact Regulation-A || {{notavailable}} || {{notavailable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NeoWave || {{playable}} || {{playable}} || {{playable}} || Plays great, no noticeable issues.<br /> |-<br /> | The King of Fighters: NESTS Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Only released in Japan, Dreamcast versions are Japanese only, NeoGeo versions are multilanguage. Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching. Game is supposed to have scanlines shader yet they don't function, they sometimes appear during scene transitions, but never interfere with game.<br /> |-<br /> | The King of Fighters: Orochi Collection&lt;br&gt;(The King of Fighters Collection: The Orochi Saga) || {{official}} || {{official}} || ? || style=&quot;background-color:#90FF90;&quot; | Set &quot;--gs-uprender=none&quot; in config to fix black box/outlines on characters. No WS mode either so set &quot;--host-display-mode=4:3&quot; to prevent 16:9 stretching.<br /> |-<br /> | The King of Fighters: XI || ? || {{playable}} || ? || NTSC version plays without issue, previous report of unplayable was due to bad rip or failed WS patching.<br /> |-<br /> | The King of Route 66 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Kingdom Hearts || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches but other than that it's perfectly okay.<br /> |-<br /> | King's Field: The Ancient City || ? || {{playable}} || ? || --vu1=jit-sync allows game to boot, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Also requires EE Rounding Mode to fix gameplay issues.<br /> |-<br /> | Kingdom Hearts II [Final Mix +] || {{minorissues}} || ? || ? || Game plays fine, some minor graphical glitches [(Tested using PS4 PRO 5.05 Kexploit) - (Also works on PS3 CFW Rebug 4.82)].<br /> |-<br /> | Klonoa 2: Lunatea's Veil || {{unplayable}} || {{unplayable}} || ? || you cannot finish 1st stage due to misplaced items even with the config fix!! Heavy glitches on characters models only in cutscenes (--fpu-no-clamping=1 on config file fixes misplaced items on stages). Check [[Talk:PS2 Classics Emulator Compatibility List#Klonoa 2|Emulator Configuration]] for additional details (Known in Japan as ''Kaze no Klonoa 2: Sekai ga Nozonda Wasuremono [風のクロノア2 世界が望んだ忘れもの]'').<br /> |-<br /> | Knights of the Temple: Infernal Crusade || {{minorissues}} || {{notavailable}} || {{notavailable}} || White outline in the corners and around some characters.<br /> |-<br /> | Knockout Kings 2002 || ? || {{unplayable}} || ? || Game immediately freezes within seconds of starting a bout.<br /> |-<br /> | Kuma Uta || {{notavailable}} || {{notavailable}} || {{playable}} || No issues whatsoever. (Alternatively known as ''&quot;Bear Song&quot;'' in English ''(くまうた)'')<br /> |-<br /> | Kuon || ? || {{unplayable}} || {{majorissues}} || Game immediately freezes when starting a new game. South Korean Ver(NTSC-J) issue = Yin Phase freezes when first starting. But Yang Phase playable.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;K&lt;/span&gt;{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == L ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | L.A. Rush || ? || {{majorissues}} || ? || Almost every cutscene and FMV is a black screen, including the publisher, demo, ect, but they are still playing. Ingame, it drops frames when you do anything other than drive like a normal person. Not a very pleasant experience, but its playable.<br /> |-<br /> | Largo Winch - Empire Under Threat || {{unplayable}} || ? || ? || Freeze after the first ingame custscene (just before the gameplay)<br /> |-<br /> | Legacy of Kain: Soul Reaver 2 || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Soul Reaver 2|Emulator Configuration]]<br /> |-<br /> | Legacy of Kain: Blood Omen 2 || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Legacy of Kain: Defiance || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List#Legacy of Kain: Defiance|Emulator Configuration]]<br /> |-<br /> | Legaia 2: Duel Saga || ? || {{playable}} || ? || No issues of any note.<br /> |-<br /> | Legend of Spyro: Dawn of the Dragon, The || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Legends of Wrestling II || {{playable}} || ? || ? || No known issues<br /> |-<br /> |Lego Batman: The Videogame ||?|| {{minorissues}} ||?|| Very few graphical glitches and on some points frame rate drops, but can confirm 97% game is playable.<br /> |-<br /> | Lego Indiana Jones: The Original Adventures || ? || {{majorissues}} || ? || Major FPS drops in cutscenes and in certain parts of levels, particularly ones with many objects on screen. Somewhat playable, but can be annoying.<br /> |-<br /> | Lego Star Wars: The Video Game || {{playable}} || {{playable}} || ? || No known issues <br /> |-<br /> | Lego Star Wars II: The Original Trilogy || {{minorissues}} || ? || ? || Minor graphical issues at the level select menu. Gameplay itself is fine<br /> |-<br /> |Leisure Suit Larry: Magna Cum Laude || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Life Line || ? || {{unplayable}} || ? || Requires USB microphone to play on PS2. No hardware support in PS2emu(?)<br /> |-<br /> | Looney Tunes: Acme Arsenal || ? || {{majorissues}} || ? || Playable, but game does not reset after death. <br /> |-<br /> | Looney Tunes: Back in Action || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Looney Tunes: Space Race || ? || {{minorissues}} || ? || Playable, with minor graphic issues. <br /> |-<br /> | The Lord of the Rings: Aragorn's Quest || {{playable}} || ? || ? || No known issues<br /> |-<br /> | The Lord of the Rings: The Fellowship of the Ring || {{minorissues}} || {{minorissues}} || ? || Small FPS drops in level with smoke or fog.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;L&lt;/span&gt;{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == M ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Madden NFL 12 || ? || {{minorissues}} || {{notavailable}} || Completely playable, despite minor texture (filtering?) issues on the field and some &quot;jittering&quot; on the image during wide-angle views.<br /> |-<br /> | Made Man || {{unplayable}}||{{unplayable}}||?|| Freezes after PS2 logo with a black screen error. Jak Emu crashes ps4.<br /> |-<br /> | Mafia || ? || {{unplayable}} || ? || After intro video blackscreen<br /> |-<br /> | Magna Carta: Tears of Blood || ? || {{playable}} || ? || Seems to be fine, no issues of note.<br /> |-<br /> | Maken Shao: Demon Sword || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Mana Khemia 2: Fall of Alchemy || {{notavailable}} || {{playable}} || ? ||<br /> |-<br /> | Manhunt || {{official}} || {{official}} || {{notavailable}} || [Homebrew ISO has overpowering light flares/glare. Fix added from official PS2 Classic. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Manhunt|Emulator Configuration]] for further information.]<br /> |-<br /> | Manhunt 2 || {{Playable}} || {{minorissues}} || {{notavailable}} || Patched low framerate using Jak v2 emulator and PAL version plays with no hassle. NTSC version works fine but at some point there are framerate drop issue however that won't affect the play. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#Manhunt_2|emulator configuration]].<br /> |-<br /> | The Mark of Kri || {{official}} || {{official}} || ? || <br /> |-<br /> | Marc Ecko's Getting Up: Contents Under Pressure || {{minorissues}} || {{minorissues}} || ? || Noticeable lag during cutscenes; Gameplay is fine<br /> |-<br /> | Marvel vs. Capcom 2: New Age of Heroes || ? || {{playable}} || ? || <br /> |-<br /> | Marvel Nemesis: Rise of the Imperfects || ? || {{unplayable}} || ? || Sound lags frame rate low and thread error on loading screen<br /> |-<br /> | Marvel Ultimate Alliance || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Marvel Ultimate Alliance 2 || ? || {{unplayable}} || ? || Freezes after PS2 logo screen, game requires specialised hack. PCSX2 states &quot;disable MTVU (Multi-Threaded microVU1)&quot; to fix loading freeze. Unknown PS2emu equivalent.<br /> |-<br /> | Mashed: Drive to Survive || {{unplayable}} || ? || ? || Crashes on startup<br /> |-<br /> | Mashed: Fully Loaded || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Mat Hoffman's Pro BMX 2 || {{playable}} || {{playable}} || ? || Works fine.<br /> |-<br /> | Matrix, The: Path of Neo || {{minorissues}} || {{minorissues}} || ? || Intense texture flickering on main menu, and minor texture flickering in FMVs with subtitles enabled. Occasional texture flicker in gameplay, but overall completely playable.<br /> |-<br /> | Max Payne || {{official}} || {{official}} || ? || <br /> |-<br /> | Max Payne 2: The Fall of Max Payne || {{playable}} || ? || {{notavailable}} || Patched green, blue and red graphical issues (PAL version only, not tested for NTSC). The game works well, please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Max_Payne_2|Emu config details here]]. &lt;span style=&quot;color:white; background:Red&gt; Just a bug, player must avoid bullet time mode, as this reduces fps to great extent.&lt;/span&gt;<br /> |-<br /> | Maximo: Ghosts to Glory || {{playable}} || {{playable}} || ? || Played just under an hour, no glitches or issues evident.<br /> |-<br /> | Maximo vs. Army of Zin || {{playable}} || {{playable}} || ? || Played only 5 minutes but without noticeably glitches<br /> |-<br /> | McFarlane's Evil Prophecy || {{playable}} || ? || {{notavailable}} || No known issues<br /> |-<br /> | MDK 2: Armageddon || ? || {{playable}} || ? || <br /> |-<br /> | Medal of Honor: Frontline || {{majorissues}} || ? || ? || Main menu runs fine when gameplay starts severe frame rate issues and graphical glitches <br /> |-<br /> | Medal of Honor: Rising Sun || {{playable}} || {{unplayable}} || ? || See https://www.youtube.com/watch?v=BcN5L9wE__c // SLES-51873/SLUS-20753 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Medal of Honor: European Assault || {{minorissues}} || {{unplayable}} || ? || The game now runs and it doesn't crash anymore at the first mission , but it could freeze during gameplay for a few seconds , also the game could lag a little bit at the start of missions but it is not persistent. See https://www.youtube.com/watch?v=9fpyZs_B7EY // SLES-53332/SLUS-21199 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.//SLES-53333(fr) fixed with Starocean 3 emu.<br /> |-<br /> | Medal of Honor: Vanguard || {{playable}} || {{unplayable}} || ? || PAL version works fine see https://www.youtube.com/watch?v=hXVD5fExCGc // SLES-54683/SLUS-21597 In both menu and perforamnce is fine but in first level game crashes with error CE-34878-0.<br /> |-<br /> | Mega Man Anniversary Collection || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mega Man X7 || ? || {{majorissues}} || {{majorissues}} || Audio is completely broken once you start the game. Voices are garbled and sped up, and music runs at 700% tempo.<br /> |-<br /> | Mega Man X8 (Megaman X8) || {{playable}} || ? || {{playable}} || No known issues<br /> |-<br /> | Mega Man X Command Mission || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Mega Man X Collection || ? || {{playable}} || ? || Works perfect<br /> |-<br /> | Melty Blood Actress Again || {{notavailable}} || {{notavailable}} || {{playable}} || No known issues<br /> |-<br /> | Metal Arms: Glitch in the System || {{majorissues}} || ? || ? || FMVs stutter and there is a pervasive spiky-poly-syndrome glitch going on.<br /> |-<br /> | Metal Gear Solid 2: Sons of Liberty || ? || {{minorissues}} || ? || plays fine no patching. substance vr freezes EE error while trying to save.<br /> |-<br /> | Metal Gear Solid 2: Substance || {{majorissues}} || {{majorissues}} || ? || Huge slowdown in Tanker chapter when outside in the rain, otherwise plays fine... also tested out 16:9 Patched .ISO with a 16:9 config, Perfection. (swapping Square with R2 would be nice to avoid the Digital face button issue / limitation... Aim/Shoot instead of having to unequip a weapon to come out of Aiming without discharging...<br /> |-<br /> | Metal Gear Solid 3: Snake Eater || {{unplayable}} || {{unplayable}} || {{unplayable}} || Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Metal Gear Solid 3: Subsistence || {{unplayable}} || {{unplayable}} ||{{unplayable}} || Same issue as in MGS3 Snake Eater.<br /> |-<br /> | Metal Saga || ? || {{unplayable}} || ? || SatCom black screen issues fixed due to combination of Jak &amp; Daxter Precursor emulator, and config switches. Check [[Talk:PS2 Classics Emulator Compatibility List#Metal Saga|Emulator Configuration]] for additional details. Game freezes during combat. Returned to unplayable status.<br /> |-<br /> | Metal Slug 3D || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Metal Slug 6 || {{notavailable}} || {{notavailable}} || {{playable}} || No issues at all, working great using Metal Slug Anthology emulator.<br /> |-<br /> | Metal Slug Anthology || {{official}} || {{official}} || ? || Known in Japan as ''Metal Slug Complete (メタルスラッグコンプリート)'' In custom made pkg you need to patch iso to make part 6 work (same as ps3, and pcsx2)<br /> |-<br /> | MetropolisMania 2 || ? || {{playable}} || ? || Included in Japan by the ''Simple 2000 Series Vol. 39: The Boku no Machi Zukuri: Machi-ing Maker++ (THE ぼくの街づくり〜街ingメーカー++〜)''<br /> |-<br /> | Mercenaries - Playground of Destruction || {{unplayable}} || {{unplayable}} || ? || Very low framerate, PAL Version also suffers with low frame rate<br /> |-<br /> | Mercenaries 2 - World in Flames || {{unplayable}} || {{unplayable}} || ? || Very low framerate<br /> |-<br /> | Michigan: Report From Hell || {{playable}} || ? || ? || Seems to work great, no issues detected.<br /> |-<br /> | Micro Machines V4 || ? || {{unplayable}} || ? || Game locks up while loading up prematch start.<br /> |-<br /> | Midnight Club: Street Racing || {{playable}} || ? || ? || <br /> |- <br /> | Midnight Club ll || {{playable}} || {{playable}} || ? || The USA version seems to run more smoother.<br /> |-<br /> | Midnight Club 3: DUB Edition || {{playable}} || ? || ? || No noticeable issues, works great.<br /> |-<br /> | Midnight Club 3: DUB Edition Remix || ? || {{playable}} || ? || No noticeable issues, seems to work perfect.<br /> |-<br /> | Minority Report: Everybody Runs || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Mission: Impossible: Operation Surma || {{minorissues}} || ? || ? || Dance shadow.<br /> |-<br /> | Mister Mosquito || {{minorissues}} || {{minorissues}} || ? || Some furniture textures have a screen of black dirt.<br /> |-<br /> | Mobile Light Force 2 || ? || {{playable}} || ? || Also Known As: ''Shikigami no Shiro (JP)''<br /> |-<br /> | Mobile Suit Gundam: Encounters in Space || ? || {{playable}} || ? || No issues noticed. <br /> |-<br /> | Mobile Suit Gundam: Federation vs Zeon || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Mojo! || ? || {{playable}} || ? ||<br /> |-<br /> | Monster Attack || {{playable}} || ? || {{playable}} || Known in Japan as (Simple 2000 Series Vol. 31: The Chikyuu Boueigun (THE地球防衛軍 Za Chikyū Bōeigun) <br /> |-<br /> | Monster House || ? || {{minorissues}} || ? ||Some graphical glitches<br /> |-<br /> | Monster Hunter || ? || {{playable}} || ? ||Seems to work great<br /> |-<br /> | Monster Hunter 2dos || {{playable}} || ? || ? || Perfect<br /> |-<br /> | Monster Rancher 3 || {{minorissues}} || {{minorissues}} || ? || Very very minor graphical glitches that are almost invisible.<br /> |-<br /> | Monsters vs. Aliens || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Mortal Kombat: Armageddon || ? || {{minorissues}} || ? || Small graphical glitches relating to small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.) Otherwise, runs perfectly fine. Motor Kombat has some slowdown when too many karts on screen at once.<br /> |- <br /> | Mortal Kombat: Deadly Alliance || ? || {{unplayable}} || ? || Skip initial profile creation screen on first-launch, create save/profile manually once you reach the title screen. No noticeable gameplay/graphical issues. UNPLAYABLE because L1 L2 R2 buttons do not register unable to do combos or load profile NEEDS FIX. <br /> |-<br /> | Mortal Kombat: Deception || ? || {{playable}} || ? || No noticeable issues.<br /> |-<br /> | Mortal Kombat: Shaolin Monks || ? || {{majorissues}} || ? || Boots using StarOcean3 Emu. However the game has graphical issues and flickering textures<br /> |-<br /> | Motocross Mania 3 || ? || {{minorissues}} || ? || Some tiny FPS drops here and there which also affect audio.<br /> |-<br /> | MotoGP 4 || {{playable}} || ? || ? || works fine.<br /> |-<br /> | MotoGP 08 || {{minorissues}} || ? || ? || Some bikes textures are missing. Playable at full speed.<br /> |-<br /> | MotorStorm: Arctic Edge || {{unplayable}} || ? || ? || Very low fps and more graphical glitches<br /> |-<br /> | MS Saga: A New Dawn || ? || {{playable}} || ? || No issues noticed whatsoever.<br /> |-<br /> | MTX Mototrax || {{unplayable}} || ? || ? || Freeze in loading after intro video.<br /> |-<br /> | Mummy Returns, The || {{minorissues}} || ? || ? ||Some graphical glitches<br /> |-<br /> | Music 3000 || {{unplayable}} || {{notavailable}} || {{notavailable}} || Freeze in menu. <br /> |-<br /> | Mushihimesama || {{notavailable}} || {{notavailable}} || {{playable}} || Plays perfectly fine.&lt;br&gt;Also known as ''&quot;Bug Princess&quot; (虫姫さま)''.<br /> |-<br /> | MX Unleashed || ? || {{playable}} || ? || Working fine for me. No real issues.<br /> |-<br /> | MX Superfly || {{playable}} || ? || ? ||<br /> |-<br /> | MX vs. ATV Unleashed || ? || {{majorissues}} || ? || Playable, menu and sound is fine, but graphical artifacting when in-game<br /> |-<br /> | MX vs. ATV Untamed || ? || {{playable}} || ? ||<br /> |-<br /> | Mystic Heroes || {{playable}} || ? || ? || No known issues (known in Japan as ''Chou Battle Houshin [バトル封神]'')<br /> |-<br /> |My Street || {{unplayable}} || ? || {{notavailable}} || Throws an Unhandled PageFault at PS2 logo. <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;M&lt;/span&gt;{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == N ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | NamCollection || {{notavailable}} || {{notavailable}} || {{majorissues}} || 3 of 5 games are working fine: ''Ace Combat 2'', ''Mr. Driller'' and ''Ridge Racer''. ''Tekken'' works on menus but almost doesn't render graphics in gameplay. ''Klonoa: Door to Phantomile'' plays intro FMV but hard freeze the console when selecting something in the title screen. It can't play the main intro FMV neither videos on the gallery menu.<br /> |-<br /> | Namco Museum || ? || {{playable}} || ? || <br /> |-<br /> | Namco Museum - 50th Anniversary || ? || {{playable}} || ? || Perfect.<br /> |-<br /> | Namco X Capcom || {{notavailable}} || {{notavailable}} || {{playable}} || V.minor thin black lines on arena map, set uprender=none to eliminate them, or ignore them as they're tiny and inconsequential. English patched ISO works fine.<br /> |-<br /> | Nanobreaker || {{playable}} || ? || ? || Minor visual corruption on the copyright logo screens, game is fantastic other than that. No point marking as anything less than &quot;playable&quot;<br /> |-<br /> | NARC || ? || {{playable}} || ? ||<br /> |-<br /> | Naruto: Uzumaki Chronicles || ? || {{playable}} || ? || Didn't notice or encounter any issues.<br /> |-<br /> | Naruto: Uzumaki Chronicles 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Naruto: Ultimate Ninja || {{playable}} || {{playable}} || ? || Boots and play using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto: Ultimate Ninja 2 || {{playable}} || {{playable}} || ? || No issues noticed. (Jak v2 emu)<br /> |-<br /> | Naruto: Ultimate Ninja 3 || ? || {{playable}} || ? || Boots and plays great using NeoGeo+(v2) emus.<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 4 || ? || {{minorissues}}|| ? || Boots and plays using KOF98 and jack emu. Flickering issues<br /> |-<br /> | Naruto Shippuden: Ultimate Ninja 5 || {{minorissues}} || {{notavailable}} || ? || Flickering issues.<br /> |-<br /> | NBA JAM 2004 || {{playable}} || ? || ? || Works fine.<br /> |-<br /> | NBA Street: Volume 1 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NBA Street: Volume 2 || ? || {{playable}} || ? || Works fine using Jak emu and associated config file. Check [[Talk:PS2 Classics Emulator Compatibility List#NBA_Street_Vol.2|Emulator Configuration]] for additional details.<br /> |-<br /> | NBA Street: Volume 3 || ? || {{playable}} || ? || Game works absolutely fine using Jak emu. Native widescreen too.<br /> |-<br /> | NCAA Football 11 || ? || {{minorissues}} || ? || &lt;nowiki&gt;{{playable}}&lt;/nowiki&gt; but same issues as [[PS2 Classics Emulator Compatibility List#M|Madden NFL 12]] (bad field flicker).<br /> |-<br /> | Need for Speed: Carbon || {{unplayable}} || {{unplayable}} || ? || Custom config fix freeze before &quot;Press Start Button&quot; screen, game still unplayable due to 1 fps in-game. Check [[Talk:PS2 Classics Emulator Compatibility List#Need for Speed Carbon|Emulator Configuration]] for additional details.<br /> |-<br /> | Need for Speed: Most Wanted &lt;span style=&quot;background:#FFAA00&quot;&gt;(Black Edition)&lt;/span&gt; || {{majorissues}} || {{majorissues}} || {{majorissues}} || &lt;span style=&quot;background:#FFAA00&quot;&gt;(Major reflections glitches with minor sound stuttering. Total framedrop on open areas)&lt;/span&gt;<br /> |-<br /> | Need for Speed: Hot Pursuit 2 || {{minorissues}} || ? || ? || Broken reflections, stripes around car model<br /> |-<br /> | Need for Speed: ProStreet || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Undercover || {{unplayable}} || ? || ? || 1 FPS in main menu<br /> |-<br /> | Need for Speed: Underground || {{minorissues}} || {{playable}} || ? || Graphical glitches, but gameplay is fine<br /> |-<br /> | Need for Speed: Underground 2 || {{unplayable}} || {{unplayable}} || ? || 1 fps when going in-game. SLUS_21065 same as pal version<br /> |-<br /> | Neo Contra || ? || {{playable}} || ? ||<br /> |-<br /> | NeoGeo Battle Coliseum || ? || {{playable}} || ? || Not a single issue of note.<br /> |-<br /> | Neopets: The Darkest Faerie || ? || {{unplayable}} || ? || Black screen on Jakv2, hangs on earlier emulators.<br /> |-<br /> | NFL 2K3 || ? || {{unplayable}} || ? || Freezes at PS2 logo. <br /> |-<br /> | NFL Street || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NFL Street 2 || ? || {{minorissues}} || ? || Minor graphical glitches, gameplay is ok.<br /> |-<br /> | NHL 08 || ? || {{playable}} || ? || <br /> |-<br /> | Nicktoons: Attack of the Toybots (SpongeBob and Friends: Attack of the Toybots) || {{minorissues}} || ? || {{notavailable}} || Some graphical glitches<br /> |-<br /> | Nicktoons Unite (SpongeBob and Friends Unite) || ? || {{majorissues}} || {{notavailable}} || Graphical glitches during gameplay and menus, audio distotion, game runs at about 25-50% slower than full speed. Cutscenes actually work perfectly though. <br /> |-<br /> | Nickelodeon Barnyard || {{unplayable}} || ? || ? || Freezes before menu while loading<br /> |-<br /> | The Nightmare of Druaga: Fushigino Dungeon || ? || {{playable}} || ? || No issues at all.<br /> |- <br /> | The Nightmare Before Christmas: Oogie's Revenge || {{majorissues}} || ? || ? || Screen is split into four squares during gameplay &amp; part of the screen is missing.Tested with Jakemu &amp; KOF98emu.<br /> |- <br /> | NiGHTS into Dreams... || {{notavailable}} || {{notavailable}} || {{Playable}} || <br /> |-<br /> | Nightshade || ? || {{playable}} || ? || Roguev2 emulator completely froze PS4, had to pull power cable. Jakv2 runs great.<br /> |-<br /> | Ninja Assault || ? || {{Playable}} || ? || No noticeable issues.<br /> |-<br /> | NRA Gun Club || ? || {{playable}} || ? || No issues whatsoever.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;N&lt;/span&gt;{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == O ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Obscure || {{playable}} || {{playable}} || ? || game run with jack emu. No issues.<br /> |-<br /> | Obscure 2 The Aftermath|| {{playable}} || ? || ? || SLUS_21709 no known issues<br /> |-<br /> | OKAGE: Shadow King || {{official}} || {{official}} || ? || Known in Japan as ''Boku to Maō (ボクと魔王)''<br /> |-<br /> | Okami || ? || {{playable}} || ? || USA version tested, playable using custom config. No lag. Must apply &quot;--gs-uprender=none&quot; configuration during ps2 to ps4 pkg creation process to remove vertical lines or stripes present during game-play and cut-scenes.<br /> |-<br /> | One Piece: Grand Battle || ? || {{playable}} || ? || No major issues, some slight choppy performance here and there. Uprender artefacts lines, set uprender=none (or 2x2 and use --gs-kernel-cl-up=&quot;up2x2skipinterp&quot;/&quot;up2x2simple&quot;)<br /> |-<br /> | One Piece: Pirate's Carnival || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Oni || {{minorissues}} || {{playable}} || ? || US version works perfectly using custom config. EU version works with custom config, has major slowdown on title screen (inconsequential) and frequent slowdown during play, though nothing major. Check [[Talk:PS2 Classics Emulator Compatibility List#Oni|Emulator Configuration]] for additional details.<br /> |-<br /> | Onimusha 2 || {{playable}} || {{playable}} || ? || Working with new emu build Aug 2017(Jak)<br /> |-<br /> | Onimusha 3: Demon Siege || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Onimusha: Dawn of Dreams || {{minorissues}} || {{minorissues}} || ? || Gameplay is fine. Heavy glitches on menus and title screen.<br /> |-<br /> | Onimusha: The Blade Warriors || ? || {{unplayable}} || ? || NTSC Black screen after PS2 logo.<br /> |-<br /> | Onimusha: Warlords || {{playable}} || {{playable}} || ? || <br /> |-<br /> | The Operative: No One Lives Forever ||{{playable}}||{{playable}}||?|| Fixed freeze. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Operative:_No_One_Lives_Forever|Emulator configuration]].<br /> |-<br /> | OutRun 2006: Coast 2 Coast (OutRun 2 SP) || {{majorissues}} || ? || {{majorissues}} || Gets in-game with KOF98 &amp; RE CVX emu but gameplay freezes randomly every 10-20 seconds in races. Doesn't crash anymore &amp; can finish a full race. Some graphical issues such as shadows and a white line. OutRun 2 SP is the Japanese version with extras and graphical improvements.<br /> |-<br /> | Over the Hedge || {{unplayable}} || {{unplayable}} || ? || Freezes on the PlayStation 2 logo.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;O&lt;/span&gt;{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == P ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Pac-Man Fever || ? || {{unplayable}} || ? || Freezes on pic1.png<br /> |-<br /> | Pac-Man World 2 || ? || {{minorissues}} || ? || Little bit of lag when you're near water you have to go in but so far so good. Doesn't have the known PCSX2 glitch of freezing during tutorial message or freezing when trying to load Butane Pain level.<br /> |-<br /> | Pac-Man World 3 || ? || {{unplayable}} || ? || Freezes on launch at various stages of loading freeze depending on emulator. Tried Jak, Roguev2, KoF98, no go on any of them.<br /> |-<br /> | Pac-Man World Rally || ? || {{majorissues}} || ? || Save and Loading screens are glitchy, the stages go invisible the closer you get to them but the game doesn't encounter slow downs.<br /> |-<br /> | PaRappa the Rapper 2 || {{official}} || {{official}} || ? || <br /> |-<br /> | PDC World Championship Darts || ? || {{playable}} || ? || <br /> |-<br /> | Peter Jackson's King Kong || {{minorissues}} || ? || ? || Minor slowdown in some areas. Boost mode might fix that. Tested on Rogue Emu<br /> |-<br /> | Phantasy Star Universe || ? || {{playable}} || ? || Games runs great, has a flickering texture/geometry issue that is fixed with special config. Check [[Talk:PS2 Classics Emulator Compatibility List#Phantasy Star Universe|Emulator Configuration]] for details.<br /> |-<br /> | Phantasy Star Universe: Ambition of the Illuminus || ? || {{playable}} || ? || Same issues as previous PSU title, same fix applies.<br /> |-<br /> | Phantom Brave || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Pipe Mania || ? || {{playable}} || ? || <br /> |-<br /> | Pirates: Legend of Black Kat || ? || {{playable}} || ? ||Works like a charm.<br /> |-<br /> | Pirates: Legend of the Black Buccaneer ||{{playable}}||?||?|| No issues at all.<br /> |-<br /> | Pirates of the Caribbean: At World's End || {{playable}} || {{playable}} || ? || No known issues.<br /> |-<br /> | Pitfall: The Lost Expedition || ? || {{unplayable}} || ? || Black Screen After PlayStation 2 Logo.<br /> |-<br /> | The Plan (Th3 Plan) || ? || {{playable}} || ? || Used Jak v2 emulator and no issues as such.<br /> |-<br /> | Pool Paradise || ? || {{unplayable}} || ? || Graphics issues make game unplayable<br /> |-<br /> | Powerdrome || ? || {{unplayable}} || ? || Horrific vertical lines about 2 inches thick that obscures all vision whatsoever whenever racing. Along with other major graphical glitches on top of that, framerate is also incredibly unpredictable.<br /> |-<br /> | Predator: Concrete Jungle || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Primal || {{official}} || {{official}} || ? || Known in Japan as ''Saints: Seinaru Mamono (セインツ せいなるまもの)''<br /> |-<br /> | Prince of Persia: The Sands of Time || {{majorissues}} || ? || ? || Laggy cutscenes; Visual Bugs on Characters; Muffled Sound (In-Game); If you can ignore this the game is pretty playable<br /> |-<br /> | Prince of Persia: The Two Thrones || ? || {{majorissues}} || ? || Full speed yet severe graphics corruption and shadow casting issues.<br /> |-<br /> | Prince of Persia: The Warrior Within || ? || {{majorissues}} || ? || Same as Two Thrones.<br /> |-<br /> | Prisoner of War || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Pro Evolution Soccer 2009 || ? || {{playable}} || ? || Absolutely fine. No issues noted.<br /> |-<br /> | Pro Evolution Soccer 2014 || ? || {{playable}} || ? ||<br /> |-<br /> | Project Eden || {{majorissues}} || ? || ? || Substantial graphics corruption, SPS from time to time and massive reflections corruption. Still playable, but ugly.<br /> |-<br /> | Psi-Ops: The Mindgate Conspiracy (Psi-Ops: Psychic Operation) || {{playable}} || {{playable}} || ? || Patched low framerate using &quot;Jak Emulator&quot; (Tested on NTSC). Please check [[Talk:PS2_Classics_Emulator_Compatibility_List#Psi-Ops:_The_Mindgate_Conspiracy|Emulator config details here]]).<br /> |-<br /> | Psikyo Shooting Collection Vol. 3: Sol Divide &amp; Dragon Blaze || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Psychic Force Complete || {{notavailable}} || {{notavailable}} || {{playable}} || Works great, no issues noticed.<br /> |-<br /> | Psychonauts || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Psyvariar Complete Edition || {{playable}} || ? || ? || Requires older emulator, Roguev2 works great, as well as uprender=2x2 and upscale=EdgeSmooth. Looks and runs amazingly.<br /> |-<br /> | Psyvariar II: Ultimate Final || {{notavailable}} || {{notavailable}} || {{playable}} ||<br /> |-<br /> | Pump It Up Exceed || ? || {{majorissues}} || ? || It's impossible to press Downright and Upleft, since the game was designed for a dance pad. Aside from that, the game has minor graphical issues and runs at full speed.<br /> |-<br /> | The Punisher || {{minorissues}} || {{minorissues}} || ? || Lags sometimes while playing, however the game can be played as fps drops for a few seconds. <br /> |-<br /> | Puyo Pop Fever || {{minorissues}} || {{notavailable}} || ? || Puyos may disappear for a second while doing chains. Use Jak Emu to avoid a white layer that appears in the player's box. Known in Japan as Puyo Puyo Fever.<br /> |-<br /> | Puyo Puyo Fever 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Using Jak Emu and partial english translation patch. <br /> |-<br /> | Puzzle Quest: Challenge of the Warlords || {{official}} || {{official}} || {{notavailable}} || <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;P&lt;/span&gt;{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Q ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Q-Ball: Billiards Master || ? || {{playable}} || ? || <br /> |-<br /> | Quake 3 Revolution || {{unplayable}} || ? || ? || After loading first screen, comes black and sound distortion.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Q&lt;/span&gt;{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == R ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | R-Type Final || ? || ? || {{minorissues}} || Significantly lower frame rates on Stage 5.0.<br /> |-<br /> | R: Racing Evolution || ? || {{playable}} || ? || Require config to fix cars, shadows, and flickering black lines over the screen (Check [[Talk:PS2 Classics Emulator Compatibility List#R-Racing Revolution|Emulator Configuration]] for more Information).<br /> |-<br /> | RAD: Robot Alchemic Drive || {{notavailable}} || {{minorissues}} || ? || Audio issues with voice overs. Known in Japan as ''Gigantic Drive (ギガンティック ドライブ)''<br /> |-<br /> | Radiata Stories || ? || {{minorissues}} || ? || Requires TriAce hack (--vu-hack-triace=1) has minor-to-major slowdown in some scenes as well as a slight blurring from what looks like a broken depth of field effect.<br /> (I've been playing through the game just fine, no major slow downs that prevent the game from being enjoyed. Slow down only really happened during some cut scenes and areas where lots of characters are animating at once. It's very playable in my opinion, almost done with the game. Playing on PS4 original F.W 6.72 Changed issues from major to minor because the game can be completed) <br /> |-<br /> | Radirgy Precious || ? || ? || {{playable}} || <br /> |-<br /> | Raiden III || ? || {{playable}} || ? || <br /> |-<br /> | Ratchet &amp; Clank || ? || {{unplayable}} || ? || Frozen on the copyright info just before the main menu.<br /> |-<br /> | Ratchet: Gladiator (Ratchet: Deadlocked) || {{unplayable}} || ? || ? || Black screen when going in-game. Known in Japan as ''Ratchet &amp; Clank 4th: GiriGiri Ginga no Giga Battle''<br /> |-<br /> | Ratchet &amp; Clank: Going Commando (Ratchet &amp; Clank 2: [Locked and Loaded]) || {{unplayable}} || {{unplayable}} || {{playable}} || Game starts, creates save data, then after the first cut scene, goes black. SCKA-20120 (Korean version) works with no issues using Jak v2 emulator.<br /> |-<br /> | Ratchet &amp; Clank: Up Your Arsenal (Ratchet &amp; Clank 3) || {{unplayable}} || {{unplayable}} || ? || Black screen when going in-game.<br /> |-<br /> | Raw Danger! || {{majorissues}} || {{majorissues}} || {{majorissues}} ||frame rates fixed. Game still suffers from crazy audio stuttering wish gives u a headache after 5mins of playing , frame drops in cutscenes + blury screen - check [[Talk:PS2 Classics Emulator Compatibility List#Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi|Emulator Configuration]] (Known in Japan as: ''Zettai Zetsumei Toshi 2: Itetsuita Kiokutachi [絶体絶命都市2 -凍てついた記憶たち-]'')<br /> |-<br /> | Rayman M (Rayman Arena) || {{unplayable}} || {{unplayable}} || {{notavailable}} || Freezes at character selection screen<br /> |-<br /> | Rayman 2: Revolution || {{playable}} || ? || ? || <br /> |-<br /> | Rayman 3: Hoodlum Havoc || {{unplayable}} || ? || ? || Crashes when going in-game, menu very laggy<br /> |-<br /> | Rayman Raving Rabbids || {{playable}} || ? || ? ||<br /> |- <br /> | RC Revenge Pro || ? || {{playable}} || ? || No issues noticed, plays great with Jak emu.<br /> |-<br /> | Rebel Raiders: Operation Nighthawk || ? || {{playable}} || ? || <br /> |-<br /> | Red Card || ? || {{majorissues}} || ? || Loads upto title screen but unable to press start<br /> |-<br /> | Red Dead Revolver || {{official}} || {{official}} || ? || USE JACK EMU<br /> |-<br /> | Red Faction || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Faction II || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Red Ninja, The || ? || {{unplayable}} || ? || Black screen after PS2 logo.<br /> |-<br /> | Red Star, The || {{playable}} || ? || ? || No issues noticed.<br /> |-<br /> | Remote Control Dandy SF || {{notavailable}} || {{notavailable}} || {{playable}} || <br /> |-<br /> | Reservoir Dogs ||{{unplayable}}||{{unplayable}} ||{{notavailable}}|| Cannot get past through the loading screen and freeze after starting a new game (main menu is only accessible with Rogue emulator). Jak emulator freezes on memory card check screen.<br /> |-<br /> | Resident Evil - Code: Veronica X || {{official}} || {{official}} || ? || Known in Japan as ''BioHazard Code: Veronica Kanzenban [バイオハザード CODE:Veronica]''<br /> |-<br /> | Resident Evil: Dead Aim || ? || {{playable}} || ? || Nothing to report (known in Japan as ''Gun Survivor 4: BioHazard: Heroes Never Die [ガンサバイバー4 バイオハザード ヒーローズ・ネバー・ダイ]'')<br /> |-<br /> | Resident Evil: Gun Survivor 2 Code: Veronica || {{majorissues}} || ? || ? || Very poor performance.<br /> |-<br /> | Resident Evil: Outbreak || {{minorissues}} || {{playable}} || ? || SLES_51589 syncing issues with video and audio in fmv's, nothing else noticed<br /> |-<br /> | Resident Evil: Outbreak File 2 || {{playable}} || {{playable}} || ? || Works Fine. No issues found<br /> |-<br /> | Resident Evil 4 || ? || {{playable }} || ? || Works fine on first mission don’t know about rest.<br /> |-<br /> | Return To Castle Wolfenstein || ? || {{majorissues}} || ? || Door glitches (door textures are missing, unable to render past doors), enemies become invisible. Playable but not comfortably.<br /> |-<br /> | Rez || ? || {{playable}} || ? || <br /> |-<br /> | Richard Burns Rally || {{playable}} || {{notavailable}} || ? ||<br /> |-<br /> | Ridge Racer V || ? || {{majorissues}} || ? || Cars, both yours and opponents, are mostly invisible with transparent outlines. Smoke/particles broken. Playable but not comfortably. (Game is actually worse on the Jak emulator, no longer passes opening FMV and there's no audio)<br /> |-<br /> | Ring of Red || {{minorissues}} || {{minorissues}} || ? || Game boots and plays absolutely fine now, with the Jak emu, though the opening FMV stutters and doesn't play correctly. Can be skipped and the rest of the game is fine.<br /> |-<br /> | Rise of the Kasai || {{official}} ||{{official}} || {{notavailable}} || <br /> |-<br /> | Rise to Honor (Jet Li: Rise to Honour) || {{playable}} || {{playable}} || ? || <br /> |-<br /> | RLH: Run Like Hell - Hunt or Be Hunted || ? || {{majorissues}} || ? || Problem with textures<br /> |-<br /> | Road Trip Adventure || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Robots || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Robotech: Battlecry || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Robotech: Invasion || {{playable}} || ? || ? || No issues of note.<br /> |-<br /> | Rocky || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Robin Hood: Defender of the Crown || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Rogue Galaxy || {{official}} || {{official}} || ? || <br /> |-<br /> | Romance of the Three Kingdoms VIII || ? || {{playable}} || ? ||<br /> |-<br /> | Romancing SaGa || {{notavailable}} || {{playable}} || ? || Known in Japan as Romancing Saga: Minstrel Song<br /> |-<br /> | RPG Maker II || ? || {{minorissues}} || ? || has some on screen issues but still playable (Known in Japan as ''RPG Tsukuru 5 [RPGツクール5]'')<br /> |-<br /> | RTL Skispringen 2003 || {{playable}} || {{notavailable}} || {{notavailable}} || No issues (SLES 51391).<br /> |-<br /> | Rugby || ? || {{unplayable}} || ? || Does not load. <br /> |-<br /> | Rugby 2004 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 2005 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 06 || ? || {{minorissues}} || ? || audio and framerate stutter during heavy sequences eg scrum time.<br /> |-<br /> | Rugby 08 || ? || {{minorissues}} || ? || Rock solid frame rate, has the occasional audio issue/stutter<br /> |-<br /> | Rule of Rose || ? || {{majorissues}} || ? || Game is rock solid, looks and runs great, unfortunately prerendered FMVs have significant audio stutter. In a story/FMV-heavy game like this, that's either a minor or major issues depending on subjective tolerance.<br /> |-<br /> | Rumble Fish, The || {{notavailable}} || {{notavailable}} || {{playable}} || No issues noticed.<br /> |-<br /> | Rumble Racing ( || {{unplayable}} || {{unplayable}} || ? || Dont load past ps2 screen.<br /> |-<br /> | Rumble Roses || {{minorissues}} || ? || ? ||<br /> |-<br /> | Rurouni Kenshin - Enjou! Kyoto Rinne || {{notavailable}} || {{notavailable}} || {{playable}} || works 100% great<br /> |-<br /> | Rygar: The Legendary Adventure || ? || {{playable}} || ? || Use custom config to fix freezing after leaving the first area. Check [[Talk:PS2 Classics Emulator Compatibility List#Rygar: The Legendary Adventure|Emulator Configuration]] for additional details.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;R&lt;/span&gt;{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == S ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Sakura Wars: So Long, My Love || ? || {{unplayable}} || ? || Tested undub disc. Freezes right before showing the city https://www.youtube.com/watch?v=RycaZoOFGws look at 0:20. <br /> |-<br /> | Samurai Aces || ? || ? || {{playable}} || Known in Japan as ''Psikyo Shooting Collection Vol. 2: Sengoku Ace + Sengoku Blade''<br /> |-<br /> | Samurai Jack: The Shadow of Aku || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | Samurai Shodown Anthology || {{playable}} || {{playable}} || ? || style=&quot;background:#55cc55; color:white;&quot; | Homebrew version has substantial performance drops during combat when camera pans out, fixed with Official Emulator Configuration found at &quot;SAMURAI SHOWDOWN VI&quot;, which is labeled as &quot;Samurai Shodown Anthology&quot; as well. Check [[Talk:PS2 Classics Emulator Compatibility List#Samurai Shodown Anthology|Emulator Configuration]] for additional details.<br /> |-<br /> | SAMURAI SHODOWN VI || {{official}} || {{official}} || ? || Known in Japan as ''Samurai Supirittsu Tenkaichi Kenkakuden (サムライスピリッツ 天下一剣客伝)''<br /> |-<br /> |SAS Anti-terror Force ||?|| {{playable}} ||?|| Works with no issues with Jak v2 emulator.<br /> |-<br /> | Scaler || {{minorissues}} || ? || ? || Slight problems due to the upscale or uprender probably. Surely repairable, full speed and playable.<br /> |-<br /> | Scarface: The World Is Yours || {{minorissues}} || {{unplayable}} || ? || Game runs at ~5 FPS with Rogue Emu. Jak Emu only shows a black screen. Pal Version work but have sometimes texture glitch and some lags.<br /> |-<br /> | Scooby-Doo! First Frights || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! First Frights™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! and the Spooky Swamp || {{playable}} || ? || ? || Fix for distorted audio (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Scooby-Doo! and the Spooky Swamp™|Emulator Configuration]] for additional details.<br /> |-<br /> | Scooby-Doo! Night of 100 Frights || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | Scooby-Doo! Unmasked || {{playable}} || {{playable}} || ? || No known issues<br /> |-<br /> | The Scorpion King: Rise of the Akkadian || ? || {{playable}} || ? || works fine.<br /> |-<br /> | Second Sight || {{unplayable}} || {{unplayable}} || ? || Black screen after PS2 logo, multiple emulators tried.<br /> |-<br /> | Secret Agent Clank || ? || {{minorissues}} || ? || Slight frame skipping when loading levels, but otherwise runs fine.<br /> |-<br /> | Secret Saturdays: Beasts of the 5th Sun, The || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Secret Service ||?|| {{playable}} ||?|| Tested with Jak v2 emulator, no issues noticed.<br /> |-<br /> | Seek &amp; Destroy || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Sega Ages 2500 Series Vol. 1: Phantasy Star Generation: 1 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 2: Monaco GP || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen visuals, audio playing in the background and can hear menu movement.<br /> |-<br /> | Sega Ages 2500 Series Vol. 3: Fantasy Zone || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 4: Space Harrier || {{notavailable}} || {{notavailable}} || {{unplayable}} || Black screen.<br /> |-<br /> | Sega Ages 2500 Series Vol. 5: Golden Axe || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 6: Ichini no Tant-R to Bonanza Bros. || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. <br /> |-<br /> | Sega Ages 2500 Series Vol. 7: Columns || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 8: Virtua Racing FlatOut || {{notavailable}} || {{notavailable}} || {{playable}} || Almost perfect, slight polygon texturing corruption in the lower-right angle of screen in external-camera view. Barely noticeable.<br /> |-<br /> | Sega Ages 2500 Series Vol. 9: Gain Ground || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 10: After Burner II || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 11: Hokuto No Ken || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 12: Puyo Puyo Tsuu Perfect Set || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 13: OutRun || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 14: Alien Syndrome || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 15: Decathlete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 16: Virtua Fighter 2 || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 17: Phantasy Star Generation: 2 || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect. English translation works when converted to DVD and ESR-patched.<br /> |-<br /> | Sega Ages 2500 Series Vol. 18: Dragon Force || {{notavailable}} || {{notavailable}} || {{playable}} || Works.<br /> |-<br /> | Sega Ages 2500 Series Vol. 19: Fighting Vipers || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 20:&lt;br&gt;Space Harrier II ~Space Harrier Complete Collection~ || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 21: SDI &amp; Quartet: Sega System 16 Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 22:&lt;br&gt;Advanced Daisenryaku: Deutsch Dengeki Sakusen || {{notavailable}} || {{notavailable}} || ? || <br /> |-<br /> | Sega Ages 2500 Series Vol. 23: Sega Memorial Selection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 24: Last Bronx || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 25: Gunstar Heroes Treasurebox || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 26: Dynamite Deka || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 27: Panzer Dragoon || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 28: Tetris Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 29: Monster World Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 30: Galaxy Force II ~ Special Extended Edition || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 31: Cyber Troopers Virtual-On || {{notavailable}} || {{notavailable}} || {{unplayable}} || Appalling performance, 2-5fps, with various graphics corruption issues.<br /> |-<br /> | Sega Ages 2500 Series Vol. 32: Phantasy Star Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Ages 2500 Series Vol. 33: Fantasy Zone Complete Collection || {{notavailable}} || {{notavailable}} || {{playable}} || Works perfect.<br /> |-<br /> | Sega Classics Collection || ? || {{majorissues}} || ? || Compilation of 9 &quot;Sega Ages 2500&quot; titles; Vol 2, 3, 4, 5, 6, 7, 8, 13, and 14. Same inherited issues from standalone volumes; 2+3 do not function.<br /> |-<br /> | Sega Genesis Collection || ? || {{playable}} || ? || Works perfectly. All 28 Genesis titles, unlockable Arcade titles, and all videos/special features. [Known as &quot;Sega Mega Drive Collection&quot; in PAL regions]<br /> |-<br /> | Sega Rally Championship 95 || ? || ? || {{unplayable}} || CD version stops on black PlayStation 2 screen<br /> |-<br /> | Sega Rally 2006 || ? || ? || {{playable}} || Runs perfect. No issues detected<br /> |-<br /> | Sengoku Anthology || {{playable}} || ? || ? || Runs perfect. No issues detected.<br /> |-<br /> | Sengoku Basara X Cross || {{notavailable}} || {{notavailable}} || {{playable}} || Use Jak emu<br /> |-<br /> | Seven Samurai 20XX (20XX 七人の侍) || ? || {{playable}} || ? || No known issues<br /> |-<br /> | Shadow Man: 2econd Coming || ? || {{unplayable}} || ? || NTSC-U crashes with CE-34878-0 error after BIOS with Jakv2 emulator.<br /> |-<br /> | Shadow Hearts || {{minorissues}} || {{majorissues}} || ? || Some graphical glitches, characters disappears sometimes, but playable. [SLUS20347 very low out-of-combat framerate, in-combat runs smooth but character slowly deforms and vanishes over time]<br /> |-<br /> | Shadow Hearts: Covenant || {{unplayable}} || {{unplayable}} || ? || Stops after PS2 logo, PAL: Black screen after FMV. [SLUS21041 crashes after selecting New Game] (known in Japan as ''Shadow Hearts II [シャドウハーツII]'')<br /> |-<br /> | Shadow Hearts: From the New World || ? || {{playable}} || ? || Tested only version undub [also tested SLUS21326 standard English, seemingly works fine]<br /> |-<br /> | Shadow of Destiny || ? || {{minorissues}} || ? || Graphical issues with character shadows. AKA Shadow of Memories in Europe. Tested with RogueV1emu<br /> |-<br /> | Shadow of Rome || {{majorissues}} || {{majorissues}} || ? || Major graphical glitches on the character's shadow. Only tested Rogue Emu so far.+ jakv1<br /> |-<br /> | Shadow of the Colossus || ? || {{unplayable}} || ? || Awful framerate, less than 50% speed and stuttering audio.<br /> |-<br /> | Shadow the Hedgehog || {{playable}} || {{minorissues}} || ? || Pal version Works great using JakEmuv1! US version: Cutscenes are a bit choppy which cause audio desync<br /> |-<br /> | Shadow Tower: Abyss || {{notavailable}} || {{notavailable}} || {{playable}} || JP version works great, has full English translation patch.<br /> |-<br /> | Shaun White Snowboarding || {{majorissues}} || ? || ? || Low framerate <br /> |-<br /> |The Shield ||?|| {{playable}} ||?|| Fixed second mission game over error. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Shield|Emulator configuration]] for details.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Devil Summoner 2 || ? || {{unplayable}} || ? || Freezes at intro FMV using Jak emu. Earlier emulator revisions don't even get that far.<br /> |-<br /> | Shin Megami Tensei: Digital Devil Saga || ? || {{majorissues}} || ? || Loads fine with Jak emu, significant issues with voices and FMVs. FMVs freeze, can be skipped with X, and voices don't play. Also some graphical issues.<br /> |-<br /> | rowspan=&quot;2&quot; | Shin Megami Tensei: Nocturne (Shin Megami Tensei: Lucifer's Call)&lt;br&gt;&lt;small&gt;Shin Megami Tensei III: Nocturne (Shin Megami Tensei III: Nocturne Maniax)&lt;/small&gt; || rowspan=&quot;2&quot; | ? || rowspan=&quot;2&quot; {{minorissues}} || rowspan=&quot;2&quot; {{unplayable}} || style=&quot;background-color:#FFFF90;&quot; | Noticeable Blurry graphics using &quot;RogueEmu&quot;. Most of the blurriness is less noticeable using &quot;Kofemu&quot;. Freezes with &quot;Jakemu&quot; during cutscene after meeting the women on the roof of medical centre. The Hardtype Rom Hack also works.The game can randomly crash on a white screen (this is a game bug not emulation related).--fpu-accurate-range=0x137754,0x138014 fixes bug with second ladder in the Assembly of Nihilo but can cause some slowdown (SLUS20911).<br /> |-<br /> | style=&quot;background-color:#FF0000;&quot; | International versions are unplayable after the player gets to the second ladder in the Assembly of Nihilo, where the prompt for climbing down the ladder never shows up. Otherwise, the game also suffers from minor flickering that doesn't affect the experience (English translated version of &quot;Maniax Chronicle Edition&quot; freezes after a few minutes of play).<br /> |-<br /> | Shin Megami Tensei: Persona 3 FES || ? || {{minorissues}} || ? || NTSC-U tested, FMVs are interlaced and occasionally jump due to this. Aside from that, game is playable.<br /> |-<br /> | Shin Megami Tensei: Persona 4 || ? || {{minorissues}} || ? || Tested the USA version, minor motion blur around characters during cut-scenes but is completely playable, no other graphical issues observed. No lag.<br /> |-<br /> | Shining Force EXE || ? || {{playable}} || ? || Works perfect.<br /> |-<br /> | Shining Force Neo || ? || {{playable}} || ? || No noticeable issues that I can tell.<br /> |-<br /> | Shining Tears || ? || {{playable}} || ? || No issues whatsoever. <br /> |-<br /> | Shinobi || {{playable}} || {{playable}} || ? || No noticable issues<br /> |-<br /> | Shinobido Takumi || {{notavailable}} || {{notavailable}} || {{playable}} || Works with Jak emu.<br /> |-<br /> | Shinobido: Way of the Ninja || {{playable}} || {{notavailable}} || ? || Known in Japan as ''Shinobidō: Imashime (忍道 戒)''<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 2 || {{notavailable}} || {{notavailable}} || {{minorissues}} || very slight flickering in 2D graphics<br /> |-<br /> | Shinseiki GPX Cyber Formula: Road to the Infinity 4 || {{notavailable}} || {{notavailable}} || {{majorissues}} || It doesn't load saved game<br /> |-<br /> | Shox || ? || {{unplayable}} || ? || <br /> |-<br /> | Shrek 2 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Silent Hill 2 [Director's Cut] || {{minorissues}} || {{majorissues}} || ? || The FMV at the graveyard early into the game plays with only 1-2 FPS (possibly other cutscenes as well). Tested on multiple emulators. Rest of the game seems to run fine. NTSC versions have broken video output, top half of the screen is useable but the bottom half is a glitchy mess.<br /> |-<br /> | Silent Hill 3 || {{playable}} || {{majorissues}} || ? || FMVs are fine in Jak emu. NTSC version has broken video output, top half of the screen is useable but the bottom half is a glitchy mess, as well as occasional hangups.<br /> |-<br /> | Silent Hill 4: The Room || ? || {{Playable}} || ? || Looks and plays fine in Jak emu.<br /> |-<br /> | Silent Hill Origins || {{unplayable}} || {{playable}} || ? || FMV working flawlessly. All buttons working as normal except analogue stick, as a result you will be standing in front of the truck without doing anything... &lt;span style=&quot;background:#90FF90&quot;&gt;SLUS_21731 work fine using JAK emu.&lt;/span&gt;<br /> |-<br /> | Silent Hill Shattered Memories || ? || {{majorissues}} || ? || The Animated scenes like interacting with doors or a cutscene have audio stuttering, syncing issues and FPS drops. Gameplay itself works fine SLUS_21899<br /> |-<br /> | Silent Scope || ? || {{playable}} || ? || Use Jak and Daxter emu files.<br /> |-<br /> | Silent Scope 2: Dark Silhouette (Silent Scope 2: Fatal Judgement) || {{unplayable}} || {{unplayable}} || ? || Locks on black screen (Known in Japan as ''Silent Scope 2: Innocent Sweeper)''<br /> |-<br /> | Silent Scope 3 || ? || {{playable}} || ? || <br /> |-<br /> | Silpheed || ? || {{unplayable}} || ? || Freezes after publisher logos.<br /> |-<br /> | The Simpsons Game || ? || {{majorissues}} || ? || Fps drops, graphical glitches and audio stuttering everywhere.<br /> |-<br /> | The Simpsons: Hit &amp; Run || {{unplayable}} || {{minorissues}} || {{notavailable}} || Playable, but has audio distortion<br /> |-<br /> | The Simpsons: Road Rage || ? || {{unplayable}} || {{notavailable}} ||<br /> |-<br /> | The Sims 2 || {{majorissues}} || ? || {{notavailable}} || Disappearing menus and graphical glitches on the sims.<br /> |-<br /> | The Sims Bustin Out || ? || {{unplayable}} || {{notavailable}} || Freeze on first logo.<br /> |-<br /> | The URBZ Sims In The City || ? || {{unplayable}} || {{notavailable}} || Black screen.<br /> |-<br /> | Siratsu tankenbu (Kor name:시라츄 탐험부) || {{notavailable}} || {{notavailable}} || {{playable}} || South Korea Ver(NTSC-J) = playable [SLKA-25109]<br /> |-<br /> | Siren (Forbidden Siren) || {{official}} || {{official}} || {{playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Siren 2 (Forbidden Siren 2) || {{unplayable}} || ? || {{unplayable}} || Game freeze after 1&lt;sup&gt;st&lt;/sup&gt; cutscene.<br /> |-<br /> | SkyGunner || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Sky Odyssey || {{playable}} || ? || ? || Issues fixed with Bully V2 emulator. Works fine<br /> |-<br /> | Sly Cooper and the Thievius Raccoonus || ?|| {{minorissues}} || ? || Black outlines don't display correctly and/or disappear in certain angles. (Known in Europe as ''Sly Raccoon)''<br /> |-<br /> | Sly 2: Band of Thieves || ? || {{playable}} || ? || <br /> |-<br /> | Sly 3: Honor Among Thieves || ? || {{playable}} || {{playable}} || NTSC-J-Region released in South Korea only [SCKA20063] (NTSC-J) name = 슬라이쿠퍼 최후의 대도<br /> |-<br /> | Smash Court Tennis Pro Tournament 2 || {{playable}} || ? || ? || PAL works fine. No issue noticed.<br /> |-<br /> | Smuggler's Run || ? || {{minorissues}} || ? || Menus in 16:9 have small splicing. Shadows are fixed using Jak and Daxter emu, so the game is practically playable now.<br /> |-<br /> | The Sniper 2 || {{Playable}} || ? || ? || No noticeable issues.<br /> |-<br /> | SNK vs Capcom: SVC Chaos || {{playable}} || ? || ? || Works fine using Jak or KoF98UM emu, requires special config. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#SNK vs Capcom: SVC Chaos|Emulator Configuration]] for additional details.<br /> |-<br /> | Snoopy vs The Red Baron || ? || {{minorissues}} || ? || Graphic corruption can be fixed with a custom config. Some slowdown during heavy scenes. Black lines on border area in main menu. Boots with Rogue emu.<br /> |-<br /> | SOCOM : U.S Navy SEALs || ? || ? || {{playable}} || South Korea ver SCKA-20007 (NTSC-J) no issue <br /> |-<br /> | SOCOM II: U.S. Navy SEALs || {{unplayable}} || {{unplayable}} || {{majorissues}} || Low framerate not playable. South Korea Ver SCKA-20020 (NTSC-J ) = low framelate. But, playable<br /> |-<br /> | Solider of Fortune: Gold Edition || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Sonic Heroes || {{unplayable}} || {{unplayable}} || ? || The game has small graphical errors when using a speed character and it seems the cannon at the end of Ocean Palace seems to be broken, and its mandatory to continue the game.<br /> |-<br /> | Sonic Gems Collection || ? || {{majorissues}} || ? || No visual glitches or issues, the majority of the games run perfectly with no trouble, but &quot;Sonic the Fighters&quot; is broken. Awful performance and broken graphics, like the Sega Ages 2500 fighting titles.<br /> |-<br /> | Sonic Mega Collection Plus || ? || {{playable}} || ? || Plays absolutely perfectly using Jak emu. Not a single issue with any game so far. Comics and Videos work too.<br /> |-<br /> | Sonic Riders || ? || {{minorissues}} || ? || Only issue is that the game crashes the PS4 in story mode after the first fmv. Otherwise, its perfect.<br /> |-<br /> | Sonic Riders: Zero Gravity || ? || {{playable}} || ? || For the small amount of time i played, it was fine.<br /> |-<br /> | Sonic Unleashed || {{Playable}} || ? || ? ||<br /> |-<br /> | SoulCalibur II (Soul Calibur 2) || {{unplayable}} || {{unplayable}} || {{unplayable}} || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is massive. Also has camera issues, which I believe are remedied with CLAMPS on PCSX2.<br /> |-<br /> | SoulCalibur III (Soul Calibur 3) || {{unplayable}} || {{unplayable}} || ? || Game boots with Jak emu, yet absolutely unplayable. Performance is 2-3fps and the graphical corruption is worse than SC2. Very small amounts of scenery, no character models, just weapons. <br /> |-<br /> | Soul Nomad &amp; the World Eaters || ? || {{playable}} || ? || No noticeable issues (Known in Japan as ''Soul Cradle: World Eaters [ソウルクレイドル 世界を喰らう者 Sōru Kureidoru Sekai o Kurau Mono]'').<br /> |-<br /> | Space Channel 5 || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Channel 5: Part 2|| {{playable}} || ? || ? || No known issues<br /> |-<br /> | Space Invaders Anniversary || {{playable}} || ? || ? ||<br /> |-<br /> | Space Rebellion || {{playable}} || ? || ? || Freeze on game image after PS2 logo when using Jak, game runs fine when using Roguev2.<br /> |-<br /> | Speed Kings || {{unplayable}} || ? || ? || Black screen after PS2 logo. Boot with pnach pcsx2, access to menu but freeze when launch a race.<br /> |-<br /> | Speed Racer || ? || {{unplayable}} || ? || Works until loading screen. Freezes during loading screens<br /> |-<br /> | Sphinx And The Cursed Mummy || {{playable}} || {{playable}} || ? || Works perfect. Use Rogue emu, the others doesn't work.<br /> |-<br /> | Spider-Man: The Movie || {{playable}} || ? || ? || Boots and plays great using StarOcean3 emu.<br /> |-<br /> | Spider-Man 2 || {{minorissues}} || {{minorissues}} || ? || Shadows are rendered incorrectly. Models will occasionally disappear, making navigating the platforms in the Quentin Beck fight much more difficult.<br /> |-<br /> | Spider-Man 3 || {{majorissues}} || {{majorissues}} || ? || Very low fps, runs at about half speed, some slightly broken effects.<br /> |-<br /> | Spider-Man: Friend or Foe || {{minorissues}} || {{minorissues}} || ? || Minor graphical bugs. Does not affect gameplay<br /> |-<br /> | Spider-Man: Web of Shadows || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Splashdown || ? || {{playable}} || ? || <br /> |-<br /> | Splashdown: Rides Gone Wild || ? || {{minorissues}} || ? || Enable PS4 Pro's Boost Mode. Use Jak emu and use these settings in config file: '''--gs-uprender=none --gs-upscale=none --gs-adaptive-frameskip=1'''<br /> Two vertical dark lines on water. Low framerate on base model PS4.<br /> |-<br /> | SpongeBob SquarePants: Battle for Bikini Bottom || ? || {{playable}} || ? || Custom config fixes previous graphics issue. Check [[Talk:PS2 Classics Emulator Compatibility List#SpongeBob_SquarePants:_Battle_for_Bikini_Bottom|Custom PS2emu Configuration Files]] for additional details.<br /> |-<br /> | SpongeBob SquarePants: Creature From the Krust Krab || ? || {{unplayable}} || ? || When starting a new game, the game freezes when trying to load the first level. May be playable after the first level, but untested.<br /> |-<br /> | SpongeBob SquarePants: Lights, Camera, Pants! || {{minorissues}} || ? || ? || Some graphical glitches<br /> |-<br /> | The SpongeBob SquarePants Movie (Video Game) || ? || {{majorissues}} || ? || Runs amazing, But has major graphical glitches in certain levels. Its playable from start to finish but in the glitched levels the game gets much harder and confusing than it should be.<br /> |-<br /> | SpongeBob SquarePants: Revenge of the Flying Dutchman || ? || {{unplayable}} || ? || When starting a new game the game reloads the main menu instead of starting a new game. I imagine it could be playable with a save.<br /> |-<br /> | Spy Fiction || {{minorissues}} || ? || ?|| Small graphics issues, playable anyway.<br /> |-<br /> | Spyro: A Hero's Tail || {{playable}} || ? || ? || No known issues<br /> |-<br /> | Spyro The Eternal Night || {{playable}} || {{playable}} || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro: The Eternal Night|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: A New Beginning || {{playable}} || ? || ? || Fix for HUD and display and corrupted lines when uprender is enabled (PAL). &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#The Legend of Spyro A New Beginning|Emulator Configuration]] for additional details.<br /> |-<br /> | Spyro: Enter The Dragonfly || ? || {{unplayable}} || ? || Freezes after PS2 logo.<br /> |-<br /> | Spy vs. Spy || {{playable}} || ? || ? ||<br /> |-<br /> | SSX || {{playable}} || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX 3 || {{unplayable}} || {{unplayable}} || ? || blackscreen after menu loadingscreen. For US: Blackscreen and annoying noise after trying to load the maps/peaks.<br /> |-<br /> | SSX On Tour || ? || {{unplayable}} || ? || Game randomly freezes with loud buzzing sound.<br /> |-<br /> | SSX Tricky || {{unplayable}} || ? || ? || Minor slowdown at character selection. Set &quot;Animorphic&quot; in game settings to play widescreen. Character randomly falls through the world and turns invisible after &quot;shoving&quot; opponents.<br /> |-<br /> | Star Ocean: Till the End of Time || {{official}} || {{official}} || {{official}} || Official &quot;PS2 Classics on PS4&quot; Title released in Japan as a &quot;Director's Cut&quot; (JP0082-CUSA04842_00-SLPM654380000001) // &lt;span style=&quot;background:#FFFF90&quot;&gt;Homebrew version works, though has framerate issues in places and screen jitter unless you play in Progressive Mode, Hold X and TRIANGLE at PlayStation logo.&lt;/span&gt;<br /> |-<br /> | Star Trek: Conquest || ? || {{playable}} || ? || No known issues.<br /> |-<br /> | Star Trek: Encounters || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Trek: Shattered Universe || {{playable}} || ? || ? || No known issues.<br /> |-<br /> | Star Wars: Battlefront || ? || {{unplayable}} || ? || Game doesn't start.<br /> |-<br /> | Star Wars: Battlefront 2 || ? || {{unplayable}} || ? || Runs at less than 50% speed in game.<br /> |-<br /> | Star Wars: Bounty Hunter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: The Clone Wars || ? || {{majorissues}} || ? || Runs at roughly half speed. Video files are doubled vertically.<br /> |-<br /> | Star Wars: Jedi Starfighter || {{official}} || {{official}} || ? || <br /> |-<br /> | Star Wars: Racer Revenge || {{official}} || {{official}} || {{notavailable}} || <br /> |- <br /> | Star Wars: Episode 3 - Revenge of the Sith || ? || {{unplayable}} || ? || Game constantly stalls for several seconds during play. <br /> |-<br /> | Star Wars: Super Bombad Racing || ? || {{playable}} || ? ||<br /> |-<br /> | Star Wars: The Force Unleashed || {{unplayable}} || {{unplayable}} || ? || Very low fps and crashes within seconds of going in game. <br /> |-<br /> | Steambot Chronicles || ? || {{unplayable}} || ? || Massive performance and graphical issues. <br /> |-<br /> | Steel Dragon EX || {{playable}} || {{notavailable}} || {{playable}} || Also Known As: ''Simple 2000 Series Vol. 37: The Shooting: Double Shienryu (JP)''<br /> |-<br /> | Stella Deus: The Gate of Eternity || ? || {{playable}} || ? || Requires earlier emulator in order to work, Jak freezes on &quot;checking memory card&quot; screen. Works fantastic in Roguev2.<br /> |-<br /> | Stolen ||?||{{unplayable}}||?|| Significant low framerate (1 fps) issue, resulting the game to be unplayable.<br /> |-<br /> | Street Fighter III Third Strike || ? || ? || {{playable}} || <br /> |-<br /> | Street Fighter Alpha Anthology || ? || {{minorissues}} || ? || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable. Check [[Talk:PS2 Classics Emulator Compatibility List#Street Fighter Alpha Anthology|Emulator Configuration]] for additional details. - Known in Japan as ''Street Fighter Zero: Fighters' Generation (ストリートファイターZERO ファイターズ ジェネレーション)''<br /> |-<br /> | Street Fighter Anniversary Collection || ? || {{playable}} || ? || <br /> |-<br /> | Street Fighter EX3 || ? || {{minorissues}} || ? || Some graphical glitches such as missing floor and incorrect clothing physics<br /> |-<br /> | Stretch Panic (Freak Out) || ? || {{playable}} || ? || Known in Japan as ''Hippa Linda (ひっぱリンダ)''<br /> |-<br /> | Strike Force Bowling || ? || {{playable}} || ? || <br /> |-<br /> | Stuart Little 3: Big Photo Adventure || ? || {{minorissues}} || ? || No issues noticed, sometimes box and blimp disappear but that will not affect the gameplay, hence playable.<br /> |-<br /> | Stunt GP || ? || {{minorissues}} || ? || has same diagonal lines as seen on THPS3. Albeit on lesser scale that game is still playable. <br /> |-<br /> | Stuntman || {{playable}} || {{unplayable}} || ? || NTSC version freezes in the main menu, PAL version don't works fine, the train apear in perpendicular.<br /> |-<br /> | Sub Rebellion || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Suikoden III || {{unplayable}} || {{unplayable}} || ? || Massive graphics corruption, flickering models, spiky polygon syndrome.<br /> |-<br /> | Suikoden IV || {{playable}} || {{playable}} || ? || [SLES-52913 PAL version works great with new rip]<br /> |-<br /> | Suikoden V || {{playable}} || {{playable}} || ? || <br /> |-<br /> | Suffering, The || {{minorissues}} || ? || ? || SLES_52439 has slight graphic issues nothing that really effects gameplay also adds a bit of drift to the controller [Slow framerate and much worse visual issues in &quot;Jak&quot; emu]<br /> |-<br /> | Suffering 2: Ties that Bind, The || {{minorissues}} || ? || ? || Fixed lags and 90% broken visuals. Check [[Talk:PS2_Classics_Emulator_Compatibility_List#The_Suffering_2:_Ties_that_Bind|emulator confoguration]]. Only bug is there are black patches on character models.<br /> |-<br /> | Summer Heat Beach Volleyball || ? || {{playable}} || ? || No issues. Work great<br /> |-<br /> | Summoner || ? || {{unplayable}} || ? || Freezes on loading with Jak emu, gets to the title screen on Roguev2 emu but freezes on starting a new game.<br /> |-<br /> | Summoner 2 || ? || {{unplayable}} || ? || Games loads and runs fine, no visual issues, but enemies/NPCs don't move and cannot be hit. Naturally unplayable.<br /> |-<br /> | Sunsoft Collection || {{notavailable}} || {{notavailable}} || {{Playable}} || AKA Neo Geo Online Collection Vol.11. Set &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none&lt;/pre&gt; to fix graphic issues &amp; slowdown. Boss ROM hack also works &amp; tested with Jak Emu.<br /> |-<br /> | Super Bust-a-Move || ? || {{playable}} || ? || Known in Japan as ''SuperPuzzleBobble (スーパーパズルボブル)''<br /> |-<br /> | Super Bust-a-Move 2 || ? || {{playable}} || ? || Works great.<br /> |-<br /> | Super Dragon Ball Z || ? || {{majorissues}} || ? || The game runs perfectly fine, the issue is that characters like Vegeta and Android 16 for example have missing parts of their models<br /> |-<br /> | Super Farm || {{playable}} || {{notavailable}} || {{notavailable}} || Works perfectly.<br /> |-<br /> | Superman: Shadow of Apokolips || ? || {{unplayable}} || ? || Freezes when entering main menu. Only Rogue emu tried.<br /> |-<br /> | Super Monkey Ball DELUXE || {{unplayable}} || {{playable}} || ? || White/gray screen instead of whats intended. However, the game runs at 30 FPS still (the FPS was capped to this) and everything else works. I somehow got into story mode and beat a level. on slus-20918 played on pcsx2 emulator and had no problems.<br /> |-<br /> | SWAT: Global Strike Team || {{unplayable}} || ? || ? || Screen goes grey upon starting mission, cannot see to play, audio crackles and sounds slow even behind the graphics issues.<br /> |- <br /> | Sword of Etheria || {{playable}} || ? || ? || Seems to work fine.<br /> |-<br /> | Swords of Destiny || {{playable}} || ? || ? || Also known in Japan as ''Tian Xing: Swords of Destiny''<br /> |-<br /> | Syberia || {{unplayable}} || {{notavailable}} || {{notavailable}} || Black screen after booting<br /> |-<br /> | Syberia II || {{majorissues}} || {{notavailable}} || {{notavailable}} || All menus and graphics are glitched<br /> |-<br /> | Syphon Filter: Dark Mirror || ? || {{minorissues}} || {{notavailable}} || Played the first 3 levels of Episode 1 framerate issues and sound problems <br /> |-<br /> | Syphon Filter: Logan's Shadow || ? || {{minorissues}} || {{notavailable}} || Gameplay seems fine only tried Level 1 &amp; 2 no frame drops noticed but Sound problems are present<br /> |-<br /> | Syphon Filter: The Omega Strain || {{majorissues}} || ? || {{majorissues}} || No longer crashes, loads and plays just fine using [Jak] emu, but unfortunately there's a lot of SPS and corrupted graphics. South Korea Ver[SCKA-20032](NTSC-J) name = &quot; Syphon Filter : The Omega Virus &quot; (사이폰필터 오메가 바이러스). <br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;S&lt;/span&gt;{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == T ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Taito Legends || ? || {{playable}} || ? || <br /> |-<br /> | Taito Legends 2 || ? || {{playable}} || ? || <br /> |-<br /> | Tak and the Power of Juju || {{playable}} || ? || ? || <br /> |-<br /> | Tales Of Destiny [Directors Cut] || {{notavailable}} || {{notavailable}} || {{playable}} || To fix control after exiting the menu, and graphic bugs use config file [[Talk:PS2 Classics Emulator Compatibility List#Tales of Destiny: Directors Cut|Emulator Configuration]]<br /> |-<br /> | Tales of Destiny 2|| {{notavailable}} || {{notavailable}} || {{Playable}} || South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tales of Legendia || ? || {{unplayable}} || ? || Framerate 5-10 FPS<br /> |-<br /> | Tales of Rebirth || {{notavailable}} || {{notavailable}} || {{playable}} || Use config file from &quot;Tales of Destiny&quot; which fixes block textures. <br /> |-<br /> | Tales of the Abyss || {{notavailable}} || {{playable}} || ? || Use custom config to fix some texture glitching/disappearing. Strange transparent line from upper left to bottom right can be fixed by removing uprender/upscaler. Check [[Talk:PS2 Classics Emulator Compatibility List#Tales of The Abyss|Emulator Configuration]] for additional details. Widescreen hack and Undub works okay.<br /> |-<br /> | Taz Wanted || {{majorissues}} || {{unplayable}} || ? || Black screen after first level loading screen. PAL Version has wrong textures but works.<br /> |-<br /> | Teenage Mutant Ninja Turtles (2003) || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 2: Battle Nexus || ? || {{playable}} || ? || <br /> |-<br /> | Teenage Mutant Ninja Turtles 3: Mutant Nightmare || ? || {{playable}} || ? || <br /> |-<br /> | Tekken 4 || {{playable}} || {{playable}} || ? || Hold Triangle + X at the PS2 bios screen to bring up the progressive scan menu. Enable progressive scan for much clearer image quality<br /> |-<br /> | Tekken 5 || {{playable}} || {{playable}} || ? || Enable Progressive Scan in Options menu for much clearer image quality. All games in &quot;Arcade History&quot; work fine using clean dump and Rogue Galaxy emulator. Minor graphics corruption on certain stages, a long-known issue from PCSX2, playing with Uprender and Upscale set to &quot;None&quot; fixes those issues yet the game then requires Progressive Scan option to be able to see the screen.<br /> |-<br /> | Tekken Tag Tournament || {{minorissues}} || {{minorissues}} || {{playable}} || Works and runs full speed on PS4 Pro with Boost Mode enabled. Less clear image quality with PAL &amp; USA versions due to inclusion of CRT flicker filter which the JPN release doesn't have. [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-9#post-105118]<br /> |-<br /> | Tenchu: Wrath of Heaven || {{unplayable}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version crashes after starting story mode.<br /> |-<br /> | Tenchu: Fatal Shadows || {{majorissues}} || {{unplayable}} || ? || Freezes before the game even begins. Tried on multiple emulators. PAL version works on tutorial levels only with some graphics corruption. Story mode crashes after selecting a mission.<br /> |-<br /> | Terminator 3 Rise Of The Machines || {{minorissues}} || ? || ? || Minor graphical issues.<br /> |-<br /> | Terminator 3: The Redemption || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Terminator - Dawn of Fate || ? || {{minorissues}} || ? || Graphics corruption, shadow flicker and SPS from time to time.<br /> |-<br /> | Test Drive Unlimited || ? || {{unplayable}} || ? || Super laggy outside of the main menu.<br /> |-<br /> | Tetsujin 28-gō || ? || ? || {{playable}} || <br /> |-<br /> | Thrillville || ? || {{unplayable}} || ? || Slight errors with bloom and extremely low FPS. No texture issues however.<br /> |-<br /> | Thrillville: Off the Rails || ? || {{unplayable}} || ? || Frame rate drops drastically upon main menu screen, and audio is horribly choppy and disfigured.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | The Thing || {{unplayable}} || {{unplayable}} || ? || Stuck at loading screen after selecting new game. Rogue emu &amp; Kof98 emu tested.<br /> |-<br /> | Thunder Force VI || ? || ? || {{playable}} ||<br /> |-<br /> | Time Crisis 3 || ? || {{unplayable}} || ? || Freezes at the Namco screen.<br /> |-<br /> | TimeSplitters || {{unplayable}} || ? || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters 2 || {{unplayable}} || {{unplayable}} || ? || Black screen after playstation 2 screen<br /> |-<br /> | TimeSplitters: Future Perfect || {{unplayable}} || {{majorissues}} || ? || Cant play due to low framerate<br /> |-<br /> | Tiny Toon Adventures: Defenders of the Universe || ?|| {{playable}}|| ? || unreleased prototype game tested with PS4-PS2 classics GUI, works totally fine.<br /> |-<br /> | TMNT || ? || {{minorissues}} || ? || Some graphical glitches<br /> |-<br /> | TNA iMPACT! || {{playable}} || ? || ? ||<br /> |-<br /> | TOCA Race Driver 2 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | TOCA Race Driver 3 || {{unplayable}} || ? || ? || Access to menu, freeze when loading a race.<br /> |-<br /> | Tokyo Xtreme Racer: Zero || ? || {{playable}} || ? ||<br /> |-<br /> | Tom &amp; Jerry in War of the Whiskers || ? || {{playable}} || ? || Only works with Jak emu<br /> |-<br /> | Tomb Raider: Anniversary || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: Legend || {{playable}} || {{playable}} || ? || Graphical issues fixed. Check [[Talk:PS2 Classics Emulator Compatibility List]]<br /> |-<br /> | Tomb Raider: The Angel of Darkness || {{unplayable}} || ? || ? || Black screen after first cutscene, can't go in-menu<br /> |-<br /> | Tomb Raider: Underworld || {{minorissues}} || {{minorissues}} || ? || Minor frame rate issues on first level, else works fine<br /> |-<br /> | Tom Clancy's Rainbow Six 3 || {{minorissues}} || ? || ? || Played the T-Hunt gamemode and the practice missions noticing lighting issues<br /> |-<br /> | Tom Clancy's Splinter Cell || {{minorissues}} || {{minorissues}} || {{playable}} || Some FPS slow down in places and graphical issues with water, But mostly playable. South Korea Ver(NTSC-J) = Playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Pandora Tomorrow || {{minorissues}} || {{minorissues}} || {{playable}} || Graphical issues with water, huge FPS drops when using inferred goggles. South Korea Ver(NTSC-J) = playable<br /> |-<br /> | Tom Clancy's Splinter Cell: Chaos Theory || {{minorissues}} || {{minorissues}} || ? || Sound lags and sometimes frame rate issues (minor bugs playable) <br /> |-<br /> | Tom Clancy's Splinter Cell: Double Agent || {{minorissues}} || {{minorissues}} || ? || Played over an hour of gameplay some slow down and FPS issues occasionally, Sound issues, main menu lag Tutorial videos lag <br /> |-<br /> | Tony Hawk's American Wasteland || ? || {{unplayable}} || ? || Game has various artifacts during into videos, freezes permanently at menu loading screen.<br /> |-<br /> | Tony Hawk's Pro Skater 3 || {{Playable}} || {{Playable}} || {{Playable}} || Frame rate is rock solid to fix graphic issues use result clamping commands to all options. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Tony Hawk Pro Skater 3|Emulator Configuration]] for additional details.<br /> |-<br /> | Tony Hawk's Underground || {{unplayable}} || {{unplayable}} || ? || Freezes on first loading screen.<br /> |-<br /> | Tony Hawk's Underground 2 || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Proving Ground || {{unplayable}} || {{unplayable}} || ? || Freezes at first intro splash screen<br /> |-<br /> | Tony Hawk's Projectt 8|| {{unplayable}} || {{unplayable}} || ? || Freezes at first loading screen<br /> |-<br /> |Total Overdose: A Gunslinger's Tale in Mexico ||?||{{playable}}||?|| No issues noticed. Used Rogue emulator.<br /> |-<br /> | Tourist Trophy || {{unplayable}} || ? || ? || small minor graphical glitches when driving on the road. Only the arcade mode available. Unable to pass driver's licenses<br /> |-<br /> | Transformers (Transformers Armada: Prelude to Energon) || ? || {{unplayable}} || ? || Crashes after first cutscene <br /> |-<br /> | Transformers: The Game || {{minorissues}} || ? || ? || Minor graphical glitches when facing the sun. (Note: Transformers and Transformers: The Game are 2 seperate games) &lt;!--// Thank You &lt;3 //--&gt;<br /> |-<br /> | Transformers: Revenge of the Fallen || {{unplayable}} || ? || ? || Freezes after first cutscene<br /> |-<br /> | Trapt || ? || {{playable}} || ? || Works fine, no noticeable issues.<br /> |-<br /> | Tribes: Aerial Assault || ? || {{playable}} || ? || <br /> |-<br /> | Triggerheart Excelica Enhanced || {{notavailable}} || {{notavailable}} || {{playable}} || Not encountered a single issue using Jak emu.<br /> |-<br /> | Trigger Man || ? || {{playable}} || ? || <br /> |-<br /> | True Crime: New York City || ? || {{majorissues}} || ? || Tutorial plays fine. Major lag and frame rate drops once the game reaches city streets/free roam, even on a PS4 Pro.<br /> |-<br /> | True Crime: Streets of LA || {{playable}} || {{playable}} || ? || A patched iso is required to fix the title screen freeze and a fix for graphical issues is required &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#True Crime: Streets of LA|Emulator Configuration]] for additional details.<br /> PAL see: 0https://www.youtube.com/watch?v=6aKljW9WCWc<br /> |-<br /> | Tsugunai Atonement || ? || {{playable}} || ? || Works with KOF98emu. Haven't noticed any issues.<br /> |-<br /> | Twisted Metal: Black || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Twisted Metal: Head-On Extra Twisted Edition || {{minorissues}} || ? || ? || FPS drops during gameplay. <br /> |-<br /> | Ty the Tazmanian Tiger || ? || {{unplayable}} || ? || Framerate is roughly 10-15 FPS, and it freezes after 2 seconds after loading in. It saves in time to load a new game after the first freeze, but doesnt change anything.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;T&lt;/span&gt;{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == U ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Ultimate Board Game Collection || ? || {{playable}} || ? || <br /> |-<br /> | Ultimate Spider-Man || ? || {{minorissues}} || ? || No issues with gameplay, however there are some texture glitches. &lt;span style=&quot;color:white; background:Red&gt;Skip cutscenes during gameplay, else the game will freeze&lt;/span&gt;<br /> |-<br /> | Unreal Tournament || ? || {{playable}} || ? || Completely fine, no issues at all.<br /> |-<br /> | Urban Chaos: Riot Response || {{unplayable}} || ? || ? || Loads, no issues with graphics or freezing, but has incredibly low framerate. Much like Drakengard 1, I'd say &lt;=50%<br /> |-<br /> | Urban Reign || {{unplayable}} || {{unplayable}} || {{unplayable}} || Jak emulator gets further than before and players are only able to access the main menu, though the game still freezes before starting the first mission. Rogue Emu refuses even to load and freezes on black screen after PS2 Logo. Same issue persists on Korean and Japanese versions. Known in Japan as ''アーバンレイン, Aban Rein''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;U&lt;/span&gt;{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == V ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Valkyrie Profile 2 - Silmeria || {{majorissues}} || {{majorissues}} || {{minorissues}} || Loads with TriAce hack, though it suffers purple screen &quot;filter&quot; in Forest area, but with substantial performance issues. Screen jitter on modern HD TVs. PAL version has no Progressive Scan mode, unlike NTSC. Unplayable with modern Jak emu due to geometry failing.<br /> JAP version loads with TriAce hack and latest Jak emu, must use 480p progressive mode to see the world map, 480i will get black screen. Slight slowdown at Forest area. No significant issue as of now, will continued to monitor.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Valkyrie Profile 2: Silmeria|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire: Darkstalkers Collection || {{notavailable}} || {{notavailable}} || {{minorissues}} || Performance issues fixed with special config, some v.minor graphical anomalies exist in some games. Barely noticeable.&lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Vampire: Darkstalkers Collection|Emulator Configuration]] for additional details.<br /> |-<br /> | Vampire Night || ? || {{playable}} || ? || <br /> |-<br /> | Van Helsing || ? || {{minorissues}} || ? || Minor Menu glitches.<br /> |-<br /> | Vexx || ? || {{minorissues}} || ? || Minor graphic glitches on terrain from certain angles.<br /> |-<br /> | Victorious Boxers 2 || {{playable}} || ? || ? || Works fine. No issue noticed.<br /> |-<br /> | Vietcong Purple haze || ? || {{playable}} || {{notavailable}} || no issue. <br /> |- <br /> | Viewtiful Joe || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Viewtiful Joe 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtua Cop: Elite Edition || {{notavailable}} || {{playable}} || {{playable}} || Works 100% fine. Known in Japan as ''VIRTUA COP Re-Birth''.<br /> |-<br /> | Virtua Fighter 4 || {{minorissues}} || {{minorissues}} || {{minorissues}} || Black border at bottom of the screen.<br /> |-<br /> | Virtua Fighter 4: Evolution || {{playable}} || {{playable}} || {{playable}} || Water and Dural invisibility effect fixed with latest version of PS2 emu found in Jak 1.<br /> |-<br /> | Virtua Tennis 2 (Sega Sports Tennis) || ? || {{unplayable}} || ? || Known in Japan as ''Power Smash 2 (パワースマッシュ2)'' <br /> |-<br /> | Virtua Quest || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Virtual-On: Marz || ? || {{playable}} || ? || Seems completely fine.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;V&lt;/span&gt;{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == W ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Wacky Races: Mad Motors || {{playable}} || ? || ? ||<br /> |-<br /> | Wacky Races starring Dastardly &amp; Muttley || {{minorissues}} || {{notavailable}} || {{notavailable}} || Works almost perfectly, occasionally, for a second, very thin black lines appear on screen but is hardly visible and doesn't affect gameplay. Very occasional frame drops in crowded areas. <br /> |-<br /> | WALL·E || {{playable}} || ? || ? || Occasional frame drops, but works fine overall<br /> |-<br /> | Walt Disney's The Jungle Book: Groove Party || {{playable}} || ? || ? || Released in North America as ''Walt Disney's The Jungle Book: Rhythm N'Groove''<br /> |-<br /> | War of the Monsters || {{official}} || {{official}} || ? || <br /> |-<br /> | The Warriors || {{official}} || {{official}} || {{notavailable}} || <br /> |-<br /> | Warriors of Might &amp; Magic || ? || {{unplayable}} || ? || Freezes either on Pic1 or after PS2 logo, tried on several different emulators.<br /> |-<br /> | Warriors Orochi || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warriors Orochi 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Warship Gunner: Naval Ops || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Warship Gunner 2 || ? || {{majorissues}} || ? || Performance drops quite noticeably with enemy ships on screen, especially when using the zoom mode. Performance is worse in &quot;Jak&quot; emu, better in &quot;Rogue&quot;. Runs full speed on a PS4 Pro with Boost mode.<br /> |-<br /> | Way of the Samurai [Samurai (侍)] || ? || {{playable}} || ? || Black screen after PS2 logo on Jak, looks and runs great using Roguev1. Widescreen patch causes graphics to not render.<br /> |-<br /> | Way of the Samurai 2 || ? || {{playable}} || ? || No issues noticed.<br /> |-<br /> | Whiplash || {{playable}} || {{playable}} || ? || Custom config fixes texture glitch. &lt;br&gt;Check [[Talk:PS2 Classics Emulator Compatibility List#Whiplash|Emulator Configuration]] for additional details.<br /> |-<br /> | Wheel of Fortune || ? || {{minorissues}} || ? || Main Menu and player spin options are blurry as shit, but FMVs and gameplay are perfectly fine.<br /> |-<br /> | Wild Arms 3 || {{official}} || {{official}} || ? || Known in Japan as ''Wild Arms Advanced 3rd (ワイルドアームズ アドヴァンスドサード)''<br /> |-<br /> | Wild Arms 4 || ? || {{unplayable}} || ? || Freezes with audio loop on first FMV.<br /> |-<br /> | Wild Arms 5 || ? || {{unplayable}} || ? || Can get further into the game using Jak emulator, passed title screen and options menu, into gameplay itself. Game then freezes with audio loop when you enter first area.<br /> |-<br /> | Wild Arms Alter Code : F || ? || {{minorissues}} || ? || No freeze or glitches any more, using Jak emu, though there are some instances of slowdown during *some* spell effects, predominantly fire. Very minor issue though.<br /> |-<br /> | WinBack: Covert Operations (Operation WinBack) || ? || {{unplayable}} || ? || missing background level assets. Unplayable.<br /> |-<br /> |Winx Club || {{unplayable}} || {{notavailable}} || {{notavailable}} || Random freezing during gameplay. Tested with Rogue and Jak emulator.<br /> |-<br /> | Wipeout Fusion (wipEout fusion) || ? || {{playable}} || ? || No found issues<br /> |-<br /> | Wipeout Pulse || {{minorissues}} || ? || ? || Memory Card Corruption message in the 1st autoloading.<br /> |-<br /> | Without Warning ||?||{{playable}}||?|| Works fine, no known issues<br /> |-<br /> | Wizardry: Tale of the Forsaken Land || ? || {{playable}} || ? || No issues whatsoever.<br /> |-<br /> | Women's Volleyball Championship || ? || {{majorissues}} || ? || No stadium/background assets.&lt;br&gt;Known in Japan as ''FIVB Volleyball World Cup: Venus Evolution [バレーボール ワールドカップ 〜ヴィーナスエボリューション〜]''<br /> |-<br /> | Woody Woodpecker: Escape from Buzz Buzzard Park || ? || {{playable}} || ? || <br /> |-<br /> | World Championship Poker || ? || {{playable}} || ? || <br /> |-<br /> | World Heroes Anthology || ? || {{minorissues}} || ? ||<br /> |-<br /> |Worms Forts: Under Siege || {{playable}} || ? || ? || <br /> |-<br /> |Worms 4 Mayhem || {{playable}} || ? || ? || <br /> |-<br /> | Wreckless: The Yakuza Missions || {{playable}} || ? || ? || Known as ''Double S.T.E.A.L.'' in Japan<br /> |-<br /> | Wrestle Kingdom 2: Pro Wrestling Sekai Taisen || ? || ? || {{minorissues}} || Some character models may be transparent. Tested with RogueV1emu<br /> |-<br /> | WWE Crush Hour || ? || {{playable}} || ? ||<br /> |-<br /> | WWE Smackdown! Here Comes The Pain || ? || {{playable}} || ? || Cutscenes are choppy. Some graphical issues (Does not affect the gameplay at all)<br /> |-<br /> | WWE Smackdown! Shut Your Mouth || {{minorissues}} || {{minorissues}} || ? ||Very minor graphical issues with Special Meter &amp; Low LOD Crowd <br /> |-<br /> | WWE SmackDown! vs. Raw 2006 || ? || {{minorissues}} || ? || Match selection screen has scrambled text. Game never loaded Buried Alive match type but it did load a basic 1 vs 1 match&lt;br&gt;Known in Japan as ''Exciting Pro Wrestling 7: SmackDown! vs. Raw 2006 (エキサイティングプロレス7 SMACKDOWN! VS. RAW 2006)''<br /> |-<br /> | WWE SmackDown! vs. Raw 2011 || ? || {{playable}} || ? || Known in Japan as ''Exciting Pro Wrestling 12: SmackDown! vs. Raw 2011 (エキサイティングプロレス12 SMACKDOWN! VS. RAW 2011)''<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;W&lt;/span&gt;{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == X ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | The X-Files: Resist or Serve || ? || {{playable}} || ? || Works Great with custom config and Jak emu<br /> |-<br /> | XGRA: Extreme-G Racing Association || ? || {{majorissues}} || {{notavailable}} || Intro FMV cinematic has choppy audio and poorly interlaced video. Demo mode has strange graphical glitches. Some levels have skybox issues that block nearly the entire screen.<br /> |-<br /> | X-Men Legends || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Legends II: Rise of Apocalypse || ? || {{unplayable}} || ? || Doesn't boot past the PS2 startup screen.<br /> |-<br /> | X-Men Origins: Wolverine || {{majorissues}} || ? || ? || Graphical glitches, major frame drops, audio distortion<br /> |-<br /> | X-Men: Next Dimension || ? || {{minorissues}} || ? || Boots using StarOcean3. However there's some graphical issues, needs patch.<br /> |-<br /> | X-Men: The Official Game || ? || {{playable}} || ? ||<br /> |-<br /> | X-Men 2: Wolverine's Revenge || {{playable}} || ? || ? || No known issues<br /> |-<br /> | X-treme Express || {{minorissues}} || {{notavailable}} || ? || Landscape will disappear on the sides of the screen sometimes, especially when going through tunnels.&lt;br&gt; Known in Japan as ''&quot;Tetsu 1: Densha de Battle! World Grand Prix&quot; (鉄1 〜電車でバトル!〜 WORLD GRAND PRIX)''<br /> |-<br /> | Xenosaga Episode I: Der Wille zur Macht || ? || {{minorissues}} || ? || Works Great! Random shadow-cast lines streaming off characters (not too bad) <br /> |-<br /> | Xenosaga Episode II: Jenseits von Gut und Böse || ? || {{minorissues}} || ? || Minor issues with Shadows.<br /> |-<br /> | Xenosaga Episode III: Also Sprach Zarathustra || ? || {{minorissues}} || ? || Minor issues with shadows.<br /> |-<br /> | XII Stag || {{playable}} || ? || ? ||<br /> |-<br /> | XIII || ? || {{minorissues}} || ? || Flickering ground textures<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;X&lt;/span&gt;{{dot}}[[#Y|Y]]{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Y ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Yakuza || {{playable}} || {{playable}} || ? || Seems to work fine, <br /> |-<br /> | Yakuza 2 || ? || {{playable}} || ? || Game is DVD9. Seems to work fine.<br /> |-<br /> | Yanya Caballista: City Skater || ? || {{unplayable}} || ? || Player is in no space but still able to move. Unplayable (Known in Japan as ''Yanya Caballista featuring Gawoo [ヤンヤ カバジスタ featuring Gawoo]'')<br /> |-<br /> | Ys VI: The Ark of Napishtim || ? || {{playable}} || ? || No issues of note.<br /> |-<br /> | Yu-Gi-Oh!: Capsule Monster Coliseum || {{unplayable}} || {{unplayable}} || ? || Game does not boot.<br /> |-<br /> | Yu-Gi-Oh!: Duelist of The Roses || {{playable}}|| {{unplayable}} || ? || Game loads through first interaction to prepare main game. Thereafter, the game gets stuck in infinite loops of spiraling clouds when main map loads.<br /> |-<br /> | Yu-Gi-Oh! GX: Tag Force Evolution || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |-<br /> | Yu-Gi-Oh! GX: The Beginning of Destiny || {{unplayable}} || ? || ? || PAL version gets stuck in permanent loading loop after selecting &quot;New Game&quot; on title screen.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Y&lt;/span&gt;{{dot}}[[#Z|Z]]'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> == Z ==<br /> {| border=&quot;1&quot; cellpadding=&quot;1&quot; class=&quot;wikitable center mw-datatable&quot; style=&quot;font-size:85%; text-align:left&quot;<br /> ! style=&quot;width:27%&quot; | Name !! style=&quot;width:7%&quot;| {{flagonly|EU}} PAL !! style=&quot;width:7%&quot;| {{flagonly|US}} NTSC-U/C !! style=&quot;width:7%&quot;| {{flagonly|JP}} NTSC-J !! style=&quot;width:52%&quot;| Notes &lt;small&gt;&lt;div style=&quot;float:right;&quot;&gt;[[PS2 Classics Emulator Compatibility List#top|Back to top]]&lt;/div&gt;&lt;/small&gt;<br /> |-<br /> | Zatch Bell!: Mamodo Battles || ? || {{minorissues}} || ? || Repeated flickering, shadowing, and vanishing of character models during battle sequences.<br /> |-<br /> | Zatch Bell: Mamodo Fury || ? || {{minorissues}} || ? || Heavy Slowdown in Menus, Title and Story screens but the game runs fine without framedrop.<br /> |-<br /> | Zathura || ? || {{playable}} || ? || works Fine and perfect. <br /> |-<br /> | Zombie Hunters 2 || {{majorissues}} || ? || ? || Wasn't sure whether to mark as Minor or Major. Game runs fine but has a ton of texture and polygon flickering on player character.<br /> |-<br /> | Zone of the Enders || {{minorissues}} || ? || ? || Some menu sprites are cut off at the sides and suffer minor artifacting. <br /> |-<br /> | Zone of the Enders: The 2nd Runner || {{playable}} || ? || {{playable}} || Runs great, looks great, PAL version had one EE crash during play but could not replicate it. Save often just in case.<br /> |}<br /> &lt;span style=&quot;font-size:85%&quot;&gt;&lt;div align=&quot;right&quot;&gt;'''[[##|#]]{{dot}}[[#A|A]]{{dot}}[[#B|B]]{{dot}}[[#C|C]]{{dot}}[[#D|D]]{{dot}}[[#E|E]]{{dot}}[[#F|F]]{{dot}}[[#G|G]]{{dot}}[[#H|H]]{{dot}}[[#I|I]]{{dot}}[[#J|J]]{{dot}}[[#K|K]]{{dot}}[[#L|L]]{{dot}}[[#M|M]]{{dot}}[[#N|N]]{{dot}}[[#O|O]]{{dot}}[[#P|P]]{{dot}}[[#Q|Q]]{{dot}}[[#R|R]]{{dot}}[[#S|S]]{{dot}}[[#T|T]]{{dot}}[[#U|U]]{{dot}}[[#V|V]]{{dot}}[[#W|W]]{{dot}}[[#X|X]]{{dot}}[[#Y|Y]]{{dot}}&lt;span style=&quot;color:#FF0000&quot;&gt;Z&lt;/span&gt;'''&lt;/div&gt;&lt;/span&gt;<br /> <br /> <br /> {{Reverse Engineering}}&lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> 162.199.155.139 http://www.psdevwiki.com/ps4/index.php?title=Talk:PS2_Classics_Emulator_Compatibility_List&diff=281181 Talk:PS2 Classics Emulator Compatibility List 2020-05-12T16:48:35Z <p>162.199.155.139: /* X-Files - Resist or Serve */</p> <hr /> <div>==Official PS2emu Configuration Files ==<br /> <br /> Here are configuration files extracted from official packages, to improve PS2 emulator compatibility on PS4. Most of them require also emulator/recompiler files from extracted pkg to work correctly.<br /> <br /> ====Canis Canem Edit/Bully====<br /> SLES 535.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- EA sports cricket 07 bug 9392<br /> -- Performance fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )&lt;/pre&gt;<br /> <br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x3fa5c0,0x3fa5c0<br /> --gs-flush-ad-xyz=SafeZWrite<br /> --vu1-opt-vf00=2<br /> --vu1-di-bits=0<br /> --ee-hook=0x001f3ef4,FastForwardClock<br /> --gs-use-deferred-l2h=0<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=2500<br /> --fpu-rsqrt-fast-estimate=0<br /> --safe-area-min=1.0&lt;/pre&gt;<br /> <br /> SLUS-21269<br /> &lt;br&gt;SLUS-21269_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 150 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/12gt2fONqMP1rmEB9UMw3rIpEYbz1dQq8/view<br /> <br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans====<br /> SLUS_209.45<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-ignore-dirty-page-border=1<br /> --fpu-accurate-addsub-range=0x28bf00,0x28c100<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_209.45<br /> &lt;br&gt;SLUS-20945_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! PS2 - SLUS-20945 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x308270, 0x3c0336c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x3078F4, 0xae0000f4, function() -- Graphics::Renderer::Renderer<br /> local renderer = eeObj.GetGpr(gpr.s0)<br /> eeObj.WriteMemFloat(renderer+0x200, 1.3333333)<br /> eeObj.WriteMemFloat(renderer+0x204, 1.7777777)<br /> eeObj.WriteMem32(renderer+0x208, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.widescreen&quot; = 0xbcf14d81<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c0d49d8, -- jal Core::Memset(void *,int,uint)<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09dacc, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0xbcf1<br /> 0x34214d81, -- ori $at, $at, 0x4d81<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x2789F8, 0x0c0d49d8, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Destroy All Humans 2====<br /> SLUS_214.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_214.39<br /> &lt;br&gt;SLUS-21439_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Destroy All Humans! 2 PS2 - SLUS-21439 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.7) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local gpr = require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> -- Widescreen<br /> eeObj.AddHook(0x33ca98, 0x3c0436c5, function() -- Graphics::Script::SetScreenRatio<br /> local mode = eeObj.GetGpr(gpr.v0)<br /> <br /> -- print(string.format(&quot;mode: %08x&quot;, mode))<br /> <br /> if mode == 0x36c59d2b then -- widescreen<br /> emuObj.SetDisplayAspectWide()<br /> elseif mode == 0x855a87ef then -- standard<br /> emuObj.SetDisplayAspectNormal()<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x33afac, 0x0000282d, function() -- Graphics::Renderer::Renderer<br /> eeObj.SetGpr(gpr.a1, 2)<br /> end)<br /> <br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- CRC &quot;settings.display.anamorphic&quot; = 0x8b36afe9<br /> -- $s2 = SaveType (1 = new save)<br /> <br /> local overlay = InsnOverlay({<br /> 0x27bdffe0, -- addiu $sp, -0x20<br /> 0xffbf0010, -- sd $ra, 0x10($sp)<br /> 0x0c059d02, -- memset<br /> 0x00000000, -- nop<br /> 0x24030001, -- li $v1, 1<br /> 0x1472000b, -- bne $s2, $v1, +11<br /> 0x00000000, -- nop<br /> 0x0c09b400, -- jal UFO::Progress::Get(void)<br /> 0x00000000, -- nop<br /> 0x3c01bcf1, -- lui $at, 0x8b36<br /> 0x34214d81, -- ori $at, $at, 0xafe9<br /> 0xafa10000, -- sw $at, 0($sp)<br /> 0x24030001, -- li $v1, 1<br /> 0xa3a30004, -- sb $v1, 4($sp)<br /> 0x03a0282d, -- move $a1, $sp<br /> 0x0c09dd4c, -- jal UFO::Progress::Record::AddKey(UFO::Progress::Content const&amp;)<br /> 0x0040202d, -- move $a0, $v0<br /> 0xdfbf0010, -- ld $ra, 0x10($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0020 -- addiu $sp, 0x20<br /> })<br /> local call_overlay = 0x0c000000 | (overlay &gt;&gt; 2)<br /> eeInsnReplace(0x271AD0, 0x0c059d02, call_overlay) -- UFO::Progress::Storage::PrepareWrite<br /> <br /> -- Disable Progressive Scan and Adjust Screen Position<br /> <br /> local overlay2 = InsnOverlay({<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0xffbf0000, -- sd $ra, 0(sp)<br /> 0xffb00008, -- sd $s0, 8(sp)<br /> 0x3c05000f, -- lui $a1, 0x000f<br /> 0x34a57000, -- ori $a1, 0x7000<br /> 0x0c0db8b6, -- jal Script::State::DoString<br /> 0x0080802d, -- move $s0, $a0<br /> 0x24050001, -- li $a1, 1<br /> 0x0c0dba4c, -- jal Script::State::IsNull(int)<br /> 0x0200202d, -- move $a0, $s0<br /> 0xdfb00008, -- ld $s0, 8(sp)<br /> 0xdfbf0000, -- ld $ra, 0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> })<br /> local call_overlay2 = 0x0c000000 | (overlay2 &gt;&gt; 2)<br /> eeInsnReplace(0x2e5a14, 0x0c0dba4c, call_overlay2) -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> <br /> eeObj.AddHook(0x2e5a10, 0x0240202d, function() -- Sim::Manager::ProcessScript near Sim::Manager::SetPauseFlag<br /> local luaString = [[<br /> -- disable progressive scan and adjust screen<br /> gui.i.SMOptionsDisplay.table.slots[3] = nil<br /> gui.i.SMOptionsDisplay.table.slots[4] = nil<br /> ]]<br /> eeObj.WriteMemStrZ(0xf7000, luaString)<br /> end)<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Everybody's Tennis/Hot Shots Tennis====<br /> SCES_545.35<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000800000010,0x00000000300a1400,256<br /> --gs-motion-factor=50<br /> --mtap1=always<br /> --gs-opt-frbuff-switch=1<br /> --gs-ignore-dirty-page-border=1<br /> --gs-ignore-rect-correction=1<br /> --ee-native-function=memcpy,0x11e328<br /> --ee-native-function=memset,0x11e4e0<br /> #performance and visual fix(?)&lt;/pre&gt;<br /> <br /> SCES_545.35<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;local gpr = require(&quot;ee-gpr-alias&quot;)<br /> require( &quot;ee-hwaddr&quot; )<br /> apiRequest(1.4)<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- function dump(addr)<br /> -- print(string.format(&quot;=== dump %x ===&quot;, addr))<br /> -- for i=0,0x1e do<br /> -- print(string.format(&quot; %08x : %08x %08x %08x %08x&quot;,<br /> -- addr + i*16,<br /> -- eeObj.ReadMem32(addr + i*16 + 0),<br /> -- eeObj.ReadMem32(addr + i*16 + 4),<br /> -- eeObj.ReadMem32(addr + i*16 + 8),<br /> -- eeObj.ReadMem32(addr + i*16 +12)))<br /> -- end<br /> -- end<br /> <br /> -- Bug#8285<br /> -- This patch changes the color of background on :<br /> -- - Language selection<br /> -- - Company logo<br /> -- - Start screen<br /> -- - Some menu<br /> -- which are in menu.bin overlay. Nothing affected in the actual game.<br /> eeObj.DmaAddHook( 1, function()<br /> if eeObj.ReadMem32(vif1_hw.TADR) == 0x1fd1c0 then<br /> -- On language select<br /> if eeObj.ReadMem32(0x4c8ef0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c8ef0, 0)<br /> end<br /> if eeObj.ReadMem32(0x548f30) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x548f30, 0)<br /> end<br /> -- On company logo<br /> if eeObj.ReadMem32(0x4c6d70) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x4c6d70, 0)<br /> end<br /> if eeObj.ReadMem32(0x546db0) == 0x00ff9090 then<br /> eeObj.WriteMem32(0x546db0, 0)<br /> end<br /> end<br /> end)<br /> <br /> <br /> eeInsnReplace(0x103d58, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x103d5c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103d58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103dd8, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x103ddc, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103dd8, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103e98, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x103e9c, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x103e98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x103f18, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x103f1c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x103f18, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x106970, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x106974, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x106970, 0x03e00008,'AdvanceClock',0x1700)<br /> &lt;/pre&gt;<br /> <br /> ====Fahrenheit/Indigo Prophecy====<br /> SLES_535.39<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x002097d0,FastForwardClock,0x8c6261fc<br /> --ee-hook=0x1a5570,AdvanceClock,,500000<br /> --ee-hook=0x00223c48,AdvanceClock,0x0080382d,8000<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;This is a substantial file. Over 20,000 lines with an extensive performance fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1L2YxondID65KIAybKVCBH9KgFegqqOeQ/view<br /> <br /> -- Performace fix (bug #9785 )<br /> -- bug#8571<br /> -- ignore 'no wait vsync' case.<br /> -- unsyncv causes major slowness on loading screen, because the game pushes LOTS of identical frame data to GS.&lt;/pre&gt;<br /> <br /> SLES_535.39<br /> &lt;br&gt;SLES-53539_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Fahrenheit PS2 - SLES-53539 (EUR)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> require( &quot;ee-cpr0-alias&quot; ) -- for EE CPR<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Run<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = function() -- QDT::SINT::SCRIPT_LOADING_SCREEN::EM::Stop<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x387040, 0x3c02004b, L1) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Run<br /> local load2 = eeObj.AddHook(0x387090, 0x3c02004b, L2) -- QDT::SINT::SCRIPT_LOADING_SCREEN::Stop<br /> <br /> -- Widescreen<br /> eeInsnReplace(0x20a7c0, 0x3c013faa, 0x3c013fe3)<br /> eeInsnReplace(0x20a7c4, 0x3421aaab, 0x34218e39)<br /> emuObj.SetDisplayAspectWide()<br /> <br /> -- Skip video mode options<br /> local videomenuVM = { 0x04, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,<br /> 0x3B, 0x0D, 0x00, 0x00, 0x3B, 0x0B, 0x00, 0x00,<br /> 0x3B, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 }<br /> <br /> local visualmenuVM = { 0x04, 0x01, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,<br /> 0x3B, 0x19, 0x00, 0x00, 0x3B, 0x18, 0x00, 0x00 }<br /> <br /> -- locates src chunk on (dst,cnt). -1 if not found, offset if found<br /> local locateChunk = function(src, dst, count)<br /> local offs = -1<br /> <br /> for x = 0, count - #src do<br /> if eeObj.ReadMem8(dst+x) == src[1] then<br /> local found = true<br /> for y = 1, #src do<br /> if eeObj.ReadMem8(dst+x+y-1) ~= src[y] then<br /> found = false<br /> break<br /> end<br /> end<br /> <br /> if found == true then<br /> offs = x<br /> break<br /> end<br /> end<br /> end<br /> <br /> return offs<br /> end<br /> <br /> eeObj.AddHook(0x2812b0, 0x27bdfff0, function() -- QDT::VM::BYTE_CODE::BYTE_CODE<br /> local obj = eeObj.GetGpr(gpr.a1)<br /> local bytecode = eeObj.ReadMem32(obj+0x18)<br /> local count = eeObj.ReadMem32(obj+0x20)<br /> <br /> if count &gt; #videomenuVM then<br /> local offs = locateChunk(videomenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping video mode menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+4, 8) -- beq 0x44 -&gt; beq 0x8<br /> end<br /> end<br /> <br /> if count &gt; #visualmenuVM then<br /> local offs = locateChunk(visualmenuVM, bytecode, count)<br /> if offs &gt;= 0 then<br /> print(&quot;Skipping visual mode video menu&quot;)<br /> eeObj.WriteMem8(bytecode+offs+1, 2) -- beq 0xa2 -&gt; bne 0xa2<br /> end<br /> end<br /> end)<br /> <br /> -- Force 60hz<br /> eeInsnReplace(0x207ae0, 0x00a0802d, 0x24100001) -- move $s0, $a1 -&gt; li $s0, 1<br /> <br /> -- Fix for bug 9716, which is a bug in the game.<br /> -- Trying to retrieve a COM handle in the game will cause an infinite<br /> -- loop if the handle has been deallocated and the debug server is not<br /> -- connected. There's apparently a small race condition in the Asylum<br /> -- level that sometimes can trigger the bug.<br /> -- The fix involves getting out of the loop.<br /> -- It causes a small visual glitch but otherwise the game continues to work fine.<br /> <br /> eeInsnReplace(0x1c5958, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5b6c, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> eeInsnReplace(0x1c5d24, 0x10400005, 0) -- QDT::KCOM::COM_SERVICE::RetrieveComHandle<br /> #Official widescreen support, forced 60Hz/NTSC, along with a game crash bug fix.&lt;/pre&gt;<br /> <br /> ====Fatal Fury: Battle Archives volume 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.010<br /> --force-frame-blend=1<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_217.23<br /> &lt;br&gt;SLUS-21723_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 500 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FPPPJiHOazTXaD-H6K3kLACYDSdDeAE1/view<br /> <br /> #official widescreen support in the form of screen bezels, along with expanded fightstick support and scanline shaders.&lt;/pre&gt;<br /> <br /> ====Fu'un Super Combo!!!====<br /> SLPS_257.81<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=2x2<br /> --gs-upscale=point<br /> --host-audio-latency=0.3<br /> --ee-hook=0x127050,AdvanceClock,0x2403002b,0x4000<br /> --ee-hook=0x106734,FastForwardClock,0x0c04149c<br /> --ee-native-function=memcpy,0x11fa9c,0x0080402d<br /> --force-frame-blend=1<br /> --vif1-ignore-cmd-ints=1<br /> #Graphical and performance fixes.&lt;/pre&gt;<br /> <br /> SLPS_257.81<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(1.4)<br /> <br /> eeNativeFunction(0x11fa9c, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x11fb48, 0x2cc20008, 'memset')<br /> <br /> eeInsnReplace(0x1279d0, 0x27bdffc0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x1279d4, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x1279d0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x127b00, 0x27bdffc0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x127b04, 0xffb20020, 0x00000000)<br /> eeNativeHook (0x127b00, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x12a258, 0x3c19ffff, 0x03e00008) -- &lt;sceSifWriteBackDCache&gt;<br /> eeInsnReplace(0x12a25c, 0x3739ffc0, 0x00000000)<br /> eeNativeHook (0x12a258, 0x03e00008,'AdvanceClock',0x1700)<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- *** viBufBeginPut (1)<br /> --eeInsnReplace(0x105628, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x1056c8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufEndPut (1)<br /> eeInsnReplace(0x105708, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105730, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufFlush (1)<br /> --eeInsnReplace(0x105a88, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> --eeInsnReplace(0x105ab8, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> -- *** viBufPutTs (1)<br /> eeInsnReplace(0x105c10, 0x0c049c78, 0) -- jal 1271e0 &lt;WaitSema&gt;<br /> eeInsnReplace(0x105cf4, 0x0c049c70, 0) -- jal 1271c0 &lt;SignalSema&gt;<br /> <br /> -- it's redundant calling of _waitIpuIdle in libmpeg... not so huge impact tho.<br /> eeInsnReplace(0x118620, 0x0c04672a, 0) -- jal 119ca8 &lt;_waitIpuIdle&gt;<br /> <br /> -- bug# 9972<br /> local emuObj = getEmuObject()<br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> #Crash/stall fixes.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto III====<br /> SLUS_200.62<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x27cea8,FastForwardClock<br /> #Performance and graphical fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9133<br /> -- workaround ... -16020(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x318344, 0xc792c16c, 0x44809000) -- lwc1 $f18,-16020(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.62<br /> &lt;br&gt;SLUS-20062_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto III PS2 - SLUS-20062 (USA) v1.40<br /> -- Author: Nicola Salmoria<br /> -- Date: November 3, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x416748<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- change widescreen flag<br /> function()<br /> local isWidescreen = eeObj.GetGpr(gpr.v0)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> local hook1 = eeObj.AddHook(0x27ed04, 0x7fbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x270e50, 0xa382b8d8, H2) -- &lt;CMenuManager::AnaliseMenuContents(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: San Andreas====<br /> SLUS_209.46<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-optimize-30fps=1<br /> --ee-hook=0x34dee8,FastForwardClock<br /> --ee-hook=0x00245ee0,FastForwardClock<br /> --cop2-no-clamping=1<br /> --gs-flush-ad-xyz=safe<br /> --vu1-clamp-range=0x04a,0x069<br /> --gs-use-deferred-l2h=0<br /> #Performance optimisation/fix.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.6) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- bug#8979<br /> -- The game bugged.<br /> -- CStreaming::StreamPedsIntoRandomSlots(int*) expects 8 integers arrray to process,<br /> -- but CCheat::LoveConquersAllCheat() function copies just only 6 integers to the stack.<br /> -- it seems the table of the source is correct, so using lq/sq instead of ld/sd to copy<br /> -- the contents of the table correctly.<br /> eeInsnReplace(0x59fbb0, 0xdca20010, 0x78a20010) -- ld v0,16(a1) =&gt; lq<br /> eeInsnReplace(0x59fbb8, 0xfc820010, 0x7c820010) -- sd v0,16(a0) =&gt; sq<br /> <br /> -- bug#8979, actually different one<br /> -- the game has another bug... see https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8979<br /> eeInsnReplace(0x1abdd8, 0x102000d9, 0x102000cf) -- beqz at,1ac140 &lt;CPopulation::AddPed(ePedType, unsigned int, CVector const &amp;, bool)+0x3a0&gt;<br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 700<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80000044 , zmsk=1 } )<br /> #Performance and rendering fixes.&lt;/pre&gt;<br /> <br /> SLUS_209.46<br /> &lt;br&gt;SLUS-20946_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: San Andreas - SLUS-20946 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 5, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x7004ef<br /> <br /> local H1 = -- init widescreen flag<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x233584, 0xa200004f, H1) -- &lt;CMenuManager::__ct(void)&gt;:<br /> local hook2 = eeObj.AddHook(0x246750, 0x24040012, H2) -- &lt;TheGame(void)&gt;:<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Grand Theft Auto: Vice City====<br /> SLUS_205.52<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection=1<br /> --gs-kernel-cl-up=&quot;up2x2tc&quot;<br /> --gs-optimize-30fps=1<br /> --ee-hook=0x277b88,FastForwardClock<br /> --ee-hook=0x279a18,FastForwardClock<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> <br /> -- Performace fix<br /> local emuObj = getEmuObject() <br /> local thresholdArea = 600<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , {alpha=0x80008068 , zmsk=1 } )<br /> <br /> <br /> -- Bug#9147<br /> -- workaround ... -2104(gp) value is something wrong. the value comes from CCamera::Process().<br /> -- unfortunately accurate math or any other flags don't help for this problem,<br /> -- even though it should be calculation error issue.<br /> -- for here, it's just given 0 radian for CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension()<br /> -- actually the cloud is a billboard, so it should have 0 degree in view-space.<br /> -- so given 0 degree must be OK.... but could cause some corruption (wrong perspective or something)<br /> eeInsnReplace(0x334d64, 0xc792f7c8, 0x44809000) -- lwc1 $f18,-2104(gp)<br /> #Performance fix.&lt;/pre&gt;<br /> <br /> SLUS_205.52<br /> &lt;br&gt;SLUS-20552_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Grand Theft Auto: Vice City - SLUS-20552 (USA) v3.00<br /> -- Author: Nicola Salmoria<br /> -- Date: November 4, 2015<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- need widescreen support<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> local USEWIDESCREEN_ADDRESS = 0x4ba7bc<br /> <br /> local H1 = -- start of main()<br /> function()<br /> eeObj.WriteMem8(USEWIDESCREEN_ADDRESS, 1) -- enable widescreen<br /> end<br /> <br /> local H2 = -- main game loop<br /> function()<br /> local isWidescreen = eeObj.ReadMem8(USEWIDESCREEN_ADDRESS)<br /> <br /> if isWidescreen == 0 then<br /> emuObj.SetDisplayAspectNormal()<br /> else<br /> emuObj.SetDisplayAspectWide()<br /> end<br /> end<br /> <br /> <br /> local hook1 = eeObj.AddHook(0x279384, 0xffbf0000, H1) -- &lt;main&gt;:<br /> local hook2 = eeObj.AddHook(0x277784, 0x00000000, H2) -- &lt;TheGame(void)&gt;:<br /> <br /> <br /> -- Fix for bug #9161. The 'flying cars' cheat causes crashes when attempting to<br /> -- fly an helicopter. We avoid that by disabling recognition of the cheat altogether.<br /> -- The SLPM version comes with the cheat disabled out of the box.<br /> eeInsnReplace(0x27db2c, 0x14400015, 0x10000015) -- bnez -&gt; b<br /> #Official widescreen support and removal of &quot;flying cars&quot; cheat due to game crash.&lt;/pre&gt;<br /> <br /> ====Jak and Daxter: The Precursor Legacy====<br /> SCES_503.61<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=20<br /> --gs-frontend-opt-mode=1<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --vif-ignore-invalid-cmd=1<br /> --vu1-mpg-cycles=144<br /> --cop2-no-clamping=1<br /> --host-audio-latency=0.040<br /> #performance and graphical fix.&lt;/pre&gt;<br /> <br /> SCES_503.61<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Jak EU<br /> apiRequest(2.2)<br /> <br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> local gsObj = getGsObject()<br /> local eeOverlay = eeObj.getOverlayObject()<br /> <br /> -- Disable internal field shift compensation, part of post-process removal feature.<br /> gsObj.SetDeinterlaceShift(0)<br /> <br /> -- Fix shadow <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> <br /> -- Reduce flush count <br /> emuObj.SetGsTitleFix( &quot;SetSelfRender&quot;, &quot;reserved&quot;, { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )<br /> <br /> -- Disable post-processing<br /> -- update: removed due to occasional regression (bug#10608). post-processing is now skipped in the EE via 'depth-cue'<br /> -- emuObj.SetGsTitleFix( &quot;ignoreSprite&quot;, &quot;reserved&quot;, { texType=1 , tw=5 , th=8, zmsk=1 , alpha=0x80000044 } )<br /> <br /> -- ------------------------- OVERLAY MANAGER --------------------------<br /> g_OnOverlayRegistered = function(filename, start, size)<br /> -- global function provided for adding per-overlay callback handlers.<br /> end<br /> <br /> local DH8 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> local linkblock = eeObj.ReadMem32(s0+0x5c)<br /> <br /> --print( string.format(&quot;--&gt; PRELOAD %08x %08x&quot;,s0, linkblock) )<br /> <br /> local linkblock_allocate_length = eeObj.ReadMem32 (linkblock + 0x00)<br /> local linkblock_allocate_version = eeObj.ReadMem32 (linkblock + 0x04)<br /> local linkblock_allocate_segment_count = eeObj.ReadMem32 (linkblock + 0x08)<br /> local linkblock_allocate_name = eeObj.ReadMemStr(linkblock + 0x0c)<br /> <br /> local linkblock_allocate_seg1_linkptr = eeObj.ReadMem32 (linkblock + 0x4C)<br /> local linkblock_allocate_seg1_dataptr = eeObj.ReadMem32 (linkblock + 0x50)<br /> local linkblock_allocate_seg1_size = eeObj.ReadMem32 (linkblock + 0x54)<br /> local linkblock_allocate_seg1_flags = eeObj.ReadMem32 (linkblock + 0x58)<br /> <br /> local linkblock_allocate_seg2_linkptr = eeObj.ReadMem32 (linkblock + 0x5C)<br /> local linkblock_allocate_seg2_dataptr = eeObj.ReadMem32 (linkblock + 0x60)<br /> local linkblock_allocate_seg2_size = eeObj.ReadMem32 (linkblock + 0x64)<br /> local linkblock_allocate_seg2_flags = eeObj.ReadMem32 (linkblock + 0x68)<br /> <br /> local linkblock_allocate_seg3_linkptr = eeObj.ReadMem32 (linkblock + 0x6C)<br /> local linkblock_allocate_seg3_dataptr = eeObj.ReadMem32 (linkblock + 0x70)<br /> local linkblock_allocate_seg3_size = eeObj.ReadMem32 (linkblock + 0x74)<br /> local linkblock_allocate_seg3_flags = eeObj.ReadMem32 (linkblock + 0x78)<br /> <br /> -- seg1 is equiv to main in Jak3<br /> -- seg3 is equiv to top in Jak3<br /> -- seg2 appears to be unused ... ? --jstine<br /> <br /> if emuObj.IsToolingVerbose() then<br /> print( string.format(&quot;--&gt; LOADED SEGMENT alloc_len %08x ver %08x segcount %08x name:\&quot;%s\&quot;&quot;, linkblock_allocate_length, linkblock_allocate_version, linkblock_allocate_segment_count, linkblock_allocate_name) )<br /> print( string.format(&quot; seg1linkptr %08x seg1dataptr %08x seg1size %08x seg1flags %08x&quot;, linkblock_allocate_seg1_linkptr, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, linkblock_allocate_seg1_flags) )<br /> print( string.format(&quot; seg2linkptr %08x seg2dataptr %08x seg2size %08x seg2flags %08x&quot;, linkblock_allocate_seg2_linkptr, linkblock_allocate_seg2_dataptr, linkblock_allocate_seg2_size, linkblock_allocate_seg2_flags) )<br /> print( string.format(&quot; seg3linkptr %08x seg3dataptr %08x seg3size %08x seg3flags %08x&quot;, linkblock_allocate_seg3_linkptr, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, linkblock_allocate_seg3_flags) )<br /> end<br /> <br /> if linkblock_allocate_seg1_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size, false) end<br /> if linkblock_allocate_seg3_size ~= 0 then eeOverlay.Register(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size, true) end<br /> <br /> if (g_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg1&quot;, linkblock_allocate_seg1_dataptr, linkblock_allocate_seg1_size) end<br /> if linkblock_allocate_seg1_size ~= 0 then g_OnOverlayRegistered(linkblock_allocate_name .. &quot;.seg3&quot;, linkblock_allocate_seg3_dataptr, linkblock_allocate_seg3_size) end<br /> end<br /> end<br /> <br /> assert(g_OnOverlayRegistered ~= nil)<br /> local prev_OnOverlayRegistered = g_OnOverlayRegistered<br /> <br /> g_OnOverlayRegistered = function(filename, start, size)<br /> <br /> if filename == &quot;depth-cue.seg1&quot; then<br /> -- Disable full-screen post process via depth-cue.<br /> -- This also removes half-pixel shift during interlacing.<br /> -- &lt;depth-cue.seg1+00039c&gt;<br /> -- 00701DFC:67BDFFF0 daddiu $sp,$sp,-0x10 (0xfffffff0) -&gt; 03E00008 jr $ra<br /> -- 00701E00:FFBE0008 sd $fp,8($sp) -&gt; 00000000 nop<br /> <br /> eeObj.WriteMem32(start + 0x39c, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x3a0, 0x00000000)<br /> eeObj.WriteMem32(start + 0x004, 0x03E00008)<br /> eeObj.WriteMem32(start + 0x008, 0x00000000)<br /> end<br /> <br /> if (prev_OnOverlayRegistered ~= nil) then<br /> -- Make sure to execute any previously registered OnOverlay handler<br /> prev_OnOverlayRegistered(filename, start, size)<br /> end<br /> end<br /> <br /> -- hooked in link_control::finish(void)&gt;:<br /> eeObj.AddHook(0x0010ACF8, 0x040C825, DH8) -- this is address US:0010abe0 JP:0010abd8 EU:0010ACF8<br /> #Graphical fix, removal of intensive post process effects.&lt;/pre&gt;<br /> <br /> SCES-50361<br /> &lt;br&gt;SCES-50361_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with an extensive graphical and control fix. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1KppgZpiK5bgESrpSRKo6kKPTysZ-NAC9/view<br /> <br /> #Shadows fix, control scheme changes, forced 60Hz/NTSC/Widescreen.&lt;/pre&gt;<br /> <br /> ====King of Fighters 98 Ultimate Match====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--force-frame-blend=1<br /> --gs-use-deferred-l2h=0<br /> #Graphical fix.&lt;/pre&gt;<br /> <br /> SLES_552.80<br /> &lt;br&gt;SLES-55280_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 800 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1-lArL1Yqe079Ni3G-ZtHr8hqNPUsjQJy/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====King of Fighters 2000====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=point<br /> --host-audio-latency=0.01<br /> --hid-pad=1<br /> #graphical fixes and support for further fightsticks.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- The King of Fighters 2000<br /> <br /> apiRequest(1.1)<br /> <br /> <br /> local emuObj = getEmuObject()<br /> --will fix sprite rendering artifact<br /> ndx = 28<br /> val = 0x86<br /> -- spriteCorrectionTab[ndx] = val<br /> emuObj.SetGsTitleFix( &quot;globalSet&quot;, &quot;reserved&quot;, { fixSpriteDivTab = val | ( ndx&lt;&lt;16) })<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SLUS_208.34<br /> &lt;br&gt;SLUS-20834_features.lua<br /> &lt;pre&gt;This is a substantial file. Over 700 lines with additional controller/fightstick support and various shader/bezel files. I'm sharing the file itself as a download link.<br /> <br /> https://drive.google.com/file/d/1FsPnuxgEa0ymnGdU6w2tdy-eamRN6l3e/view<br /> <br /> #More stick support, shaders, bezels, widescreen fix.&lt;/pre&gt;<br /> <br /> ====Manhunt====<br /> SLUS_208.27<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x4329e0,FastForwardClock,0x1600fff1<br /> --gs-uv-shift-pointsampling=1<br /> --ee-hook=0x1d1d60,AdvanceClock,0x27bdffb0,225<br /> --ee-hook=0x1d71e0,AdvanceClock,0x0c09a4d0,100<br /> #Fix crane issue, and probably fixing lightsourcing.&lt;/pre&gt;<br /> <br /> SLUS_208.27<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Manhunt [US]<br /> <br /> local gpr = require('ee-gpr-alias')<br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> local eeObj = getEEObject()<br /> <br /> -- Bug #9413<br /> -- Disable uprender on the draw command which samples the framebuffer (0x3200) using bilinear sampling (texMode=2)<br /> -- All lighting effects use TriFan prim type, so use that as well to filter against.<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {prim=5, texMode=2, tbp=0x320000} )<br /> <br /> -- Bug#9277<br /> -- Shorten the timeout period for some particular execution command(s).<br /> -- When entering the crane, some instruction is executed with a wait period of 0x7333.<br /> -- Shortening the wait period to 0x4000 it. Note that 0x5000 is enough to fix entering the<br /> -- crane once, but a more aggressive value was needed for subsequent entry into the crane.<br /> <br /> local FixBug9277 = function()<br /> local s0 = eeObj.GetGpr(gpr.s0)<br /> --local v0 = eeObj.GetGpr(gpr.v0)<br /> --print( string.format(&quot;-------- v0=0x%08x s0=0x%08x&quot;, v0, s0) )<br /> if s0 == 0x7333 then <br /> eeObj.SetGpr(gpr.s0, 0x5800)<br /> end<br /> end<br /> <br /> -- No longer seems necessary, when FastForwardClock is applied here instead (see _cli.conf)<br /> eeObj.AddHookJT(0x1d71f8, 0x10000036, FixBug9277)<br /> #Further bug fixes as well as fixing bloom/overglare from lightsources.&lt;/pre&gt;<br /> <br /> ====Max Payne====<br /> SLES_503.26<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> --vu1-no-clamping=1<br /> --vu0-no-clamping=1<br /> --fpu-no-clamping=1<br /> --force-pal-60hz=1<br /> --vu1-mpg-cycles=1000<br /> --safe-area-min=1.0<br /> --fpu-accurate-mul-fast=1<br /> --fpu-accurate-muldiv-range=0x2acce0,0x2acce0<br /> <br /> #Graphics clean-up&lt;/pre&gt;<br /> <br /> SLES_503.26<br /> &lt;br&gt; Features Lua<br /> &lt;pre&gt;-- Max Payne [US]<br /> <br /> -- Lua 5.3<br /> -- Title: Max Payne - SLES-50326 (Europe FIGS) v1.00<br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.2) -- request version 0.2 API for throttling control.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> <br /> <br /> local TH1A = -- start of main()<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local TH1B = -- init loading screen<br /> function()<br /> local mode = eeObj.GetGpr(gpr.a0)<br /> <br /> if mode ~= 4 then -- not sure what mode 4 is, but doesn't precede a real loading<br /> emuObj.ThrottleMax()<br /> end<br /> end<br /> <br /> local TH1C = -- advance progress bar<br /> function()<br /> local pct = eeObj.GetFpr(2)<br /> <br /> if pct &gt;= 1.0 then<br /> emuObj.ThrottleNorm()<br /> end<br /> end<br /> <br /> <br /> <br /> -- register hooks<br /> <br /> local registeredHooks = {}<br /> <br /> maxpayne_features_unregisterHooks = function() -- global function (called by trophy_data)<br /> for _, hook in pairs(registeredHooks) do<br /> eeObj.RemoveHook(hook)<br /> end<br /> <br /> registeredHooks = {}<br /> end<br /> <br /> maxpayne_features_registerHooks = function() -- global function (called by trophy_data)<br /> registeredHooks = {<br /> eeObj.AddHook(0x133dc8, 0x24030001, TH1A), -- &lt;main&gt;:<br /> eeObj.AddHook(0x15ed7c, 0x24030003, TH1B), -- &lt;MaxPayne_GameMode::initLoadingScreen(void)&gt;:<br /> eeObj.AddHook(0x133078, 0xc4a20000, TH1C), -- &lt;UpdateProgressBarKH(void)&gt;:<br /> }<br /> end&lt;/pre&gt;<br /> <br /> ====Metal Slug Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.010<br /> --gs-upscale=point<br /> --gs-uprender=none<br /> #fix for graphical glitches.&lt;/pre&gt;<br /> <br /> SLUS_215.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> -- Metal Slug Anthology PS2 - SLUS-21550 (USA)<br /> <br /> apiRequest(1.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for black screen booting an elf. This is a game bug.<br /> -- The v1.0 of the game suffered from an intermittent bug on the real PS2<br /> -- where sometimes it would hang on a black screen trying to launch a new elf.<br /> -- This is apparently due to a bad IOP state, which caused sceCdInit to hang.<br /> -- Later versions of the game (1.1, 1.2) attempted to fix this in different ways.<br /> -- On Olympus, v1.0 (USA) hangs always, while v1.2 (EUR/JPN) works always.<br /> -- The fix implemented here replaces a call to FlushCache() to loadImageAndReboot(),<br /> -- which is a function that reboots the IOP and resolves the hang.<br /> <br /> eeInsnReplace(0x189c24, 0x0c08f7f8, 0x0c061dd2) -- FlushCache() -&gt; loadImageAndReboot()<br /> eeInsnReplace(0x117804, 0x0c0c1e08, 0x0c045e20) -- FlushCache() -&gt; loadImageAndReboot()<br /> &lt;/pre&gt;<br /> <br /> ====The Operative: No One Lives Forever====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> <br /> #Fix for &quot;The Operative - No One Lives Forever&quot;<br /> <br /> For US version<br /> <br /> --fpu-accurate-addsub-range=0x104204,0x1042B8<br /> <br /> For EU version:<br /> <br /> --fpu-accurate-addsub-range=0x103F28,0x104074<br /> <br /> Use Jak v2emulator<br /> &lt;/pre&gt;<br /> <br /> ====Parappa the Rapper 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--host-audio-latency=0.01<br /> <br /> #fix for audio off sync.&lt;/pre&gt;<br /> <br /> SCUS_971.67<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;<br /> <br /> -- Parappa the Rapper 2 [SCUS-97167]<br /> <br /> <br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> require( &quot;ee-gpr-alias&quot; )<br /> require( &quot;ee-hwaddr&quot; )<br /> <br /> local eeObj = getEEObject()<br /> <br /> -- ================================================================================================<br /> -- Title issues racy combination of VIF1 and GIF transfers. It expects GIF to finish ahead of VU<br /> -- XGKICK (via VIF1), which is atypical among PS2 titles (XGKICK has HW priority over GIF, and so<br /> -- GIF can only finish ahead of XGKICK in certain extreme cases).<br /> --<br /> -- Fixed by delaying the specific VIF1 transfer (identified by MADR) for a long time to ensure GIF<br /> -- gains arbitration and finishes ahead of XGKICKs.<br /> --<br /> local fix01_dma_vif1 = <br /> function()<br /> local ee = eeObj<br /> local tgtaddr = ee.GetGpr(gpr.s0)<br /> <br /> -- print( string.format(&quot;success pt.1 : %x %x&quot;, vif1_hw.CHCR, tgtaddr ) )<br /> <br /> if tgtaddr == vif1_hw.CHCR then<br /> <br /> -- expected:<br /> -- # DIR==1 and MOD==1 (chain)<br /> -- # TADR==0x01C76AA0<br /> <br /> local chcr = ee.GetGPR(gpr.v0)<br /> <br /> if (chcr &amp; 0x05) == 0x05 then<br /> local tadr = ee.ReadMem32(vif1_hw.TADR);<br /> if tadr == 0x01C76AA0 then<br /> -- 0x6000 works fine, 0x6500 adds a little extra cushion.<br /> ee.SchedulerDelayEvent(&quot;vif1.dma&quot;, 0x6500)<br /> -- print( &quot;Parappa fix applied!&quot; )<br /> end<br /> end<br /> end<br /> end<br /> -- ================================================================================================<br /> <br /> eeObj.AddHook(0x0015A008, 0xAE020000, fix01_dma_vif1)<br /> <br /> -- ================================================================================================<br /> -- Our emulator has accuracy problems on so many places. In this title, we have problems on VU.<br /> -- To be accurate on VU is quite painful (we won't be able to get reasonable performance with it)<br /> -- So as workaround, we just disable bilinear textures on Render-To-Texture drawing.<br /> -- Bug#8122<br /> eeInsnReplace(0x118084, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118798, 0xde260008, 0x24060000) -- ld a2,8(s1)<br /> eeInsnReplace(0x118868, 0xde660008, 0x24060000) -- ld a2,8(s3)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> eeInsnReplace(0x119d18, 0xdc460008, 0x24060000) -- ld a2,8(v0)<br /> <br /> &lt;/pre&gt;<br /> ====Psychonauts====<br /> SLUS_211.20<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-jr-cache-policy=sameprog<br /> --vu1-jalr-cache-policy=sameprog<br /> --ee-hook=0x101fc0,FastForwardClock,0x3c0f0036<br /> --ee-hook=0x110390,FastForwardClock,0x8d8f0000<br /> --ee-hook=0x101c10,FastForwardClock,0x51cf0052<br /> --gs-vert-precision=8<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-render-tile-threshold=300000<br /> --vu-custom-min-max=0<br /> --vu1-di-bits=0<br /> --vu0-di-bits=0<br /> --vu1-opt-vf00=2<br /> --vu0-opt-vf00=2<br /> --vu1-injection=1<br /> --vu1-mpg-cycles=666<br /> --vu1-mpg-cycles=1166,$000<br /> --vu1-mpg-cycles=950,0xffffffff<br /> --vu0-mpg-cycles=300,0xfc<br /> --ee-hook=0x127630,AdvanceClock,0x27bdffd0,2100<br /> --cdvd-sector-read-cycles=4000<br /> --iop-cycle-scalar=1.6<br /> #Seems like substantial performance fixes&lt;/pre&gt;<br /> <br /> SLUS_211.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- psychonauts_slus21120<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> local emuObj = getEmuObject() <br /> <br /> apiRequest(1.0) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#9174 - <br /> emuObj.SetGsTitleFix( &quot;ignoreSubBuffCov&quot;, &quot;reserved&quot;, { } )<br /> <br /> -- Bug#9240 (Light maps uprender)<br /> -- Copy z-buffer for future use with light maps. psm = SCE_GS_PSMZ24 (49)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=9, th=9, psm=49, zmsk=1 } )<br /> <br /> -- Apply light maps texMode=2 (bilinear) psm= SCE_GS_PSMCT32 (0)<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, {tw=8, th=8, psm=0, ztst=1, texMode=2 } )<br /> <br /> -- Bug#9176<br /> --<br /> -- This bug seems GPUGS interpolation problem.<br /> -- The game draws clouds as undiscovered area on the map, but<br /> -- Z value is unstable --- sometimes 0x320, sometimes 0x321.<br /> -- On drawing 'Highlight' object (which is missing one), it uses z=0x320 with<br /> -- ZTST=GEQUAL. Therefore if the cloud renders with z=0x321, this highlighted object<br /> -- doesn't appear. But it's OK on the real PS2 because of no-drawing right edge,<br /> -- z=0x321 won't be available on the packet (interpolation differences between<br /> -- the real PS2 and our gs)<br /> -- it gives some values (50.0f) to get +1 on Z value for the highlighted object.<br /> -- this value will be used later to create the packet in _sprite_ps2_push_data(ESprite*).<br /> --<br /> -- This old one causes a problem on some other scenes.<br /> -- local eeObj = getEEObject()<br /> -- eeObj.AddHook(0x1b276c, 0xe4400024, function() <br /> -- local v0 = eeObj.GetGpr(gpr.v0)<br /> -- local z = eeObj.ReadMemFloat(v0+32)<br /> -- eeObj.WriteMemFloat(v0+32, z+50.0)<br /> -- end)<br /> -- New one by Ernesto :<br /> -- The idea is to apply the offset only on the marker.<br /> local eeObj = getEEObject()<br /> local adjustMapZHook = function() -- EMapRenderWindow::drawHighlightSprites<br /> eeObj.SetFpr(14, eeObj.GetFpr(14) + 50.0)<br /> end<br /> eeObj.AddHook(0x25d654, 0x8de40068, adjustMapZHook) -- \/<br /> eeObj.AddHook(0x25d714, 0xe7b500cc, adjustMapZHook) -- /\<br /> eeObj.AddHook(0x25d7d0, 0xe7b500cc, adjustMapZHook) -- &lt;<br /> eeObj.AddHook(0x25d894, 0x46000386, adjustMapZHook) -- &gt;<br /> <br /> <br /> -- bug#9423 - menus render 20+ times over again, causing very low fps.<br /> -- The whole game in general has no concept of pacing and will re-draw frames multiple times<br /> -- between vsync refreshes. Hook placed on GameApp::EndFrame() measures time between frames and<br /> -- if it's too short, the EE clock is advanced significantly to compensate.<br /> <br /> local last_time = 0<br /> local last_diff = 0<br /> local advanceClockForAny = function()<br /> local thistime = eeObj.GetClock()<br /> local diff = thistime - last_time<br /> local adv = 0<br /> <br /> if diff &lt;= 0 then<br /> -- sanity check, mostly for snapshot restore.<br /> last_diff = diff<br /> last_time = thistime<br /> return<br /> end<br /> <br /> -- EE @ 30fps == roughly 10 million cycles<br /> -- bug#9555 - We need to make a reasonable tally of VIF cycles across game display swaps.<br /> -- Use a combination heuristic of EE and VIF1 cycles to gues at whether the title should<br /> -- lock to 45fps, 30fps, or something worse.<br /> <br /> local fastminEE = 1600000 -- less than this it's safe to run &gt; 30 fps<br /> local fastminVIF_30 = 2200000 -- VU1 total that merits 30hz throttle<br /> local fastminVIF_45 = 1700000 -- VU1 total that merit 45hz throttle.<br /> local baremin_wo_vif= 6100000 -- EE values below this get promoted to this value (~50hz)<br /> local forced30hz = 9330000<br /> local forced45hz = 7820000<br /> <br /> local vif1_cycles = eeObj.GetVif1Cycles()<br /> if (vif1_cycles &gt; forced30hz) then<br /> vif1_cycles = forced30hz<br /> end<br /> <br /> local diff_vif = diff + vif1_cycles<br /> adv = adv + vif1_cycles<br /> <br /> -- Lock anything that seems like &quot;Real Work&quot; to either 30 or 45 FPS:<br /> <br /> if diff_vif &lt; fastminEE then<br /> adv = adv + (fastminEE*2 - diff_vif)<br /> elseif vif1_cycles &gt; fastminVIF_30 and (diff+(fastminVIF_30)//2) &lt; forced30hz then<br /> adv = adv + (forced30hz - diff - (fastminVIF_30)//2)<br /> elseif vif1_cycles &gt; fastminVIF_45 and (diff+(fastminVIF_45)//2) &lt; forced45hz then<br /> adv = adv + (forced45hz - diff - (fastminVIF_45)//2)<br /> elseif diff &lt; baremin_wo_vif then<br /> adv = adv + (baremin_wo_vif - diff)<br /> end<br /> <br /> -- print (string.format(&quot;DELTA: %d ADV: %d VIF1: %d&quot;, diff, adv, vif1_cycles))<br /> <br /> if adv ~= 0 then<br /> eeObj.AdvanceClock(adv)<br /> end<br /> <br /> -- Ensure next frame's delta time takes into consideration this frame's advancement.<br /> -- Otherwise each fraem delta time would get progressively worse.<br /> <br /> thistime = thistime + adv<br /> last_time = thistime<br /> last_diff = diff<br /> end<br /> <br /> local advanceClockForGame = function() advanceClockForAny(5300000, 2700000) end<br /> eeObj.AddHookJT(0x207cf8, 0x27bdfff0, advanceClockForGame) -- &lt;GameApp::EndFrame()&gt;:<br /> #Performance and optimisations&lt;/pre&gt;<br /> <br /> ====Red Faction====<br /> SLUS_200.73<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-deferred-l2h=1<br /> --l2h-2d-params=0x0000000800000001,0x000000003a0a2300,512,2<br /> --vu1=jit-sync<br /> --ee-cycle-scalar=1.02<br /> --ee-hook=0x00213370,FastForwardClock,0x8F8293A8<br /> --ee-hook=0x24ce30,AdvanceClock,0x8c620000,20000<br /> --ee-hook=0x272b44,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x272bc4,FastForwardClock,0x3c0201ee<br /> --ee-hook=0x21b354,AdvanceClock,0x3c031000,0x1240<br /> #performance fixes.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Red Faction [US]<br /> <br /> apiRequest(1.6)<br /> local gpr = require(&quot;ee-gpr-alias&quot;)<br /> <br /> -- title uses memcpy() to write to VU1 memory, so some instances will be hotfixed to<br /> -- use slowpath_memcpy() at runtime.<br /> <br /> eeNativeFunction(0x259820, 0x0080402d, 'memcpy')<br /> eeNativeFunction(0x2599d8, 0x2cc20008, 'memset')<br /> <br /> eeNativeFunction(0x253870, 0x27bdffd0, 'ieee754_acosf')<br /> eeNativeFunction(0x254620, 0x44026000, 'ieee754_sqrtf')<br /> eeNativeFunction(0x255a50, 0x44026000, 'cosf')<br /> eeNativeFunction(0x255df0, 0x44026000, 'sinf')<br /> eeNativeFunction(0x256318, 0x27bdffa0, 'acosf')<br /> <br /> eeInsnReplace(0x24d7e0, 0x24030064, 0x03e00008) -- &lt;FlushCache&gt;<br /> eeInsnReplace(0x24d7e4, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d7e0, 0x03e00008,'AdvanceClock',0xa00)<br /> eeInsnReplace(0x24d810, 0x2403ff98, 0x03e00008) -- &lt;iFlushCache&gt;<br /> eeInsnReplace(0x24d814, 0x0000000c, 0x00000000)<br /> eeNativeHook (0x24d810, 0x03e00008,'AdvanceClock',0xa00)<br /> <br /> eeInsnReplace(0x24de20, 0x27bdffe0, 0x03e00008) -- &lt;SyncDCache&gt;<br /> eeInsnReplace(0x24de24, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24de20, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24de98, 0x3c02ffff, 0x03e00008) -- &lt;iSyncDCache&gt;<br /> eeInsnReplace(0x24de9c, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24de98, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24df58, 0x27bdffe0, 0x03e00008) -- &lt;InvalidDCache&gt;<br /> eeInsnReplace(0x24df5c, 0x0080302d, 0x00000000)<br /> eeNativeHook (0x24df58, 0x03e00008,'AdvanceClock',0x600)<br /> eeInsnReplace(0x24dfd0, 0x3c02ffff, 0x03e00008) -- &lt;iInvalidDCache&gt;<br /> eeInsnReplace(0x24dfd4, 0x3442ffc0, 0x00000000)<br /> eeNativeHook (0x24dfd0, 0x03e00008,'AdvanceClock',0x600)<br /> <br /> local emuObj = getEmuObject()<br /> local eeObj = getEEObject()<br /> <br /> -- bug#10159 workaround<br /> -- slowdown the jeep speed....<br /> <br /> local jeepObj = 0<br /> eeObj.AddHook(0x1376f0, 0xc6600174, function()<br /> jeepObj = eeObj.GetGpr(gpr.s1)<br /> end)<br /> eeObj.AddHook(0x137a48, 0xc7ac00bc, function()<br /> local s1 = eeObj.GetGpr(gpr.s1)<br /> if s1 == jeepObj then<br /> eeObj.SetFpr(12, eeObj.GetFpr(12)*0.90)<br /> end<br /> end)<br /> <br /> -- bug#10249 workaround<br /> -- forcibly calculate the jeep's suspension.<br /> eeObj.AddHook(0x19ee08, 0x8ec2120c, function()<br /> if jeepObj - 624 == eeObj.GetGpr(gpr.s6) then<br /> eeObj.SetGpr(gpr.v0, 1)<br /> end<br /> end)<br /> <br /> -- debug code for jeep movment target.<br /> -- local px = 0.0<br /> -- local pz = 0.0<br /> -- eeObj.AddHook(0x1375bc, 0x26650174, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == jeepObj then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- px = eeObj.ReadMemFloat(s3 + 372)<br /> -- pz = eeObj.ReadMemFloat(s3 + 380)<br /> -- end<br /> -- end)<br /> -- eeObj.AddHook(0x1375c8, 0xa2620170, function()<br /> -- local s1 = eeObj.GetGpr(gpr.s1)<br /> -- if s1 == 0x19a7a00 then<br /> -- local s3 = eeObj.GetGpr(gpr.s3)<br /> -- local x = eeObj.ReadMemFloat(s3 + 372)<br /> -- local z = eeObj.ReadMemFloat(s3 + 380)<br /> -- if px ~= x or pz ~= z then<br /> -- print(string.format(&quot;[%f %f] =&gt; [%f %f] v0=%d&quot;,<br /> -- px, pz, x, z, eeObj.GetGpr(gpr.v0)))<br /> -- end<br /> -- end<br /> -- end)<br /> #physics calculations and performance fix.&lt;/pre&gt;<br /> <br /> SLUS_200.73<br /> &lt;br&gt;SLUS-20073_features.lua<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Red Faction PS2 - SLUS-20073 (USA)<br /> -- Author: Ernesto Corvi, Adam McInnis<br /> <br /> -- Changelog:<br /> <br /> apiRequest(1.1) -- request version 1.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- main<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- main<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x165590, 0x27bdffb0, L1) -- game_load_level<br /> local load2 = eeObj.AddHook(0x16578C, 0x7bb10010, L2) -- game_load_level<br /> <br /> -- Widescreen support --<br /> eeInsnReplace(0x2071c4, 0x00000000, 0x3c013f40) -- gr_setup_3d<br /> eeInsnReplace(0x2071d0, 0x00000000, 0x4481f000) -- gr_setup_3d<br /> eeInsnReplace(0x2072e0, 0x00000000, 0x461ea502) -- gr_setup_3d<br /> eeInsnReplace(0x2072e8, 0x00000000, 0x461ead43) -- gr_setup_3d<br /> eeInsnReplace(0x23a34c, 0x44826000, 0x461e0303) -- shadow_ngps_render_and_copy<br /> eeInsnReplace(0x23a444, 0x3c024334, 0x3c024309) -- shadow_ngps_render_and_copy<br /> emuObj.SetDisplayAspectWide()<br /> #Official widescreen support.&lt;/pre&gt;<br /> <br /> ====Resident Evil Code: Veronica X====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-jit-pagefault-threshold=30<br /> #crash fix.&lt;/pre&gt;<br /> <br /> ALL<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- VeronicaX<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug# 9976<br /> local emuObj = getEmuObject() <br /> emuObj.SetGsTitleFix( &quot;clipScissors&quot;, &quot;reserved&quot;, {alpha = 0 , frameW = 4 , psm = 0} )<br /> #graphical fix.&lt;/pre&gt;<br /> <br /> ====Rogue Galaxy====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #visual fixes and performance optimisation.&lt;/pre&gt;<br /> <br /> SCUS_974_90<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Bug#8404 WORKAROUND<br /> -- See https://pss.usrd.scea.com/bugzilla/show_bug.cgi?id=8404<br /> eeInsnReplace(0x124898, 0x3442ffff, 0x3442fffe) -- ori v0,v0,0xffff<br /> #unsure what this fixes.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown Anthology====<br /> SLUS_216.29<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #fix for substantial slowdown during combat.&lt;/pre&gt;<br /> <br /> ====Star Wars Bounty Hunter====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;OptRightTri&quot;<br /> --gs-vert-precision=8&lt;/pre&gt;<br /> <br /> ====Star Wars: Jedi Starfighter====<br /> SLES_503.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-check-trans-rejection68=1<br /> --gs-dirty-page-policy=1&lt;/pre&gt;<br /> SLES_503.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;-- Star Wars: Jedi Starfighter [SLES-50371] [EU]<br /> <br /> require(&quot;ee-gpr-alias&quot;)<br /> require(&quot;pad-and-key&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> -- Bug#9013 - title calls PS2::Exit() at the end of a bonus stage.<br /> eeInsnReplace(0x323398, 0x0c116bb4, 0x00000000) -- jal Stop__12CTaskManagerFv<br /> <br /> -- Bug#8905<br /> -- The game sets a little bit big DH values for GS Display Register.<br /> -- mimic overscan cropping (generic crop happens in GsScanoutArea::Populate)<br /> local dump_display = function()<br /> local a5 = eeObj.GetGpr(gpr.t1)<br /> local ds1_h = eeObj.ReadMem32(a5+892)<br /> local ds2_h = eeObj.ReadMem32(a5+908)<br /> local dh1 = (ds1_h&gt;&gt;(44-32))&amp;0x7ff<br /> local dh2 = (ds2_h&gt;&gt;(44-32))&amp;0x7ff<br /> if dh1 &gt;= 574 then<br /> dh1 = 558 -- 574-16<br /> ds1_h = (ds1_h &amp; 0xfff) | (dh1 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+892, ds1_h)<br /> end<br /> if dh2 &gt;= 575 then<br /> dh2 = 559 -- 575-16<br /> ds2_h = (ds2_h &amp; 0xfff) | (dh2 &lt;&lt; (44-32))<br /> eeObj.WriteMem32(a5+908, ds2_h)<br /> end<br /> end<br /> eeObj.AddHook(0x4fc33c, 0x02084821, dump_display)<br /> eeObj.AddHook(0x4fc068, 0x02084821, dump_display)<br /> <br /> -- Bug#8944<br /> -- The game doesn't clear the framebuffer on movie-startup and movie-display.<br /> -- call clear functions at the appropriate points by using Replacement.<br /> local Replace_CVideoDecoder_Draw = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- swap<br /> 0x0c13f044, -- jal 0x4fc110<br /> 0x00000000, -- nop<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x427fe0, 0x0c13f044,0x0c000000 | (Replace_CVideoDecoder_Draw&gt;&gt;2))<br /> local Replace_CPS2MpegPlayer_Open = InsnOverlay( {<br /> 0x27bdfff0, -- addiu sp,sp,-16<br /> 0xffbf0000, -- sd ra,0(sp)<br /> <br /> -- clear color<br /> 0x44806000, -- mtc1 zero,$f12<br /> 0x46006346, -- mov.s $f13,$f12<br /> 0x0c13f1d8, -- jal 0x4fc760<br /> 0x46006386, -- mov.s $f14,$f12<br /> -- clear<br /> 0x0c13f228, -- jal 0x4fc8a0<br /> 0x24044000, -- li a0,16384<br /> -- swap<br /> 0x0c13f044, -- jal 4fc110 &lt;glSwapBuffersPSX2&gt; <br /> 0x00000000, -- nop<br /> <br /> -- restore some registers<br /> 0x0220302d, -- move a2,s1<br /> 0x0200382d, -- move a3,s0<br /> <br /> 0xdfbf0000, -- ld ra,0(sp)<br /> 0x03e00008, -- jr ra<br /> 0x27bd0010, -- addiu sp,sp,16<br /> })<br /> eeInsnReplace(0x423c3c, 0x0220302d, 0x0c000000 | (Replace_CPS2MpegPlayer_Open&gt;&gt;2))<br /> <br /> --<br /> -- Bug#8981 / Bug#9006<br /> --<br /> local std_string_c_str = function(ptr)<br /> return eeObj.ReadMemStr(eeObj.ReadMem32(eeObj.ReadMem32(ptr) + 12))<br /> end<br /> local player_obj_found_flag = 0<br /> local player_obj = 0<br /> eeObj.AddHook(0x464530, 0x27bdff90, function()<br /> if std_string_c_str(eeObj.GetGpr(gpr.a1)) == &quot;_player&quot; then<br /> --print(string.format(&quot;LookupGameObject %s&quot;, std_string_c_str(eeObj.GetGpr(gpr.a1))))<br /> player_obj_found_flag = 1<br /> end<br /> end)<br /> eeObj.AddHook(0x464720, 0x7bb10010, function()<br /> if player_obj_found_flag == 1 then<br /> player_obj = eeObj.ReadMem32(eeObj.GetGpr(gpr.v0)+92)<br /> --print(string.format(&quot; obj = %x&quot;, eeObj.GetGpr(gpr.v0)))<br /> --print(string.format(&quot; 92(v0) = %x&quot;, player_obj))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+116), eeObj.ReadMemFloat(player_obj+120), eeObj.ReadMemFloat(player_obj+124)))<br /> --print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(player_obj+52), eeObj.ReadMemFloat(player_obj+56), eeObj.ReadMemFloat(player_obj+60)))<br /> player_obj_found_flag = 0<br /> end<br /> end)<br /> <br /> eeObj.AddHook(0x147444, 0x0040282d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;ExplosionFire&quot;)<br /> -- or string.match(str, &quot;ExplosionSpark&quot;)<br /> then<br /> local explosion_object = eeObj.ReadMem32(eeObj.GetGpr(gpr.s0)+92)<br /> local eo_x = eeObj.ReadMemFloat(explosion_object+116)<br /> local eo_y = eeObj.ReadMemFloat(explosion_object+120)<br /> local eo_z = eeObj.ReadMemFloat(explosion_object+124)<br /> -- print(string.format(&quot;exp obj : %x&quot;, explosion_object))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eo_x, eo_y, eo_z))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, eeObj.ReadMemFloat(explosion_object+52), eeObj.ReadMemFloat(explosion_object+56), eeObj.ReadMemFloat(explosion_object+60)))<br /> <br /> local pl_x = eeObj.ReadMemFloat(player_obj+116)<br /> local pl_y = eeObj.ReadMemFloat(player_obj+120)<br /> local pl_z = eeObj.ReadMemFloat(player_obj+124)<br /> -- print(string.format(&quot;pl obj : %x&quot;, player_obj))<br /> -- print(string.format(&quot; [%f, %f, %f]&quot;, pl_x, pl_y, pl_z));<br /> <br /> local len = (eo_x-pl_x)*(eo_x-pl_x) + (eo_y-pl_y)*(eo_y-pl_y) + (eo_z-pl_z)*(eo_z-pl_z)<br /> -- print(string.format(&quot;lengh^2 = %f&quot;, len))<br /> <br /> -- print(string.format(&quot;str : %s&quot;, std_string_c_str(strptr)))<br /> <br /> if len &lt; 960000.0 then<br /> -- print(&quot; REMOVED&quot;)<br /> eeObj.SetPc(0x1474b0)<br /> end<br /> end<br /> end)<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x8c700008, -- lw $s0, 8($v1)<br /> 0x8e040000, -- lw $a0, 0($s0)<br /> 0x8c840000, -- lw $a0, 0($a0)<br /> 0x3c05006c, -- lui $a1,0x6c<br /> 0x34a5ce28, -- ori $a1,$a1,0xce28<br /> 0x14850002, -- bne $a0, $a1, &lt;ret&gt;<br /> 0x00000000, -- nop<br /> 0xac600004, -- sw zero, 4($v1)<br /> 0x03e00008, -- ret: jr $ra<br /> 0x8c630004, -- lw $v1, 4($v1) <br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace( 0x267f84, 0x8c700008, call_insn ) -- lw $s0, 8($v1) -&gt; jal overlay_addr<br /> eeInsnReplace( 0x267f88, 0x8c630004, 0x00000000 ) -- lw $v1, 4($v1) -&gt; nop<br /> <br /> -- The game has a bug when you replay the last campaign mission in coop mode (&quot;The Jedi Master&quot;).<br /> -- Upon completing the mission successfully, the game asks to &quot;Continue&quot; or &quot;Quit&quot;.<br /> -- Selecting &quot;Continue&quot; causes the game to hang, as there's nothing to continue to (it's the last mission)<br /> -- The following patch fixes this problem by changing to prompt to &quot;Retry&quot; or &quot;Quit&quot;, as it behaves in 1p mode<br /> <br /> eeObj.AddHook(0x39debc, 0x0220202d, function()<br /> local strptr = eeObj.GetGpr(gpr.v0)<br /> local str = std_string_c_str(strptr)<br /> if string.match(str, &quot;m16_fleet&quot;) then<br /> eeObj.SetGpr(gpr.s0, 1)<br /> end<br /> end)<br /> <br /> -- fix for a node corruption.<br /> -- here's what happens (from Ernesto)<br /> --<br /> -- Well, I was finally able to track down the issue. It's actually difficult to explain and the actual trigger is still unknown to me, as it seems to be timing related somehow.<br /> -- But, I found a way to reliably detect it and work around it. Basically, when the bug happens, CSGNode::AddChild will try to add a child node that's already a children of a different root node.<br /> -- That causes all sorts of havok and it's what ends up causing the node child list to eventually be deallocated and the render to crash.<br /> eeObj.AddHook(0x266A70, 0x27bdffc0, function()<br /> -- local obj = eeObj.GetGpr(gpr.a0)<br /> local node = eeObj.GetGpr(gpr.a1)<br /> local parent = eeObj.ReadMem32(node+0x10)<br /> -- local caller = eeObj.GetGpr(gpr.ra)<br /> <br /> if parent ~= 0 then<br /> -- print(string.format(&quot;Node %08x already has a parent (%08x, caller: %08x)&quot;, node, parent, caller))<br /> eeObj.SetPC(0x266B80)<br /> end<br /> end)<br /> &lt;/pre&gt;<br /> <br /> ====Star Wars Racer Revenge====<br /> <br /> SLES_503.66<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x0025b3b0,FastForwardClock<br /> --ee-hook=0x0025b188,FastForwardClock<br /> --ee-hook=0x00243274,FastForwardClock<br /> --gs-vert-precision=8<br /> --idec-cycles-per-qwc=768<br /> --host-audio-latency=0.60<br /> --fpu-no-clamping=1<br /> --cop2-no-clamping=1<br /> --vu1-di-bits=0<br /> --gs-override-small-tri-area=1<br /> --assert-path1-ad=0<br /> --ee-ignore-segfault=Read&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> apiRequest(0.4)<br /> <br /> -- Star Wars: Racer Revenge (SLES-50366) [US]<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject() <br /> <br /> eeInsnReplace(0x13d7f0, 0x1000ffff, 0x0804f45d) -- retry FREAD() for fix #9025,<br /> <br /> -- Track#<br /> -- The Grand Reefs : 6 <br /> -- Ruins of Carnuss Gorgull : 9<br /> eeObj.AddHook(0x187330, 0x3c010001, function()<br /> local track = eeObj.GetGpr(gpr.a1)<br /> print(string.format(&quot;Track : %d&quot;, track))<br /> if track == 6 or track == 9 then<br /> eeObj.Vu1MpgCycles(1000) -- makes it be 30fps.<br /> else<br /> eeObj.Vu1MpgCycles(100) -- default value.<br /> end<br /> end)<br /> <br /> -- Small triangle rejection. Works in conjunction with CLI setting gs-override-small-tri-area=1<br /> -- keep default area for texture 256x256 ( no blend) (Anakin face) <br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 500,{twIsNot=8, thIsNot=8 } )<br /> <br /> -- Set triangle rejection area= 1000 when alpha blend is not 0 ( i.e blend is On)<br /> emuObj.SetGsTitleFix( &quot;setRejectionArea&quot;, 1000, {alphaIsNot=0 } )&lt;/pre&gt;<br /> SLES_503.66<br /> &lt;br&gt;Lua Features<br /> &lt;br&gt;Seems to also include some game fix<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: Star Wars Racer Revenge PS2 - SLES-50366 (EUR)<br /> -- Author: Ernesto Corvi<br /> <br /> -- Changelog:<br /> <br /> apiRequest(0.2) -- request version 0.2 API. Calling apiRequest() is mandatory.<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> local L1 = -- PodUILoadingPage::PodUILoadingPage<br /> function()<br /> emuObj.ThrottleMax()<br /> end<br /> <br /> local L2 = -- PodUILoadingPage::~PodUILoadingPage<br /> function()<br /> emuObj.ThrottleNorm()<br /> end<br /> <br /> local load1 = eeObj.AddHook(0x1caa30, 0x27bdffe0, L1) -- PodUILoadingPage::PodUILoadingPage<br /> local load2 = eeObj.AddHook(0x1caa70, 0x27bdffd0, L2) -- PodUILoadingPage::~PodUILoadingPage<br /> <br /> <br /> <br /> -- BUG 9244 - This title exhibits memory allocation problems as described on the<br /> -- PS2 tech note titled &quot;malloc() Issues&quot;. Overlay the FullAllocAndFree() and hook it to main()<br /> <br /> local overlay_addr = InsnOverlay( {<br /> 0x27bdfff0, -- addiu $sp, -0x10<br /> 0x7fbf0000, -- sq $ra, 0($sp)<br /> 0x0c0c1710, -- jal malloc<br /> 0x3c0401e0, -- lui $a0, 0x01e0<br /> 0x0c0c171a, -- jal free<br /> 0x70402628, -- paddub $a0, $v0, 0<br /> 0x7bbf0000, -- lq $ra, 0($sp)<br /> 0x03e00008, -- jr $ra<br /> 0x27bd0010 -- addiu $sp, 0x10<br /> } )<br /> local call_insn = (overlay_addr &gt;&gt; 2) | 0x0c000000<br /> eeInsnReplace(0x23a020, 0x0c0be0a2, call_insn) -- jal scePrintf<br /> <br /> -- BUG 9244 - move stack down to 0x01f80000 to free up an extra 512KB<br /> eeInsnReplace(0x100038, 0x3c0501f0, 0x3c0501f8)<br /> &lt;/pre&gt;<br /> <br /> <br /> ====Twisted Metal Black====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--mtap1=always<br /> --gs-use-deferred-l2h=0<br /> --l2h-2d-params=0x0000000400000004,0x00000000300a0000,240<br /> --vu1-di-bits=0<br /> --vu1-opt-vf00=2<br /> #performance fix.&lt;/pre&gt;<br /> <br /> SCUS_971.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- This game uses an old kernel which has a bug on _TerminateThread.<br /> -- It is necessary to check the target thread is already in readyqueue or not.<br /> <br /> iopObj = getIOPObject()<br /> iopInsnReplace(0x0000C5C0, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in TerminateThread)<br /> iopInsnReplace(0x0000C6EC, 0x0C004430, 0) -- jal 0x000110C0 // unlink_element (in iTerminateThread)<br /> local fix_TerminateThread = function()<br /> local TCB = iopObj.GetGpr(gpr.s0)<br /> local TCB_status = iopObj.ReadMem8(TCB + 0xc)<br /> local TCB_h_l = TCB<br /> if TCB_status == 0x2 then<br /> -- the target thread is on ready.<br /> local TCB_h_l_prev = iopObj.ReadMem32(TCB_h_l + 0)<br /> local TCB_h_l_next = iopObj.ReadMem32(TCB_h_l + 4)<br /> if TCB_h_l_prev == TCB_h_l_next then -- last_one_element(&amp;tcb-&gt;h.l)<br /> -- we need to maintain threadManCB.readymap.<br /> -- print(&quot;WE NEED TO MAINTAIN threadManCB.readymap!&quot;)<br /> local s0 = iopObj.ReadMem16(TCB + 0xe) -- prio<br /> local s1 = TCB<br /> local a0 = s0 &gt;&gt; 5<br /> a0 = a0 &lt;&lt; 2<br /> local v1 = s0 &amp; 0x1f<br /> local v0 = 1 &lt;&lt; v1<br /> v1 = 0x10000 + a0<br /> v1 = iopObj.ReadMem32(v1 + 0x1a08)<br /> v0 = ~v0<br /> v1 = v1 &amp; v0<br /> local at = 0x10000+a0<br /> iopObj.WriteMem32(at+0x1a08, v1)<br /> <br /> -- 0000B798 00102142 srl a0,s0,5<br /> -- 0000B79C 00042080 sll a0,a0,2<br /> -- 0000B7A0 3203001F andi v1,s0,0x1F<br /> -- 0000B7A4 24020001 li v0,0x1<br /> -- 0000B7A8 00621004 sllv v0,v0,v1<br /> -- 0000B7AC 3C030001 lui v1,0x1<br /> -- 0000B7B0 00641821 addu v1,v1,a0<br /> -- 0000B7B4 8C631A08 lw v1,0x1A08(v1)<br /> -- 0000B7B8 00021027 nor v0,zero,v0<br /> -- 0000B7BC 00621824 and v1,v1,v0<br /> -- 0000B7C0 3C010001 lui at,0x1<br /> -- 0000B7C4 00240821 addu at,at,a0<br /> -- 0000B7C8 AC231A08 sw v1,0x1A08(at)<br /> <br /> end<br /> end<br /> -- do unlink_element<br /> local v1 = iopObj.ReadMem32(TCB_h_l+0) -- element-&gt;prev<br /> local v0 = iopObj.ReadMem32(TCB_h_l+4) -- element-&gt;next<br /> iopObj.WriteMem32(v1 + 4, v0) -- element-&gt;prev-&gt;next = element-&gt;next<br /> iopObj.WriteMem32(v0 + 0, v1)<br /> end<br /> iopObj.AddHook(0x0000C5C4, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> iopObj.AddHook(0x0000C6F0, 0x02002021, fix_TerminateThread) -- move a0,s0<br /> <br /> -- _waitIpuIdle64 spin perf down problem. Bug#8289<br /> -- NOTE: new libarary also loops just 500dec around. 0x1389 is too much.<br /> eeInsnReplace(0x0020CF80, 0x28421389, 0x28420200) -- slti v0,v0,0x1389<br /> #Performance and stall fixes.&lt;/pre&gt;<br /> <br /> <br /> ====The Warriors====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-injection=1<br /> --vu1-mpg-cycles=2300<br /> --vu1-mpg-cycles=2600,-1<br /> --vu1-clamp-range=0x028,0x060<br /> --ee-hook=0x48c660,FastForwardClock,0x1620ffe3<br /> --force-pal-60hz=1&lt;/pre&gt;<br /> <br /> ?<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;-- Lua 5.3<br /> -- Title: The Warriors (USA) SLUS-21215 ( 1.04 NTSC )<br /> -- The Warriors (Europe) SLES-53443 ( 1.01 PAL )<br /> -- Features version: 1.00<br /> -- Author: David Haywood<br /> -- Date: November 15th 2015<br /> <br /> <br /> <br /> require( &quot;ee-gpr-alias&quot; ) -- you can access EE GPR by alias (gpr.a0 / gpr[&quot;a0&quot;])<br /> <br /> apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- request version 0.7 API. Calling apiRequest() is mandatory. (0.7 is needed for Widescreen switching)<br /> <br /> -- obtain necessary objects.<br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> local trophyObj = getTrophyObject()<br /> local dmaObj = getDmaObject()<br /> <br /> -- load configuration if exist<br /> local SaveData = emuObj.LoadConfig(0)<br /> <br /> <br /> local firstCall = 0<br /> <br /> <br /> --[[<br /> <br /> this is the 'setWideScreen' function of the gfx devices<br /> from studying the code it seems that the content of 'a1' that<br /> gets passed in determines if the requested mode is widescreen.<br /> <br /> DevRWGraphicsDevice::setWideScreenMode(void)<br /> 00194E28 27BDFFD0 addiu sp,sp,-0x30<br /> 00194E2C 7FB00010 sq s0,0x0010(sp)<br /> 00194E30 E7B50028 swc1 f21,0x0028(sp)<br /> 00194E34 0080802D dmove s0,a0<br /> 00194E38 FFBF0000 sd ra,0x0000(sp)<br /> 00194E3C E7B40020 swc1 f20,0x0020(sp)<br /> 00194E40 4480A800 mtc1 zero,f21<br /> 00194E44 C600044C lwc1 f0,0x044C(s0)<br /> 00194E48 46150032 c.eq.s f0,f21<br /> 00194E4C 00000000 nop<br /> 00194E50 45010053 bc1t 0x00194FA0<br /> 00194E54 AE05045C sw a1,0x045C(s0)<br /> --]]<br /> <br /> local WidesrceenFunction = function() <br /> local a1 = eeObj.GetGPR(gpr.a1)<br /> <br /> a1 = a1 &amp; 1<br /> <br /> -- force to widescreen on boot, ensures new profiles get created in widescreen mode by default etc.<br /> -- has some unwanted side-effects tho, so don't do it<br /> if firstCall == 1 then<br /> a1 = 1<br /> eeObj.SetGPR(gpr.a1, a1)<br /> firstCall = 0<br /> end<br /> <br /> <br /> <br /> if a1 == 1 then<br /> print( string.format(&quot;********* Request WIDE SCREEN mode **************&quot; ) )<br /> emuObj.SetDisplayAspectWide() <br /> else<br /> print( string.format(&quot;********* Request 4:3 mode **************&quot; ) )<br /> emuObj.SetDisplayAspectNormal() <br /> end<br /> <br /> end<br /> <br /> <br /> <br /> <br /> -- this hook address actually differs between Europe / US.<br /> WidescreenHook = eeObj.AddHook(0x194e18,0x27BDFFD0,WidesrceenFunction)<br /> <br /> #official widescreen patch for The Warrior's emulator. The typos are apparently deliberate.&lt;/pre&gt;<br /> <br /> ====Wild ARMS 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --ee-static-block-links=JAL,COP2<br /> #graphical fixes.&lt;/pre&gt;<br /> <br /> SCUS_972.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;require(&quot;ee-gpr-alias&quot;)<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject() <br /> -- fix vision logo (Wild Arms 3)<br /> local thresholdArea = 0 -- ignore alls items : fix #112276<br /> emuObj.SetGsTitleFix( &quot;ignoreUpRender&quot;, thresholdArea , { texType = 3, cbp = 0x2390, tbp = 0x288000} )<br /> <br /> <br /> -- fix bug #9072<br /> -- this is caused by a wrong string, which we patch directly on the disc.<br /> emuMediaPatch(0x438a, 12 + 0x174, { 0x6e5c2535 }, { 0x11202535 })<br /> <br /> -- Bug#8907. accuracy-muldiv is too slow to use, so here added some value to get correct value.<br /> local eeObj = getEEObject()<br /> eeObj.AddHook(0x001ef6ec, 0x00000000, function()<br /> eeObj.SetFpr(0, eeObj.GetFpr(0) + 0.00001)<br /> end)<br /> #Graphical glitches and stall fix.&lt;/pre&gt;<br /> <br /> ==Custom PS2emu Configuration Files ==<br /> <br /> Here are configuration files created by users, to improve PS2 emulator compatibility on PS4<br /> <br /> ====24 The Game====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed lags issue, !!!JAK v2 EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ====Ace Combat 4====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for terrain textures&lt;/pre&gt;<br /> <br /> ====Ace Combat 5====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Same fix for terrain textures&lt;/pre&gt;<br /> <br /> SLUS_208.51<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix for Stage 3 onwards // Rearranging COP2 instructions that use old results<br /> <br /> eeInsnReplace(0x1A3B94, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x1A3B98, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x1A3BA4, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x1A3BA8, 0x484A8800, 0x4B0C682C)<br /> &lt;/pre&gt;<br /> SCES_504.10<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )&lt;/pre&gt;<br /> <br /> ====Ace Combat Zero: The Belkan War====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Once again, same fix for terrain textures.&lt;/pre&gt;<br /> <br /> SLUS_213.46<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EBC, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC0, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131ECC, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131ED0, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> SCES_540.41<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Wrong sky shader<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Fix for wrong sky shader<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } )<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } )<br /> <br /> -- Collision detection fix.<br /> <br /> eeInsnReplace(0x131EB8, 0x4B00682C, 0x48498800)<br /> eeInsnReplace(0x131EC8, 0x4B0C682C, 0x4B00682C)<br /> eeInsnReplace(0x131FB8, 0x48498800, 0x484A8800)<br /> eeInsnReplace(0x131EC4, 0x484A8800, 0x4B0C682C)&lt;/pre&gt;<br /> <br /> ====AirBlade====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for flickering models and textures&lt;/pre&gt;<br /> <br /> ====Ape Escape 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for flickering textures&lt;/pre&gt;<br /> <br /> ====Bloody Roar 4====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Burnout2: POI====<br /> SLES_510.44 / SLES_529.68<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLES-51044 / SLES-52968 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485B8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485CC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x262604, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262618, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564B8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> SLUS_204.97<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- SLUS_204.97 - Fix white parts<br /> -- Major thanks to Maori-Jigglypuff for reversing that<br /> <br /> eeInsnReplace(0x2485A8, 0xC6800D18, 0x3C014316)<br /> eeInsnReplace(0x2485BC, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2625F4, 0xC7809780, 0x3C014316)<br /> eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)<br /> eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)&lt;/pre&gt;<br /> <br /> ====Cold Winter====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> # fix graphic and physics, there are still issue with fmv, and minor stering issue.&lt;/pre&gt;<br /> <br /> ====Dead or Alive 2: Hardcore====<br /> SLUS_200.71<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix hang, fix music, and sounds effects<br /> <br /> emuMediaPatch(0x186A71, 12 + 0x7e4, { 0x2404002b }, { 0x27c40010 })<br /> emuMediaPatch(0x186A71, 12 + 0x7e8, { 0x0c0032b3 }, { 0x0c0032b7 })<br /> emuMediaPatch(0x186A71, 12 + 0x7ec, { 0x27c50010 }, { 0x00000000 })<br /> emuMediaPatch(0x186A71, 12 + 0x5e8, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A71, 12 + 0x5ec, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A7B, 12 + 0x6fc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A7B, 12 + 0x700, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x164, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x168, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x10c, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x110, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A85, 12 + 0x1bc, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A85, 12 + 0x1c0, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f0, { 0x27bdfff0 }, { 0x03e00008 })<br /> emuMediaPatch(0x186A86, 12 + 0x7f4, { 0xafbe0008 }, { 0x00000000 })<br /> emuMediaPatch(0x186C38, 12 + 0x6ec, { 0x24060001 }, { 0x24060000 })&lt;/pre&gt;<br /> <br /> For the Japanese version (SLPS-25026) you can also use config files from PS3's PS2 emu with<br /> &lt;pre&gt;--lopnor-config=1&lt;/pre&gt;<br /> in config.<br /> <br /> Place config file named as &quot;SLPS-25026_lopnor.cfgbin&quot; in /patches/SLPS-25026/<br /> <br /> ====Disgaea 2: Cursed Memories====<br /> SLUS-21397<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for lines in terrain textures and flickering textures&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 2====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Ball Z: Budokai Tenkaichi 3====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for missing life bars and other UI elements.&lt;/pre&gt;<br /> <br /> ====Dragon Quest VIII: Journey of the Cursed King====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl-up=&quot;up2x2skipinterp&quot;<br /> --gs-optimize-30fps=1<br /> #Fix lines in shadows&lt;/pre&gt;<br /> <br /> ====Frogger: Ancient Shadow====<br /> SLUS_210.98<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1 <br /> #Fixes disappearing models during cutscenes and during gameplay&lt;/pre&gt;<br /> <br /> ====The Getaway====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====The Getaway: Black Monday====<br /> SCES-52758 ONLY!<br /> &lt;br&gt;cli.conf<br /> <br /> &lt;pre&gt;--ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-block-validation=PageProt<br /> --ee-cycle-scalar=0.4<br /> --vu1-opt-flags=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=2050<br /> --gs-frontend-opt-mode=2<br /> --gs-adaptive-frameskip=1<br /> --fpu-accurate-range=0x28C154,0x28C5B0<br /> #&quot;fpu-accurate-range&quot;Fixes the crash on Chapter 5 in the ambush.<br /> #Fix By Vitt0xLar<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ====True Crime: Streets of LA====<br /> &lt;br&gt;cli.conf <br /> &lt;br&gt;All Versions<br /> &lt;pre&gt;--gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Fix for missing enemies in the gyms&lt;/pre&gt;<br /> SLUS_205.50 NTSC<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> SLES_517.53 PAL E<br /> &lt;pre&gt;patch=1,EE,00480640,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> &lt;br&gt; cli.conf <br /> &lt;br&gt;SLES_517.54 only!<br /> &lt;pre&gt;--vu1-mpg-cycles=2350<br /> --vu1-opt-flags=2<br /> --vu1-opt-vf00=2<br /> --gs-optimize-30fps=1<br /> --ee-kernel-hle=1<br /> --ee-block-validation=PageProt<br /> --gs-use-mipmap=1<br /> --gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> #Performance fix and fix for missing enemies in the gyms&lt;/pre&gt;<br /> &lt;br&gt;SLES_517.54 PAL M5<br /> &lt;pre&gt;patch=1,EE,00480DB0,word,10000000<br /> --Fix for title screen freeze<br /> --Use ps2patchengine to patch the iso&lt;/pre&gt;<br /> <br /> ====Ghost in the Shell: Stand Alone Complex====<br /> SLES_530.20<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x10BC8C, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x10BC90, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x10BC98, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B2CC, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B2D0, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B2D4, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B2DC, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x12B5F4, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x12B5F8, 0x4B8D617D, 0x4bec682c)<br /> eeInsnReplace(0x12B5FC, 0x4A6D617C, 0x4b8d617d)<br /> eeInsnReplace(0x12B604, 0x48468800, 0x4a6d617c)<br /> eeInsnReplace(0x1B0B58, 0x4BEC682C, 0x48468800)<br /> eeInsnReplace(0x1B0B5C, 0x4BED617D, 0x4bec682c)<br /> eeInsnReplace(0x1B0B68, 0x48468800, 0x4b8d617d)<br /> eeInsnReplace(0x1BF5FC, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF60C, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BFBB8, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BFBC8, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1BF818, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1BF828, 0x48588800, 0x4a0002ff)<br /> eeInsnReplace(0x1C017C, 0x4A0002FF, 0x48588800)<br /> eeInsnReplace(0x1C018C, 0x48588800, 0x4a0002ff)<br /> -- Potential fix for broken interactive door // Rearranging COP2 ops so as to avoid macflag bad stuff&lt;/pre&gt;<br /> <br /> ====God Hand====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #fix for graphical glitches, specially the missing ground.<br /> &lt;/pre&gt;<br /> <br /> ====Killer7====<br /> All versions<br /> &lt;br&gt;Test<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> #fix for flickering polygons.&lt;/pre&gt;<br /> <br /> ====Kim Possible: What's the Switch====<br /> PAL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-mpg-cycles=950<br /> <br /> #fix lag during cutscenes<br /> &lt;/pre&gt;<br /> <br /> ====Klonoa 2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-no-clamping=1<br /> #Fix for misplaced objects, still require fix for texturing problems. Require Rogue Galaxy emu&lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Defiance====<br /> SLUS_207.73<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x188F50, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> SLES_521.50<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x189340, 0x10600020, 0x10000020)<br /> &lt;/pre&gt;<br /> <br /> ====Legacy of Kain: Soul Reaver 2====<br /> SLES_501.96<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;<br /> apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Turn off mipmapping in game engine. Completely fix flickering, and bad texturing. Don't require &quot;gs-kernel-cl=mipmap&quot;<br /> -- SLES_501.96 only!<br /> <br /> eeInsnReplace(0x2A1F80, 0x00000001, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Metal Saga====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vif1-ignore-cmd-ints=1<br /> <br /> #Fix for black-screen on SatCom/Equip menus. Game still unplayable due to immediate freeze during combat.&lt;/pre&gt;<br /> <br /> ====Need for Speed Carbon====<br /> SLES_543.22<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x150000,0x170000<br /> # Fix loading freeze, game still unplayable due to 1 fps in-game. &lt;/pre&gt;<br /> <br /> ====NBA Street Vol.2====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --gs-adaptive-frameskip=1<br /> # Fix for graphical corruptions, require &quot;JAK&quot; emu.&lt;/pre&gt;<br /> <br /> ====Oni====<br /> SLES_501.34 SLES_501.76 SLES_501.77 SLES_501.78 SLES_501.79<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CEF7C, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> SLUS_200.64<br /> &lt;br&gt;Lua<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- Fix for hang at loading screen<br /> <br /> eeInsnReplace(0x1CF3CC, 0x4100FFFF, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Phantasy Star Universe====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fix for flickering textures and geometry&lt;/pre&gt;<br /> <br /> ====R-Racing Revolution====<br /> SLUS_207.21<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Divide $v0 value by 8 before copying it to CMSAR0<br /> -- sra $v0, 3, this time we are losing one nop on cop2. Can be important.<br /> <br /> eeInsnReplace(0x2DDB4C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDB50, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x2DDBC4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x2DDBC8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x313C30, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x313C34, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3144FC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314500, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x314E04, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x314E08, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31570C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x315710, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x315FFC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x316000, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x3168EC, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x3168F0, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31724C, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317250, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x317B74, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x317B78, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318430, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318434, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x318D54, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x318D58, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x319AA0, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x319AA4, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31A8D4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31A8D8, 0x4A0002FF, 0x48C2D801)<br /> eeInsnReplace(0x31B7A4, 0x48C2D801, 0x000210C3)<br /> eeInsnReplace(0x31B7A8, 0x4A0002FF, 0x48C2D801)<br /> -- fix graphical issues&lt;/pre&gt;<br /> <br /> ====Raw Danger! / Zettai Zetsumei Toshi 2 - Itetsuita Kiokutachi====<br /> <br /> SLUS_215.01<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLUS-21501 speedhack<br /> <br /> eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)<br /> eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)&lt;/pre&gt;<br /> <br /> SLES_545.87<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLES-54587 speedhack<br /> <br /> eeInsnReplace(0x11e0f4, 0x0c066a40, 0x00000000)<br /> eeInsnReplace(0x11e0fc, 0x0c08a8d0, 0x00000000)&lt;/pre&gt;<br /> <br /> SLPS_256.06<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1)<br /> <br /> -- SLPS-25606 speedhack<br /> <br /> eeInsnReplace(0x11e094, 0x0c066804, 0x00000000)<br /> eeInsnReplace(0x11e09c, 0x0c08a654, 0x00000000)&lt;/pre&gt;<br /> <br /> ====Rygar: The Legendary Adventure====<br /> SLUS_204.71<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x147CC0,0x147EA0<br /> #Fix for freeze after leaving the first area.&lt;/pre&gt;<br /> <br /> ====Samurai Shodown VI====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-upscale=point<br /> --gs-uprender=2x2<br /> --gs-motion-factor=25<br /> --host-audio-latency=0.01<br /> --gs-ignore-dirty-page-border=1<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.&lt;/pre&gt;<br /> <br /> ====SNK vs Capcom: SVC Chaos====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-use-clut-merge=1<br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot;<br /> #Fixes missing hud/UI elements.&lt;/pre&gt;<br /> <br /> ====SpongeBob SquarePants: Battle for Bikini Bottom====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Fix for graphical issues&lt;/pre&gt;<br /> <br /> ====Street Fighter Alpha Anthology====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Tales of Destiny: Directors Cut====<br /> SLPS-25842, SLPS-25841, SCKA-20119<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--fpu-accurate-range=0x1C0000,0x1D0000 <br /> --gs-use-clut-merge=1 <br /> --gs-kernel-cl=&quot;clutmerge&quot;<br /> --gs-kernel-cl-up=&quot;clutmerge2x2&quot; <br /> # Fix control after exiting the menu, and graphic bugs. 0x1C0000,0x1D0000 range can be clamped is someone will find it slow.&lt;/pre&gt;<br /> <br /> ====Tales of The Abyss====<br /> SLUS_213.86<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-uprender=none<br /> --gs-upscale=none<br /> #fix coruption lines caused by upscsaler, remember to remove 2x2 that already exist in config<br /> --fpu-accurate-range=0x27FFFC,0x27FFFF<br /> --fpu-accurate-range=0x2921F4,0x2921F8<br /> #choral castle soft lock fix<br /> --fpu-no-clamping=0<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --cop2-clamp-results=1<br /> #Seems to fix not renedering characters in cut scenes&lt;/pre&gt;<br /> <br /> ====Tomb Raider: Anniversary====<br /> SLUS_215.55<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1297C0, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_539.08<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x1273E8, 0x10600022, 0x10000022)&lt;/pre&gt;<br /> <br /> ====Tomb Raider - Legend====<br /> SLUS_212.03<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x127390, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> SLES_546.74<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> -- Texture Flickering fix<br /> <br /> eeInsnReplace(0x129800, 0x10600022, 0x10000022)<br /> &lt;/pre&gt;<br /> <br /> ====Tony Hawk Pro Skater 3====<br /> All<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> #SPS Fix&lt;/pre&gt;<br /> <br /> ====Valkyrie Profile 2: Silmeria====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-progressive=1<br /> --gs-uprender=2x2<br /> --gs-upscale=Point<br /> --vu-hack-triace=1<br /> --gs-kernel-cl-up=&quot;up2x2simple&quot;<br /> #Looks like it fix all graphical issues excluding purple effect in Forest at start of game&lt;/pre&gt;<br /> <br /> ====Vampire: Darkstalkers Collection====<br /> ALL<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-motion-factor=50<br /> --host-audio-latency=0.01<br /> --gs-kernel-cl=&quot;h2lpool&quot;<br /> --gs-kernel-cl-up=&quot;h2lpool2x2&quot;<br /> --gs-h2l-list-opt=1<br /> --gs-h2l-accurate-hash=1<br /> #Fix for performance issues. PS4 Pro required for full speed.&lt;/pre&gt;<br /> <br /> ====Whiplash====<br /> All versions<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> #Fix for texture glitches&lt;/pre&gt;<br /> <br /> ====X-Files - Resist or Serve====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--vu0-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-results=1<br /> <br /> #fix for missing character models<br /> #Jak Emu used&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! First Frights™====<br /> SLES_554.76 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x00163984,FastForwardClock<br /> --ee-hook=0x00163998,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====Scooby-Doo! and the Spooky Swamp™====<br /> SLES_556.09 Only!<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--ee-hook=0x001480F4,FastForwardClock<br /> --ee-hook=0x00148108,FastForwardClock<br /> #Fix for distorted audio&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro A New Beginning====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: A New Beginning<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x1849b8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====The Legend of Spyro: The Eternal Night====<br /> PAL only!<br /> &lt;br&gt;LUA<br /> &lt;pre&gt;apiRequest(0.4)<br /> <br /> -- The Legend of Spyro: The Eternal Night<br /> <br /> local eeObj = getEEObject()<br /> local emuObj = getEmuObject()<br /> <br /> eeInsnReplace(0x173c38, 0x44840800, 0x00000000) -- Fixes HUD and menu display.<br /> <br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR&lt;/pre&gt;<br /> <br /> ====Zatch Bell! Mamodo Battles™====<br /> NTSC/U<br /> &lt;br&gt;Text<br /> &lt;pre&gt;--gs-kernel-cl=&quot;mipmap&quot;<br /> --gs-kernel-cl-up=&quot;mipmap2x2&quot;<br /> --gs-use-mipmap=1<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-results=1<br /> --vu1-clamp-results=1<br /> --fpu-no-clamping=0<br /> --cop2-no-clamping=0<br /> --fpu-clamp-results=1<br /> --cop2-clamp-results=1<br /> <br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> ==Fix for unplayable or major issue games==<br /> <br /> ==== Call of Duty: World at War - Final Fronts ====<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!<br /> &lt;/pre&gt;<br /> <br /> ==== God Of War ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu1-opt-flags=2<br /> --vu1-di-bits=1<br /> --vu1-mpg-cycles=800<br /> --vu1-injection=1<br /> --vu1-opt-vf00=2<br /> --vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x017A2DC,AdvanceClock<br /> --gs-frontend-opt-mode=2<br /> --fpu-rsqrt-fast-estimate=1<br /> #fix for graphical glitches<br /> <br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA file'''''<br /> &lt;pre&gt;-- God Of War EU<br /> <br /> -- 01 Music sound problem: music restarts every time there are many sounds to play<br /> -- 02 Latest emu removes a lot of game lag, anyway the game still suffer of shuttering in the next levels<br /> -- 03 Corrupted green lines around the objects, uprendering problem<br /> <br /> apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- 02 Slowdowns and performances patched in cli.conf file<br /> <br /> -- 03 --gs-uprender=none removes corrupted lines around the objects and<br /> &lt;/pre&gt;<br /> <br /> ====God of War 2====<br /> '''''Conf file'''''<br /> &lt;pre&gt;--vu1-jr-cache-policy=newprog<br /> --vu1-jalr-cache-policy=newprog<br /> --vu1-mpg-cycles=1000<br /> --vu1-di-bits=1<br /> --vu1-injection=1<br /> --vu1-opt-flags=2<br /> --ee-block-validation=PageProt<br /> --ee-hook=0x186B64,AdvanceClock<br /> --ee-hook=0x186CE4,AdvanceClock<br /> --ee-cycle-scalar=0.8<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --gs-frontend-opt-mode=2<br /> --gs-optimize-30fps=1<br /> *Jak Emu used*&lt;/pre&gt;<br /> <br /> '''''LUA File'''''<br /> &lt;pre&gt;-- God of War II EU<br /> <br /> apiRequest(2.2)<br /> <br /> local emuObj = getEmuObject()<br /> <br /> -- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version<br /> <br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=1 } ) --texMode=1 ?<br /> emuObj.SetGsTitleFix( &quot;forceSimpleFetch&quot;, &quot;reserved&quot;, { texMode=2 } ) --texMode=2 is BILINEAR<br /> <br /> # Fixed 90% of glitches, still has lag issues (For NTSC / PAL versions). Korean and Japanese versions works fine with this configuration.<br /> &lt;/pre&gt;<br /> <br /> ==== Max Payne 2 ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --vu0-no-clamping=0<br /> --vu1-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed green, blue and red graphical issues. The game works better.<br /> &lt;/pre&gt;<br /> <br /> ==== Psi-Ops: The Mindgate Conspiracy ====<br /> <br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.9<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> # Fixed low framrate issue, !!!JAK EMULATOR Used!!!.<br /> &lt;/pre&gt;<br /> <br /> ==== The Shield ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --fpu-accurate-addsub-range=0x100008,0x700000<br /> <br /> #Fix for game over error on level '''2354 Casitas Dr'''.<br /> #JAK V2 emulator used.<br /> &lt;/pre&gt;<br /> <br /> ==== The Suffering 2: Ties that Bind ====<br /> '''''Conf file'''''<br /> &lt;pre&gt;<br /> --ee-kernel-hle=1<br /> --ee-injection-kernel=1<br /> --ee-injection-title=1<br /> --ee-cycle-scalar=1.5<br /> --safe-area-min=1.0<br /> --vu0-no-clamping=0<br /> --vu0-clamp-operands=1<br /> --vu0-clamp-results=1<br /> --vu1-no-clamping=0<br /> --vu1-clamp-operands=1<br /> --vu1-clamp-results=1<br /> --cop2-no-clamping=0<br /> --cop2-clamp-operands=1<br /> --cop2-clamp-results=1<br /> #Lags are patched using Jak v2 emulator, still minor black patches on character models, rest works fine.</div> 162.199.155.139