PS4 [Research]PS2 emulator configuration on PS4

crashes PS4(does not boot). Thanks for trying
I remember having the same issues on PS4 with one of my favorite games "Decathlete" from the Sega 2500 collection. I think the multitap had to be connected in the player 2 slot on a PS2 to get it to work. Would correspond to P1: 1A, P2: 2B, P3: 2C, P4: 2D
 
Crash Bandicoot: The Wrath of Cortex

LUA
Code:
apiRequest(0.1)
-- Eliminate color scan lines
local emuObj = getEmuObject()

emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )

Perfect thank you!

Was able to add 'setGsTitleFix' to a lua using 'apiRequest(2.0)' without any issues.

Now i'm just trying to work out if the game is quite slow or its emulation issues!
 
Improvement Fix for The Fairly OddParents! Breakin' Da Rules (U)(SLUS-20661)
CLI

Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth   

--host-display-mode=16:9

--cdvd-sector-read-cycles=400

#emu used=ADK
LUA
Code:
-- The Fairly OddParents! Breakin' Da Rules (U)(SLUS-20661)
-- Widescreen Hack by Arapapa
-- Patches/Codes 
-- emu used=ADK

apiRequest(1.0)   

local gpr = require("ee-gpr-alias")

local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()
--Widescreen hack 16:9

eeObj.WriteMem32(0x0041cea4,0x0811e474)

eeObj.WriteMem32(0x004791d0,0x46166302)
eeObj.WriteMem32(0x004791d4,0x3c013faa)
eeObj.WriteMem32(0x004791d8,0x3421aaab)
eeObj.WriteMem32(0x004791dc,0x4481f000)
eeObj.WriteMem32(0x004791e0,0x461e6302)
eeObj.WriteMem32(0x004791e4,0x081073aa)

--60 fps
eeObj.WriteMem32(0x2052F408,0x42700000)

--general
emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)
Works Great!

Improvement Fix for The Fairly OddParents! Shadow Showdown (U)(SLUS-20880)
CLI

Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth   

--host-display-mode=16:9

--cdvd-sector-read-cycles=400

#emu used=ADK
LUA
Code:
-- The Fairly OddParents! Shadow Showdown (U)(SLUS-20880)
-- Widescreen Hack by Arapapa
-- ported to PS4
-- emu used= Jakx v2

apiRequest(1.0)

local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()
--Widescreen hack 16:9
--X-Fov
--02631646 540014c6
eeObj.WriteMem32(0x00381f44,0x080f8a54)

eeObj.WriteMem32(0x003e2950,0x46166302)
eeObj.WriteMem32(0x003e2954,0x3c013faa)
eeObj.WriteMem32(0x003e2958,0x3421aaab)
eeObj.WriteMem32(0x003e295c,0x4481f000)
eeObj.WriteMem32(0x003e2960,0x461e6302)
eeObj.WriteMem32(0x003e2964,0x080e07d2)
--Unlock All Gallery by MadCatz
eeObj.WriteMem32(0x205C2960,0xFFFFFFFF)
eeObj.WriteMem32(0x205C2964,0xFFFFFFFF)
--All Videos by MadCatz
eeObj.WriteMem32(0x205C2990,0xFFFFFFFF)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

Works great! Looking for a 60FPS code.....
 
Improvement Fix for Michigan - Report from Hell (PAL-M4) (SLES-53073)
CLI

Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth

--host-display-mode=16:9

#emu used=psychonauts v2
LUA
Code:
-- Michigan - Report from Hell (PAL-M4) (SLES-53073)
-- Widescreen hack by nemesis2000
-- Added conditions for PAL50 and PAL60 (ElHecht)
-- Enhancement(no interlace) by nifengyxia
-- emu used=psychonauts v2

local gpr = require("ee-gpr-alias")

apiRequest(0.1)

local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()

local code_check1 = eeObj.ReadMem16(0x29c3b8)
if code_check1 == 0x1450 then
eeObj.WriteMem32(0x201a70d0,0x240400c0) --PAL
eeObj.WriteMem32(0x20103604,0x64420000) --No interleacing A
end

local code_check2 = eeObj.ReadMem16(0x29c3b8)
if code_check2 == 0x1446 then
eeObj.WriteMem32(0x201a70d0,0x240400a8) --NTSC
eeObj.WriteMem32(0x201038CC,0x64420000) --No interleacing B
end
eeObj.WriteMem32(0x00184df0,0x3c023f06) -- render fix

end

emuObj.AddVsyncHook(patcher)

Works great! Testers needed
 
The game will crash at some point using that config.....

Official config from PSN classic

https://www.psdevwiki.com/ps4/Talk:...atibility_List#Resident_Evil_Code:_Veronica_X

you can also add
Code:
-- Resident Evil Code Veronica X.(SLES50306) ONLY!!
local WS = function()

-- 16:9
eeObj.WriteMem32(0x21140300,0x3f400000) -- 3f800000 hor fov
eeObj.WriteMem32(0x21E394C0,0x01aa0280) -- 01400280 fmv fix
eeObj.WriteMem32(0x21E394C4,0x000c0000) -- 00400000 fmv fix

end

emuObj.AddVsyncHook(WS)

to the end of official LUA for true widescreen
im use these configs for ntsc version also use some fun cheats:glee::glee::glee:
 
Last edited:
Hey, everyone. Quick question.

Does anyone know what the equivalent setting would be to emulate this setting from PCSX2:

"Enable clamping in the vu recompiler options as Extra + Preserve Sign"

I'm told this fixes an issue with another sports game I'm trying to get running but the only clamping setting I know of (those posted on the front page) aren't helping.

Thanks for any help!


Edit: If there is a unique setting for the above I'd still like to know but I've been made aware that the person I got that tip from confused my issue. The issue he thought I had I have already resolved (with the known clamping settings).
 
Last edited:
Improved Fix + 1st Person Mode Attempt 1 for Champions of Norath NTSC
CLI

Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-progressive=1
--vu1-no-clamping=0
--vif1-instant-xfer=0
--vu1-di-bits=0
--cop2-opt-flags=1
--vu0-const-prop=1
--vu1-const-prop=0
--host-display-mode=16:9
--cdvd-sector-read-cycles=2250
LUA
Code:
-- Champions of Norrath (SLUS_20565)
-- Widescreen hack by No.47
-- FPS mode ported to PS4 by Stayhye
-- emu used=star wars racer revenge v1
 
apiRequest(0.4)

local gpr       = require("ee-gpr-alias")

local emuObj      = getEmuObject()
local eeObj       = getEEObject()

local widescreen = function()
--16:9
eeObj.WriteMem32(0x20480074,0x3F3FFFFF)
eeObj.WriteMem32(0x204800E4,0x3F3FFFFF)
eeObj.WriteMem32(0x204800C4,0x3FE2FC95)
eeObj.WriteMem32(0x204801B8,0x3FE2FC95)
eeObj.WriteMem32(0x204801C0,0x3FE2FC95)
eeObj.WriteMem32(0x204801C8,0x3FE2FC95)
eeObj.WriteMem32(0x204801CC,0x3FE2FC95)
eeObj.WriteMem32(0x204801D4,0x3FE2FC95)
-- no interlace
eeObj.WriteMem32(0x201912D8,0xAE200008)

eeObj.Vu1MpgCycles(2300) -- speeds up gameplay and remove most stutter
emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(widescreen)

--------------END OF LUA----------------------------

--[[

--experimental 1st person mode.  Cannot seem to get it to work yet.  Game will boot with it enabled, just no effect
--maybe change triple end to double end.  Then move remaining "ends" to end of patcher?

-- FPS MODE
eeInsnReplace(0x207D09DC, 0x00000000, 0x00000001)
eeInsnReplace(0x107D09F2, 0x00000000, 0x000007D0)
eeInsnReplace(0x107D09F4, 0x00000000, 0x000007D0)
eeInsnReplace(0x107D09F6, 0x00000000, 0x000007D0)
eeInsnReplace(0x207D0A14, 0x00000000, 0xC1C80000)
eeInsnReplace(0x207D0A38, 0x00000000, 0xC1C80000)
eeInsnReplace(0x207D0A3C, 0x00000000, 0xC1C80000)
eeInsnReplace(0x107D0A86, 0x00000000, 0x00004298)
eeInsnReplace(0x107D0A46, 0x00000000, 0x00004298)
eeInsnReplace(0x107D0A4A, 0x00000000, 0x00004298)
eeInsnReplace(0x107D0A06, 0x00000000, 0x00003FFC)
eeInsnReplace(0x107D0A08, 0x00000000, 0x00003FFC)
eeInsnReplace(0x107D0A0A, 0x00000000, 0x00003FFC)
eeInsnReplace(0x107D0A0C, 0x00000000, 0x00003FFC)
eeInsnReplace(0x107D0A0E, 0x00000000, 0x00003FFC)
eeInsnReplace(0x107D0A10, 0x00000000, 0x00003FFC)
eeInsnReplace(0x107D0A12, 0x00000000, 0x00003FFC)



local firstperson = function()

local code_check1 = eeObj.ReadMem16(0x7D09F0)
if code_check1 == 0x0000 then
local code_check2 = eeObj.ReadMem16(0x7D09F0)
if code_check2 == 0x01FF then
local code_check3 = eeObj.ReadMem16(0x5E989E)
if code_check3 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00003DC0)
end
end
end
local code_check4 = eeObj.ReadMem16(0x7D09F0)
if code_check4 == 0x0200 then
local code_check5 = eeObj.ReadMem16(0x7D09F0)
if code_check5 == 0x03FF then
local code_check6 = eeObj.ReadMem16(0x5E989E)
if code_check6 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00003BC0)
end
end
end
local code_check7 = eeObj.ReadMem16(0x7D09F0)
if code_check7 == 0x0400 then
local code_check8 = eeObj.ReadMem16(0x7D09F0)
if code_check8 == 0x05FF then
local code_check9 = eeObj.ReadMem16(0x5E989E)
if code_check9 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000039C0)
end
end
end
local code_check10 = eeObj.ReadMem16(0x7D09F0)
if code_check10 == 0x0600 then
local code_check11 = eeObj.ReadMem16(0x7D09F0)
if code_check11 == 0x07FF then
local code_check12 = eeObj.ReadMem16(0x5E989E)
if code_check12 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000037C0)
end
end
end
local code_check13 = eeObj.ReadMem16(0x7D09F0)
if code_check13 == 0x0800 then
local code_check14 = eeObj.ReadMem16(0x7D09F0)
if code_check14 == 0x09FF then
local code_check15 = eeObj.ReadMem16(0x5E989E)
if code_check15 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000035C0)
end
end
end
local code_check16 = eeObj.ReadMem16(0x7D09F0)
if code_check16 == 0x0A00 then
local code_check17 = eeObj.ReadMem16(0x7D09F0)
if code_check17 == 0x0BFF then
local code_check18 = eeObj.ReadMem16(0x5E989E)
if code_check18 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000033C0)
end
end
end
local code_check19 = eeObj.ReadMem16(0x7D09F0)
if code_check19 == 0x0C00 then
local code_check20 = eeObj.ReadMem16(0x7D09F0)
if code_check20 == 0x0DFF then
local code_check21 = eeObj.ReadMem16(0x5E989E)
if code_check21 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000031C0)
end
end
end
local code_check22 = eeObj.ReadMem16(0x7D09F0)
if code_check22 == 0x0E00 then
local code_check23 = eeObj.ReadMem16(0x7D09F0)
if code_check23 == 0x0FFF then
local code_check24 = eeObj.ReadMem16(0x5E989E)
if code_check24 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00002FC0)
end
end
end
local code_check25 = eeObj.ReadMem16(0x7D09F0)
if code_check25 == 0x1000 then
local code_check26 = eeObj.ReadMem16(0x7D09F0)
if code_check26 == 0x11FF then
local code_check27 = eeObj.ReadMem16(0x5E989E)
if code_check27 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00002DC0)
end
end
end
local code_check28 = eeObj.ReadMem16(0x7D09F0)
if code_check28 == 0x1200 then
local code_check29 = eeObj.ReadMem16(0x7D09F0)
if code_check29 == 0x13FF then
local code_check30 = eeObj.ReadMem16(0x5E989E)
if code_check30 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00002BC0)
end
end
end
local code_check31 = eeObj.ReadMem16(0x7D09F0)
if code_check31 == 0x1400 then
local code_check32 = eeObj.ReadMem16(0x7D09F0)
if code_check32 == 0x15FF then
local code_check33 = eeObj.ReadMem16(0x5E989E)
if code_check33 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000029C0)
end
end
end
local code_check34 = eeObj.ReadMem16(0x7D09F0)
if code_check34 == 0x1600 then
local code_check35 = eeObj.ReadMem16(0x7D09F0)
if code_check35 == 0x17FF then
local code_check36 = eeObj.ReadMem16(0x5E989E)
if code_check36 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000027C0)
end
end
end
local code_check37 = eeObj.ReadMem16(0x7D09F0)
if code_check37 == 0x1800 then
local code_check38 = eeObj.ReadMem16(0x7D09F0)
if code_check38 == 0x19FF then
local code_check39 = eeObj.ReadMem16(0x5E989E)
if code_check39 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000025C0)
end
end
end
local code_check40 = eeObj.ReadMem16(0x7D09F0)
if code_check40 == 0x1A00 then
local code_check41 = eeObj.ReadMem16(0x7D09F0)
if code_check41 == 0x1BFF then
local code_check42 = eeObj.ReadMem16(0x5E989E)
if code_check42 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000023C0)
end
end
end
local code_check43 = eeObj.ReadMem16(0x7D09F0)
if code_check43 == 0x1C00 then
local code_check44 = eeObj.ReadMem16(0x7D09F0)
if code_check44 == 0x1DFF then
local code_check45 = eeObj.ReadMem16(0x5E989E)
if code_check45 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000021C0)
end
end
end
local code_check46 = eeObj.ReadMem16(0x7D09F0)
if code_check46 == 0x1E00 then
local code_check47 = eeObj.ReadMem16(0x7D09F0)
if code_check47 == 0x1FFF then
local code_check48 = eeObj.ReadMem16(0x5E989E)
if code_check48 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00001FC0)
end
end
end
local code_check49 = eeObj.ReadMem16(0x7D09F0)
if code_check49 == 0x2000 then
local code_check50 = eeObj.ReadMem16(0x7D09F0)
if code_check50 == 0x21FF then
local code_check51 = eeObj.ReadMem16(0x5E989E)
if code_check51 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00001DC0)
end
end
end
local code_check52 = eeObj.ReadMem16(0x7D09F0)
if code_check52 == 0x2200 then
local code_check53 = eeObj.ReadMem16(0x7D09F0)
if code_check53 == 0x23FF then
local code_check54 = eeObj.ReadMem16(0x5E989E)
if code_check54 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00001BC0)
end
end
end
local code_check55 = eeObj.ReadMem16(0x7D09F0)
if code_check55 == 0x2400 then
local code_check56 = eeObj.ReadMem16(0x7D09F0)
if code_check56 == 0x25FF then
local code_check57 = eeObj.ReadMem16(0x5E989E)
if code_check57 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000019C0)
end
end
end
local code_check58 = eeObj.ReadMem16(0x7D09F0)
if code_check58 == 0x2600 then
local code_check59 = eeObj.ReadMem16(0x7D09F0)
if code_check59 == 0x27FF then
local code_check60 = eeObj.ReadMem16(0x5E989E)
if code_check60 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000017C0)
end
end
end
local code_check61 = eeObj.ReadMem16(0x7D09F0)
if code_check61 == 0x2800 then
local code_check62 = eeObj.ReadMem16(0x7D09F0)
if code_check62 == 0x29FF then
local code_check63 = eeObj.ReadMem16(0x5E989E)
if code_check63 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000015C0)
end
end
end
local code_check64 = eeObj.ReadMem16(0x7D09F0)
if code_check64 == 0x2A00 then
local code_check65 = eeObj.ReadMem16(0x7D09F0)
if code_check65 == 0x2BFF then
local code_check66 = eeObj.ReadMem16(0x5E989E)
if code_check66 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000013C0)
end
end
end
local code_check67 = eeObj.ReadMem16(0x7D09F0)
if code_check67 == 0x2C00 then
local code_check68 = eeObj.ReadMem16(0x7D09F0)
if code_check68 == 0x2DFF then
local code_check69 = eeObj.ReadMem16(0x5E989E)
if code_check69 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000011C0)
end
end
end
local code_check70 = eeObj.ReadMem16(0x7D09F0)
if code_check70 == 0x2E00 then
local code_check71 = eeObj.ReadMem16(0x7D09F0)
if code_check71 == 0x2FFF then
local code_check72 = eeObj.ReadMem16(0x5E989E)
if code_check72 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00000FC0)
end
end
end
local code_check73 = eeObj.ReadMem16(0x7D09F0)
if code_check73 == 0x2E00 then
local code_check74 = eeObj.ReadMem16(0x7D09F0)
if code_check74 == 0x2FFF then
local code_check75 = eeObj.ReadMem16(0x5E989E)
if code_check75 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00000FC0)
end
end
end
local code_check76 = eeObj.ReadMem16(0x7D09F0)
if code_check76 == 0x3000 then
local code_check77 = eeObj.ReadMem16(0x7D09F0)
if code_check77 == 0x31FF then
local code_check78 = eeObj.ReadMem16(0x5E989E)
if code_check78 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00000DC0)
end
end
end
local code_check79 = eeObj.ReadMem16(0x7D09F0)
if code_check79 == 0x3200 then
local code_check80 = eeObj.ReadMem16(0x7D09F0)
if code_check80 == 0x33FF then
local code_check81 = eeObj.ReadMem16(0x5E989E)
if code_check81 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00000BC0)
end
end
end
local code_check82 = eeObj.ReadMem16(0x7D09F0)
if code_check82 == 0x3400 then
local code_check83 = eeObj.ReadMem16(0x7D09F0)
if code_check83 == 0x35FF then
local code_check84 = eeObj.ReadMem16(0x5E989E)
if code_check84 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000009C0)
end
end
end
local code_check85 = eeObj.ReadMem16(0x7D09F0)
if code_check85 == 0x3600 then
local code_check86 = eeObj.ReadMem16(0x7D09F0)
if code_check86 == 0x37FF then
local code_check87 = eeObj.ReadMem16(0x5E989E)
if code_check87 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000007C0)
end
end
end
local code_check88 = eeObj.ReadMem16(0x7D09F0)
if code_check88 == 0x3800 then
local code_check89 = eeObj.ReadMem16(0x7D09F0)
if code_check89 == 0x39FF then
local code_check90 = eeObj.ReadMem16(0x5E989E)
if code_check90 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000005C0)
end
end
end
local code_check91 = eeObj.ReadMem16(0x7D09F0)
if code_check91 == 0x3A00 then
local code_check92 = eeObj.ReadMem16(0x7D09F0)
if code_check92 == 0x3BFF then
local code_check93 = eeObj.ReadMem16(0x5E989E)
if code_check93 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000003C0)
end
end
end
local code_check94 = eeObj.ReadMem16(0x7D09F0)
if code_check94 == 0x3C00 then
local code_check95 = eeObj.ReadMem16(0x7D09F0)
if code_check95 == 0x3DFF then
local code_check96 = eeObj.ReadMem16(0x5E989E)
if code_check96 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000001C0)
end
end
end
local code_check97 = eeObj.ReadMem16(0x7D09F0)
if code_check97 == 0x3E00 then
local code_check98 = eeObj.ReadMem16(0x7D09F0)
if code_check98 == 0x3FFF then
local code_check99 = eeObj.ReadMem16(0x5E989E)
if code_check99 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000FFC0)
end
end
end
local code_check100 = eeObj.ReadMem16(0x7D09F0)
if code_check100 == 0x4000 then
local code_check101 = eeObj.ReadMem16(0x7D09F0)
if code_check101 == 0x41FF then
local code_check102 = eeObj.ReadMem16(0x5E989E)
if code_check102 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000FDC0)
end
end
end
local code_check103 = eeObj.ReadMem16(0x7D09F0)
if code_check103 == 0x4200 then
local code_check104 = eeObj.ReadMem16(0x7D09F0)
if code_check104 == 0x43FF then
local code_check105 = eeObj.ReadMem16(0x5E989E)
if code_check105 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000FBC0)
end
end
end
local code_check106 = eeObj.ReadMem16(0x7D09F0)
if code_check106 == 0x4400 then
local code_check107 = eeObj.ReadMem16(0x7D09F0)
if code_check107 == 0x45FF then
local code_check108 = eeObj.ReadMem16(0x5E989E)
if code_check108 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000F9C0)
end
end
end
local code_check109 = eeObj.ReadMem16(0x7D09F0)
if code_check109 == 0x4600 then
local code_check110 = eeObj.ReadMem16(0x7D09F0)
if code_check110 == 0x47FF then
local code_check111 = eeObj.ReadMem16(0x5E989E)
if code_check111 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000F7C0)
end
end
end
local code_check112 = eeObj.ReadMem16(0x7D09F0)
if code_check112 == 0x4800 then
local code_check113 = eeObj.ReadMem16(0x7D09F0)
if code_check113 == 0x49FF then
local code_check114 = eeObj.ReadMem16(0x5E989E)
if code_check114 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000F5C0)
end
end
end
local code_check115 = eeObj.ReadMem16(0x7D09F0)
if code_check115 == 0x4A00 then
local code_check116 = eeObj.ReadMem16(0x7D09F0)
if code_check116 == 0x4BFF then
local code_check117 = eeObj.ReadMem16(0x5E989E)
if code_check117 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000F3C0)
end
end
end
local code_check118 = eeObj.ReadMem16(0x7D09F0)
if code_check118 == 0x4C00 then
local code_check119 = eeObj.ReadMem16(0x7D09F0)
if code_check119 == 0x4DFF then
local code_check120 = eeObj.ReadMem16(0x5E989E)
if code_check120 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000F1C0)
end
end
end
local code_check121 = eeObj.ReadMem16(0x7D09F0)
if code_check121 == 0x4E00 then
local code_check122 = eeObj.ReadMem16(0x7D09F0)
if code_check122 == 0x4FFF then
local code_check123 = eeObj.ReadMem16(0x5E989E)
if code_check123 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000EFC0)
end
end
end
local code_check124 = eeObj.ReadMem16(0x7D09F0)
if code_check124 == 0x5000 then
local code_check125 = eeObj.ReadMem16(0x7D09F0)
if code_check125 == 0x51FF then
local code_check126 = eeObj.ReadMem16(0x5E989E)
if code_check126 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000EDC0)
end
end
end
local code_check127 = eeObj.ReadMem16(0x7D09F0)
if code_check127 == 0x5200 then
local code_check128 = eeObj.ReadMem16(0x7D09F0)
if code_check128 == 0x53FF then
local code_check129 = eeObj.ReadMem16(0x5E989E)
if code_check129 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000EBC0)
end
end
end
local code_check130 = eeObj.ReadMem16(0x7D09F0)
if code_check130 == 0x5400 then
local code_check131 = eeObj.ReadMem16(0x7D09F0)
if code_check131 == 0x55FF then
local code_check132 = eeObj.ReadMem16(0x5E989E)
if code_check132 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000E9C0)
end
end
end
local code_check133 = eeObj.ReadMem16(0x7D09F0)
if code_check133 == 0x5600 then
local code_check134 = eeObj.ReadMem16(0x7D09F0)
if code_check134 == 0x57FF then
local code_check135 = eeObj.ReadMem16(0x5E989E)
if code_check135 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000E7C0)
end
end
end
local code_check136 = eeObj.ReadMem16(0x7D09F0)
if code_check136 == 0x5800 then
local code_check137 = eeObj.ReadMem16(0x7D09F0)
if code_check137 == 0x59FF then
local code_check138 = eeObj.ReadMem16(0x5E989E)
if code_check138 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000E5C0)
end
end
end
local code_check139 = eeObj.ReadMem16(0x7D09F0)
if code_check139 == 0x5A00 then
local code_check140 = eeObj.ReadMem16(0x7D09F0)
if code_check140 == 0x5BFF then
local code_check141 = eeObj.ReadMem16(0x5E989E)
if code_check141 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000E3C0)
end
end
end
local code_check142 = eeObj.ReadMem16(0x7D09F0)
if code_check142 == 0x5C00 then
local code_check143 = eeObj.ReadMem16(0x7D09F0)
if code_check143 == 0x5DFF then
local code_check144 = eeObj.ReadMem16(0x5E989E)
if code_check144 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000E1C0)
end
end
end
local code_check145 = eeObj.ReadMem16(0x7D09F0)
if code_check145 == 0x5E00 then
local code_check146 = eeObj.ReadMem16(0x7D09F0)
if code_check146 == 0x5FFF then
local code_check147 = eeObj.ReadMem16(0x5E989E)
if code_check147 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000DFC0)
end
end
end
local code_check148 = eeObj.ReadMem16(0x7D09F0)
if code_check148 == 0x6000 then
local code_check149 = eeObj.ReadMem16(0x7D09F0)
if code_check149 == 0x61FF then
local code_check150 = eeObj.ReadMem16(0x5E989E)
if code_check150 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000DDC0)
end
end
end
local code_check151 = eeObj.ReadMem16(0x7D09F0)
if code_check151 == 0x6200 then
local code_check152 = eeObj.ReadMem16(0x7D09F0)
if code_check152 == 0x63FF then
local code_check153 = eeObj.ReadMem16(0x5E989E)
if code_check153 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000DBC0)
end
end
end
local code_check154 = eeObj.ReadMem16(0x7D09F0)
if code_check154 == 0x6400 then
local code_check155 = eeObj.ReadMem16(0x7D09F0)
if code_check155 == 0x65FF then
local code_check156 = eeObj.ReadMem16(0x5E989E)
if code_check156 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000D9C0)
end
end
end
local code_check157 = eeObj.ReadMem16(0x7D09F0)
if code_check157 == 0x6600 then
local code_check158 = eeObj.ReadMem16(0x7D09F0)
if code_check158 == 0x67FF then
local code_check159 = eeObj.ReadMem16(0x5E989E)
if code_check159 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000D7C0)
end
end
end
local code_check160 = eeObj.ReadMem16(0x7D09F0)
if code_check160 == 0x6800 then
local code_check161 = eeObj.ReadMem16(0x7D09F0)
if code_check161 == 0x69FF then
local code_check162 = eeObj.ReadMem16(0x5E989E)
if code_check162 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000D5C0)
end
end
end
local code_check163 = eeObj.ReadMem16(0x7D09F0)
if code_check163 == 0x6A00 then
local code_check164 = eeObj.ReadMem16(0x7D09F0)
if code_check164 == 0x6BFF then
local code_check165 = eeObj.ReadMem16(0x5E989E)
if code_check165 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000D3C0)
end
end
end
local code_check166 = eeObj.ReadMem16(0x7D09F0)
if code_check166 == 0x6C00 then
local code_check167 = eeObj.ReadMem16(0x7D09F0)
if code_check167 == 0x6DFF then
local code_check168 = eeObj.ReadMem16(0x5E989E)
if code_check168 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000D1C0)
end
end
end
local code_check169 = eeObj.ReadMem16(0x7D09F0)
if code_check169 == 0x6E00 then
local code_check170 = eeObj.ReadMem16(0x7D09F0)
if code_check170 == 0x6FFF then
local code_check171 = eeObj.ReadMem16(0x5E989E)
if code_check171 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000CFC0)
end
end
end
local code_check172 = eeObj.ReadMem16(0x7D09F0)
if code_check172 == 0x7000 then
local code_check173 = eeObj.ReadMem16(0x7D09F0)
if code_check173 == 0x71FF then
local code_check174 = eeObj.ReadMem16(0x5E989E)
if code_check174 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000CDC0)
end
end
end
local code_check175 = eeObj.ReadMem16(0x7D09F0)
if code_check175 == 0x7200 then
local code_check176 = eeObj.ReadMem16(0x7D09F0)
if code_check176 == 0x73FF then
local code_check177 = eeObj.ReadMem16(0x5E989E)
if code_check177 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000CBC0)
end
end
end
local code_check178 = eeObj.ReadMem16(0x7D09F0)
if code_check178 == 0x7400 then
local code_check179 = eeObj.ReadMem16(0x7D09F0)
if code_check179 == 0x75FF then
local code_check180 = eeObj.ReadMem16(0x5E989E)
if code_check180 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000C9C0)
end
end
end
local code_check181 = eeObj.ReadMem16(0x7D09F0)
if code_check181 == 0x7600 then
local code_check182 = eeObj.ReadMem16(0x7D09F0)
if code_check182 == 0x77FF then
local code_check183 = eeObj.ReadMem16(0x5E989E)
if code_check183 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000C7C0)
end
end
end
local code_check184 = eeObj.ReadMem16(0x7D09F0)
if code_check184 == 0x7800 then
local code_check185 = eeObj.ReadMem16(0x7D09F0)
if code_check185 == 0x79FF then
local code_check186 = eeObj.ReadMem16(0x5E989E)
if code_check186 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000C5C0)
end
end
end
local code_check187 = eeObj.ReadMem16(0x7D09F0)
if code_check187 == 0x7A00 then
local code_check188 = eeObj.ReadMem16(0x7D09F0)
if code_check188 == 0x7BFF then
local code_check189 = eeObj.ReadMem16(0x5E989E)
if code_check189 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000C3C0)
end
end
end
local code_check190 = eeObj.ReadMem16(0x7D09F0)
if code_check190 == 0x7C00 then
local code_check191 = eeObj.ReadMem16(0x7D09F0)
if code_check191 == 0x7DFF then
local code_check192 = eeObj.ReadMem16(0x5E989E)
if code_check192 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000C1C0)
end
end
end
local code_check193 = eeObj.ReadMem16(0x7D09F0)
if code_check193 == 0x7E00 then
local code_check194 = eeObj.ReadMem16(0x7D09F0)
if code_check194 == 0x7FFF then
local code_check195 = eeObj.ReadMem16(0x5E989E)
if code_check195 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000BFC0)
end
end
end
local code_check196 = eeObj.ReadMem16(0x7D09F0)
if code_check196 == 0x8000 then
local code_check197 = eeObj.ReadMem16(0x7D09F0)
if code_check197 == 0x81FF then
local code_check198 = eeObj.ReadMem16(0x5E989E)
if code_check198 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000BDC0)
end
end
end
local code_check199 = eeObj.ReadMem16(0x7D09F0)
if code_check199 == 0x8200 then
local code_check200 = eeObj.ReadMem16(0x7D09F0)
if code_check200 == 0x83FF then
local code_check201 = eeObj.ReadMem16(0x5E989E)
if code_check201 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000BBC0)
end
end
end
local code_check202 = eeObj.ReadMem16(0x7D09F0)
if code_check202 == 0x8400 then
local code_check203 = eeObj.ReadMem16(0x7D09F0)
if code_check203 == 0x85FF then
local code_check204 = eeObj.ReadMem16(0x5E989E)
if code_check204 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000B9C0)
end
end
end
local code_check205 = eeObj.ReadMem16(0x7D09F0)
if code_check205 == 0x8600 then
local code_check206 = eeObj.ReadMem16(0x7D09F0)
if code_check206 == 0x87FF then
local code_check207 = eeObj.ReadMem16(0x5E989E)
if code_check207 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000B7C0)
end
end
end
local code_check208 = eeObj.ReadMem16(0x7D09F0)
if code_check208 == 0x8800 then
local code_check209 = eeObj.ReadMem16(0x7D09F0)
if code_check209 == 0x89FF then
local code_check210 = eeObj.ReadMem16(0x5E989E)
if code_check210 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000B5C0)
end
end
end
local code_check211 = eeObj.ReadMem16(0x7D09F0)
if code_check211 == 0x8A00 then
local code_check212 = eeObj.ReadMem16(0x7D09F0)
if code_check212 == 0x8BFF then
local code_check213 = eeObj.ReadMem16(0x5E989E)
if code_check213 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000B3C0)
end
end
end
local code_check214 = eeObj.ReadMem16(0x7D09F0)
if code_check214 == 0x8C00 then
local code_check215 = eeObj.ReadMem16(0x7D09F0)
if code_check215 == 0x8DFF then
local code_check216 = eeObj.ReadMem16(0x5E989E)
if code_check216 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000B1C0)
end
end
end
local code_check217 = eeObj.ReadMem16(0x7D09F0)
if code_check217 == 0x8E00 then
local code_check218 = eeObj.ReadMem16(0x7D09F0)
if code_check218 == 0x8FFF then
local code_check219 = eeObj.ReadMem16(0x5E989E)
if code_check219 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000AFC0)
end
end
end
local code_check220 = eeObj.ReadMem16(0x7D09F0)
if code_check220 == 0x9000 then
local code_check221 = eeObj.ReadMem16(0x7D09F0)
if code_check221 == 0x91FF then
local code_check222 = eeObj.ReadMem16(0x5E989E)
if code_check222 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000ADC0)
end
end
end
local code_check223 = eeObj.ReadMem16(0x7D09F0)
if code_check223 == 0x9200 then
local code_check224 = eeObj.ReadMem16(0x7D09F0)
if code_check224 == 0x93FF then
local code_check225 = eeObj.ReadMem16(0x5E989E)
if code_check225 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000ABC0)
end
end
end
local code_check226 = eeObj.ReadMem16(0x7D09F0)
if code_check226 == 0x9400 then
local code_check227 = eeObj.ReadMem16(0x7D09F0)
if code_check227 == 0x95FF then
local code_check228 = eeObj.ReadMem16(0x5E989E)
if code_check228 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000A9C0)
end
end
end
local code_check229 = eeObj.ReadMem16(0x7D09F0)
if code_check229 == 0x9600 then
local code_check230 = eeObj.ReadMem16(0x7D09F0)
if code_check230 == 0x97FF then
local code_check231 = eeObj.ReadMem16(0x5E989E)
if code_check231 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000A7C0)
end
end
end
local code_check232 = eeObj.ReadMem16(0x7D09F0)
if code_check232 == 0x9800 then
local code_check233 = eeObj.ReadMem16(0x7D09F0)
if code_check233 == 0x99FF then
local code_check234 = eeObj.ReadMem16(0x5E989E)
if code_check234 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000A5C0)
end
end
end
local code_check235 = eeObj.ReadMem16(0x7D09F0)
if code_check235 == 0x9A00 then
local code_check236 = eeObj.ReadMem16(0x7D09F0)
if code_check236 == 0x9BFF then
local code_check237 = eeObj.ReadMem16(0x5E989E)
if code_check237 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000A3C0)
end
end
end
local code_check238 = eeObj.ReadMem16(0x7D09F0)
if code_check238 == 0x9C00 then
local code_check239 = eeObj.ReadMem16(0x7D09F0)
if code_check239 == 0x9DFF then
local code_check240 = eeObj.ReadMem16(0x5E989E)
if code_check240 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x0000A1C0)
end
end
end
local code_check241 = eeObj.ReadMem16(0x7D09F0)
if code_check241 == 0x9E00 then
local code_check242 = eeObj.ReadMem16(0x7D09F0)
if code_check242 == 0x9FFF then
local code_check243 = eeObj.ReadMem16(0x5E989E)
if code_check243 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00009FC0)
end
end
end
local code_check244 = eeObj.ReadMem16(0x7D09F0)
if code_check244 == 0xA000 then
local code_check245 = eeObj.ReadMem16(0x7D09F0)
if code_check245 == 0xA1FF then
local code_check246 = eeObj.ReadMem16(0x5E989E)
if code_check246 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00009DC0)
end
end
end
local code_check247 = eeObj.ReadMem16(0x7D09F0)
if code_check247 == 0xA200 then
local code_check248 = eeObj.ReadMem16(0x7D09F0)
if code_check248 == 0xA3FF then
local code_check249 = eeObj.ReadMem16(0x5E989E)
if code_check249 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00009BC0)
end
end
end
local code_check250 = eeObj.ReadMem16(0x7D09F0)
if code_check250 == 0xA400 then
local code_check251 = eeObj.ReadMem16(0x7D09F0)
if code_check251 == 0xA5FF then
local code_check252 = eeObj.ReadMem16(0x5E989E)
if code_check252 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000099C0)
end
end
end
local code_check253 = eeObj.ReadMem16(0x7D09F0)
if code_check253 == 0xA600 then
local code_check254 = eeObj.ReadMem16(0x7D09F0)
if code_check254 == 0xA7FF then
local code_check255 = eeObj.ReadMem16(0x5E989E)
if code_check255 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000097C0)
end
end
end
local code_check256 = eeObj.ReadMem16(0x7D09F0)
if code_check256 == 0xA800 then
local code_check257 = eeObj.ReadMem16(0x7D09F0)
if code_check257 == 0xA9FF then
local code_check258 = eeObj.ReadMem16(0x5E989E)
if code_check258 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000095C0)
end
end
end
local code_check259 = eeObj.ReadMem16(0x7D09F0)
if code_check259 == 0xAA00 then
local code_check260 = eeObj.ReadMem16(0x7D09F0)
if code_check260 == 0xABFF then
local code_check261 = eeObj.ReadMem16(0x5E989E)
if code_check261 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000093C0)
end
end
end
local code_check262 = eeObj.ReadMem16(0x7D09F0)
if code_check262 == 0xAC00 then
local code_check263 = eeObj.ReadMem16(0x7D09F0)
if code_check263 == 0xADFF then
local code_check264 = eeObj.ReadMem16(0x5E989E)
if code_check264 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000091C0)
end
end
end
local code_check265 = eeObj.ReadMem16(0x7D09F0)
if code_check265 == 0xAE00 then
local code_check266 = eeObj.ReadMem16(0x7D09F0)
if code_check266 == 0xAFFF then
local code_check267 = eeObj.ReadMem16(0x5E989E)
if code_check267 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00008FC0)
end
end
end
local code_check268 = eeObj.ReadMem16(0x7D09F0)
if code_check268 == 0xB000 then
local code_check269 = eeObj.ReadMem16(0x7D09F0)
if code_check269 == 0xB1FF then
local code_check270 = eeObj.ReadMem16(0x5E989E)
if code_check270 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00008DC0)
end
end
end
local code_check271 = eeObj.ReadMem16(0x7D09F0)
if code_check271 == 0xB200 then
local code_check272 = eeObj.ReadMem16(0x7D09F0)
if code_check272 == 0xB3FF then
local code_check273 = eeObj.ReadMem16(0x5E989E)
if code_check273 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00008BC0)
end
end
end
local code_check274 = eeObj.ReadMem16(0x7D09F0)
if code_check274 == 0xB400 then
local code_check275 = eeObj.ReadMem16(0x7D09F0)
if code_check275 == 0xB5FF then
local code_check276 = eeObj.ReadMem16(0x5E989E)
if code_check276 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000089C0)
end
end
end
local code_check277 = eeObj.ReadMem16(0x7D09F0)
if code_check277 == 0xB600 then
local code_check278 = eeObj.ReadMem16(0x7D09F0)
if code_check278 == 0xB7FF then
local code_check279 = eeObj.ReadMem16(0x5E989E)
if code_check279 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000087C0)
end
end
end
local code_check280 = eeObj.ReadMem16(0x7D09F0)
if code_check280 == 0xB800 then
local code_check281 = eeObj.ReadMem16(0x7D09F0)
if code_check281 == 0xB9FF then
local code_check282 = eeObj.ReadMem16(0x5E989E)
if code_check282 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000085C0)
end
end
end
local code_check283 = eeObj.ReadMem16(0x7D09F0)
if code_check283 == 0xBA00 then
local code_check284 = eeObj.ReadMem16(0x7D09F0)
if code_check284 == 0xBBFF then
local code_check285 = eeObj.ReadMem16(0x5E989E)
if code_check285 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000083C0)
end
end
end
local code_check286 = eeObj.ReadMem16(0x7D09F0)
if code_check286 == 0xBC00 then
local code_check287 = eeObj.ReadMem16(0x7D09F0)
if code_check287 == 0xBDFF then
local code_check288 = eeObj.ReadMem16(0x5E989E)
if code_check288 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000081C0)
end
end
end
local code_check289 = eeObj.ReadMem16(0x7D09F0)
if code_check289 == 0xBE00 then
local code_check290 = eeObj.ReadMem16(0x7D09F0)
if code_check290 == 0xBFFF then
local code_check291 = eeObj.ReadMem16(0x5E989E)
if code_check291 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00007FC0)
end
end
end
local code_check292 = eeObj.ReadMem16(0x7D09F0)
if code_check292 == 0xC000 then
local code_check293 = eeObj.ReadMem16(0x7D09F0)
if code_check293 == 0xC1FF then
local code_check294 = eeObj.ReadMem16(0x5E989E)
if code_check294 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00007DC0)
end
end
end
local code_check295 = eeObj.ReadMem16(0x7D09F0)
if code_check295 == 0xC200 then
local code_check296 = eeObj.ReadMem16(0x7D09F0)
if code_check296 == 0xC3FF then
local code_check297 = eeObj.ReadMem16(0x5E989E)
if code_check297 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00007BC0)
end
end
end
local code_check298 = eeObj.ReadMem16(0x7D09F0)
if code_check298 == 0xC400 then
local code_check299 = eeObj.ReadMem16(0x7D09F0)
if code_check299 == 0xC5FF then
local code_check300 = eeObj.ReadMem16(0x5E989E)
if code_check300 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000079C0)
end
end
end
local code_check301 = eeObj.ReadMem16(0x7D09F0)
if code_check301 == 0xC600 then
local code_check302 = eeObj.ReadMem16(0x7D09F0)
if code_check302 == 0xC7FF then
local code_check303 = eeObj.ReadMem16(0x5E989E)
if code_check303 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000077C0)
end
end
end
local code_check304 = eeObj.ReadMem16(0x7D09F0)
if code_check304 == 0xC800 then
local code_check305 = eeObj.ReadMem16(0x7D09F0)
if code_check305 == 0xC9FF then
local code_check306 = eeObj.ReadMem16(0x5E989E)
if code_check306 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000075C0)
end
end
end
local code_check307 = eeObj.ReadMem16(0x7D09F0)
if code_check307 == 0xCA00 then
local code_check308 = eeObj.ReadMem16(0x7D09F0)
if code_check308 == 0xCBFF then
local code_check309 = eeObj.ReadMem16(0x5E989E)
if code_check309 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000073C0)
end
end
end
local code_check310 = eeObj.ReadMem16(0x7D09F0)
if code_check310 == 0xCC00 then
local code_check311 = eeObj.ReadMem16(0x7D09F0)
if code_check311 == 0xCDFF then
local code_check312 = eeObj.ReadMem16(0x5E989E)
if code_check312 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000071C0)
end
end
end
local code_check313 = eeObj.ReadMem16(0x7D09F0)
if code_check313 == 0xCE00 then
local code_check314 = eeObj.ReadMem16(0x7D09F0)
if code_check314 == 0xCFFF then
local code_check315 = eeObj.ReadMem16(0x5E989E)
if code_check315 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00006FC0)
end
end
end
local code_check316 = eeObj.ReadMem16(0x7D09F0)
if code_check316 == 0xD000 then
local code_check317 = eeObj.ReadMem16(0x7D09F0)
if code_check317 == 0xD1FF then
local code_check318 = eeObj.ReadMem16(0x5E989E)
if code_check318 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00006DC0)
end
end
end
local code_check319 = eeObj.ReadMem16(0x7D09F0)
if code_check319 == 0xD200 then
local code_check320 = eeObj.ReadMem16(0x7D09F0)
if code_check320 == 0xD3FF then
local code_check321 = eeObj.ReadMem16(0x5E989E)
if code_check321 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00006BC0)
end
end
end
local code_check322 = eeObj.ReadMem16(0x7D09F0)
if code_check322 == 0xD400 then
local code_check323 = eeObj.ReadMem16(0x7D09F0)
if code_check323 == 0xD5FF then
local code_check324 = eeObj.ReadMem16(0x5E989E)
if code_check324 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000069C0)
end
end
end
local code_check325 = eeObj.ReadMem16(0x7D09F0)
if code_check325 == 0xD600 then
local code_check326 = eeObj.ReadMem16(0x7D09F0)
if code_check326 == 0xD7FF then
local code_check327 = eeObj.ReadMem16(0x5E989E)
if code_check327 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000067C0)
end
end
end
local code_check328 = eeObj.ReadMem16(0x7D09F0)
if code_check328 == 0xD800 then
local code_check329 = eeObj.ReadMem16(0x7D09F0)
if code_check329 == 0xD9FF then
local code_check330 = eeObj.ReadMem16(0x5E989E)
if code_check330 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000065C0)
end
end
end
local code_check331 = eeObj.ReadMem16(0x7D09F0)
if code_check331 == 0xDA00 then
local code_check332 = eeObj.ReadMem16(0x7D09F0)
if code_check332 == 0xDBFF then
local code_check333 = eeObj.ReadMem16(0x5E989E)
if code_check333 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000063C0)
end
end
end
local code_check334 = eeObj.ReadMem16(0x7D09F0)
if code_check334 == 0xDC00 then
local code_check335 = eeObj.ReadMem16(0x7D09F0)
if code_check335 == 0xDDFF then
local code_check336 = eeObj.ReadMem16(0x5E989E)
if code_check336 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000061C0)
end
end
end
local code_check337 = eeObj.ReadMem16(0x7D09F0)
if code_check337 == 0xDE00 then
local code_check338 = eeObj.ReadMem16(0x7D09F0)
if code_check338 == 0xDFFF then
local code_check339 = eeObj.ReadMem16(0x5E989E)
if code_check339 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00005FC0)
end
end
end
local code_check340 = eeObj.ReadMem16(0x7D09F0)
if code_check340 == 0xE000 then
local code_check341 = eeObj.ReadMem16(0x7D09F0)
if code_check341 == 0xE1FF then
local code_check342 = eeObj.ReadMem16(0x5E989E)
if code_check342 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00005DC0)
end
end
end
local code_check343 = eeObj.ReadMem16(0x7D09F0)
if code_check343 == 0xE200 then
local code_check344 = eeObj.ReadMem16(0x7D09F0)
if code_check344 == 0xE3FF then
local code_check345 = eeObj.ReadMem16(0x5E989E)
if code_check345 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00005BC0)
end
end
end
local code_check346 = eeObj.ReadMem16(0x7D09F0)
if code_check346 == 0xE400 then
local code_check347 = eeObj.ReadMem16(0x7D09F0)
if code_check347 == 0xE5FF then
local code_check348 = eeObj.ReadMem16(0x5E989E)
if code_check348 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000059C0)
end
end
end
local code_check349 = eeObj.ReadMem16(0x7D09F0)
if code_check349 == 0xE600 then
local code_check350 = eeObj.ReadMem16(0x7D09F0)
if code_check350 == 0xE7FF then
local code_check351 = eeObj.ReadMem16(0x5E989E)
if code_check351 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000057C0)
end
end
end
local code_check352 = eeObj.ReadMem16(0x7D09F0)
if code_check352 == 0xE800 then
local code_check353 = eeObj.ReadMem16(0x7D09F0)
if code_check353 == 0xE9FF then
local code_check354 = eeObj.ReadMem16(0x5E989E)
if code_check354 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000055C0)
end
end
end
local code_check355 = eeObj.ReadMem16(0x7D09F0)
if code_check355 == 0xEA00 then
local code_check356 = eeObj.ReadMem16(0x7D09F0)
if code_check356 == 0xEBFF then
local code_check357 = eeObj.ReadMem16(0x5E989E)
if code_check357 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000053C0)
end
end
end
local code_check358 = eeObj.ReadMem16(0x7D09F0)
if code_check358 == 0xEC00 then
local code_check359 = eeObj.ReadMem16(0x7D09F0)
if code_check359 == 0xEDFF then
local code_check360 = eeObj.ReadMem16(0x5E989E)
if code_check360 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000051C0)
end
end
end
local code_check361 = eeObj.ReadMem16(0x7D09F0)
if code_check361 == 0xEE00 then
local code_check362 = eeObj.ReadMem16(0x7D09F0)
if code_check362 == 0xEFFF then
local code_check363 = eeObj.ReadMem16(0x5E989E)
if code_check363 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00004FC0)
end
end
end
local code_check364 = eeObj.ReadMem16(0x7D09F0)
if code_check364 == 0xF000 then
local code_check365 = eeObj.ReadMem16(0x7D09F0)
if code_check365 == 0xF1FF then
local code_check366 = eeObj.ReadMem16(0x5E989E)
if code_check366 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00004DC0)
end
end
end
local code_check367 = eeObj.ReadMem16(0x7D09F0)
if code_check367 == 0xF200 then
local code_check368 = eeObj.ReadMem16(0x7D09F0)
if code_check368 == 0xF3FF then
local code_check369 = eeObj.ReadMem16(0x5E989E)
if code_check369 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00004BC0)
end
end
end
local code_check370 = eeObj.ReadMem16(0x7D09F0)
if code_check370 == 0xF400 then
local code_check371 = eeObj.ReadMem16(0x7D09F0)
if code_check371 == 0xF5FF then
local code_check372 = eeObj.ReadMem16(0x5E989E)
if code_check372 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000049C0)
end
end
end
local code_check373 = eeObj.ReadMem16(0x7D09F0)
if code_check373 == 0xF600 then
local code_check374 = eeObj.ReadMem16(0x7D09F0)
if code_check374 == 0xF7FF then
local code_check375 = eeObj.ReadMem16(0x5E989E)
if code_check375 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000047C0)
end
end
end
local code_check376 = eeObj.ReadMem16(0x7D09F0)
if code_check376 == 0xF800 then
local code_check377 = eeObj.ReadMem16(0x7D09F0)
if code_check377 == 0xF9FF then
local code_check378 = eeObj.ReadMem16(0x5E989E)
if code_check378 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000045C0)
end
end
end
local code_check379 = eeObj.ReadMem16(0x7D09F0)
if code_check379 == 0xFA00 then
local code_check380 = eeObj.ReadMem16(0x7D09F0)
if code_check380 == 0xFBFF then
local code_check381 = eeObj.ReadMem16(0x5E989E)
if code_check381 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000043C0)
end
end
end
local code_check382 = eeObj.ReadMem16(0x7D09F0)
if code_check382 == 0xFC00 then
local code_check383 = eeObj.ReadMem16(0x7D09F0)
if code_check383 == 0xFDFF then
local code_check384 = eeObj.ReadMem16(0x5E989E)
if code_check384 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x000041C0)
end
end
end
local code_check385 = eeObj.ReadMem16(0x7D09F0)
if code_check385 == 0xFE00 then
local code_check386 = eeObj.ReadMem16(0x7D09F0)
if code_check386 == 0xFFFF then
local code_check387 = eeObj.ReadMem16(0x5E989E)
if code_check387 == 0x0000 then
eeObj.WriteMem32(0x105E9478,0x00003FC0)
end
end
end

end

emuObj.AddVsyncHook(firstperson)

-- TEST ((40800-CamRot)+40800)%65536=PlayerRot
--CamRot   = 207D09F0
--PlayerRot    = 205E9478
--Stablizer    = 205E989E
-- > Ennndddd 3aaaaaaa
-- < Daaaaaaa 0020dddd
-- = 1aaaaaaa 0000dddd
--eeObj.WriteMem32(0xE002xxxx,0x307D09F0)
--eeObj.WriteMem32(0xD07D09F0,0x0020zzzz)
--eeObj.WriteMem32(0x105E9478,0x0000yyyy)

--]]

Much better framerate! FPS code does not work yet, but does not crash emu when enabled. If I get it working(or someone else), I am going to hot-key it to be able to be enabled and disabled during gameplay.
 
Last edited:
Flat Out 1 has the same problem with the camera of Flat Out2, in the compatibility list it says there is a setting to fix this, but I can't find it, I tried the Ps3 settings and it didn't work. Does anyone have a configuration to fix the flat out1 camera?
 
@Stayhye have you tested the games Stuntman and Driv3r on these ps4 emulators ? this 2 games have problems with A.I in certain missions making impossible to complete because they crash at the wall on PS3 and PCSX2
 
Hey, everyone. I have a pretty basic question but I'll add some background after asking.

Question:
Do we know of settings that definitely add Bilinear filtering? If so, does it have to be used with a certain emulator and/or in LUA only?

I see the option in PS2 FPKG 0.6 but it always crashes the game. I see the GS-Bilinear=1 option for TXT but that does nothing or crashes. I seem to have found that some games have it via LUA (texture mode2?) but I have zero experience with LUA and don't even know kf that's true Bilinear Filtering. Thanks.


BACKGROUND:
So I finally narrowed down the issue I'm having with about a dozen PS2 titles where adding Mip Mapping creates a series of blocky textures that weren't present before MipMapping is added.

I used old versions of PCXS2 to recreate the problem and I can recreate it perfectly. The fix is to add Bilinear filtering. In the current and older versions of PCSX2, the original issue exists in the same games (graphically noisy playing field). It is de-noised by adding Mip Mapping but then MipMapping presents VERY blocks textures. This is then fixed by adding Bilinear Filtering, in both hardware and software mode, both OpenGL and DX.

My issue on PS4 is that whenever I try to add bilinear filtering to a TXT config file it crashes the title upon boot. I'm not sure if I'm doing it right or if it can be done with a setting we know.


Thanks for any help and this can get a lot of sports titles working perfectly. I know many may not care due to being sports vames but I'm aware of a lot of people on another website's forum that would love to get this sorted. Further, knocking this many titles into the list of "Fully Playable With No Glitches" feels good. Thanks.

FYI, if you'd like to take a look the test game is NCAA Football 11 (SLUS-21932) but this applies to all EA Sports games on PS2 that use the same engine. I posted this issue a long time ago but my PS4 was damaged and I only recently got another.

What to look for if you test:
In-game, you'll see the field looks like a sparkling mess and "plays" cannot be seen properly. Full clamping fixes the plays and Mipmap smooths the field to how it looks on PS2. However, after adding Mipmap, notice that about half the textures are blocky (stadium shadows, field, clouds in sky, snow, menus, etc).


Thanks.
 
SLUS-20901
Code:
--fpu-accurate-range=0x1ae330,0x1ae3a4

SLES-52753
Code:
--fpu-accurate-range=0x19f350,0x19f3c4

Awesome work! I'm not nearly as good as you at this but I have fixed a few games and this was an issue I had been trying to solve myself. It was back on my list as I just got another PS4 (used but good). Once I can knock out these dreaded EA games I posted about above I'll move on to a different title now that this is good.
 
My issue on PS4 is that whenever I try to add bilinear filtering to a TXT config file it crashes the title upon boot. I'm not sure if I'm doing it right or if it can be done with a setting we know.

Make sure that your emu supports the given command. The easiest way to determine command compatibility per emu (and avoid crashes on boot) is to load the corresponding eboot.bin in an (hex) editor. Enter and search your command (e.g. --gs-force-bilinear) as string. When there is a match you are good to go. If not your FPKG will most likely crash on boot.
 
Make sure that your emu supports the given command. The easiest way to determine command compatibility per emu (and avoid crashes on boot) is to load the corresponding eboot.bin in an (hex) editor. Enter and search your command (e.g. --gs-force-bilinear) as string. When there is a match you are good to go. If not your FPKG will most likely crash on boot.

Awesome and I'll try that. Thanks for the reply as I didn't know you could do that. I was messing around some more after that post (config and LUA) and had more crashes but I was never sure if it was the emu or my settings. Now I'll know so thank you.

I'm missing a few emulator files, too. I need the Psychonauts and Eternal Ring V2 emus and it seems those support it at least via LUA.
 
Last edited by a moderator:

Similar threads

Back
Top