-- Tekken 5 NTSC
-- Widescreen and No interlace
-- emu used=rogue v1
apiRequest(0.1)
local gpr = require("ee-gpr-alias")
local emuObj = getEmuObject()
local eeObj = getEEObject()
local patcher = function()
eeObj.WriteMem32(0x0032b448,0x3c013f40) -- both fov+
--applies both fov+ only for widescreen mode
eeObj.WriteMem32(0x0032b478,0x3c010015)
eeObj.WriteMem32(0x0032b47c,0xc62dd11c)
eeObj.WriteMem32(0x0032b49c,0x46016b42)
eeObj.WriteMem32(0x0032b4a0,0x46010843)
eeObj.WriteMem32(0x0032b4b8,0x460d1083)
eeObj.WriteMem32(0x0032b4bC,0x460d0843)
--effects fix
eeObj.WriteMem32(0x00257434,0x46161083)
eeObj.WriteMem32(0x00257488,0x46160843)
eeObj.WriteMem32(0x002574e0,0x46160843)
eeObj.WriteMem32(0x00257538,0x46160843)
local code_check1 = eeObj.ReadMem16(0x15D11C)
if code_check1 == 0x8e38 then
eeObj.WriteMem32(0x20257764,0x10000008)
end
local code_check2 = eeObj.ReadMem16(0x15D11C)
if code_check2 == 0xaaaa then
eeObj.WriteMem32(0x20257764,0x45020008)
end
--render fix
eeObj.WriteMem32(0x00222484,0x3c013f2b)
eeObj.WriteMem32(0x00222494,0x44810000)
eeObj.WriteMem32(0x00222498,0x46006302)
--Devil Within Mode by Arapapa
local code_check3 = eeObj.ReadMem16(0x100000)
if code_check3 == 0xfff0 then
eeObj.WriteMem32(0x2041E82C,0x3f400000) --Zoom
eeObj.WriteMem32(0x202ACED8,0x3FDDA51A) --Y-Fov
end
--no interlace for starblade
local code_check4 = eeObj.ReadMem16(0x2F5BD0)
if code_check4 == 0x0104 then
eeObj.WriteMem32(0x202F5BD0,0x34070003)
local code_check5 = eeObj.ReadMem16(0x187FB0)
if code_check5 == 0x0008 then
eeObj.WriteMem32(0x20187FB0,0x34030001)
eeObj.WriteMem32(0x20187FC4,0x34021078)
end
end
--[[
--Workaround
eeObj.WriteMem32(0x2010207C,0x3c050000)
eeObj.WriteMem32(0x20102084,0x3c060050)
eeObj.WriteMem32(0x2010208C,0x3c070001)
eeObj.WriteMem32(0x20102EAC,0x3C0701E0)
--]]
--Intro Mini Game
local code_check6 = eeObj.ReadMem16(0xFFECF4)
if code_check6 == 0x0001 then
eeObj.WriteMem32(0x2010230C,0x34029078)
end
--Framebuffer - Progressive - No interleacing - No black lines HW mode
local code_check7 = eeObj.ReadMem16(0xFFEF20)
if code_check7 == 0x8870 then
eeObj.WriteMem32(0x2010230C,0x34029400)
eeObj.WriteMem32(0x203EF450,0x00000001) -- Official Progressive mode
end
-- Devil W. Game
local code_check8 = eeObj.ReadMem16(0xFFEF20)
if code_check8 == 0x2c70 then
eeObj.WriteMem32(0x2026033C,0x34029400)
end
-- Tek 1 sdtv mode 240p
local code_check9 = eeObj.ReadMem16(0xFFEF20)
if code_check9 == 0x3df0 then
eeObj.WriteMem32(0x2014F454,0x3c050000)
eeObj.WriteMem32(0x2014F45C,0x3C060050)
eeObj.WriteMem32(0x2014F464,0x3c070001)
end
-- Tek 2 sdtv mode 240p
local code_check10 = eeObj.ReadMem16(0xFFEF20)
if code_check10 == 0x6570 then
eeObj.WriteMem32(0x2015E494,0x3c050000)
eeObj.WriteMem32(0x2015E49C,0x3C060050)
eeObj.WriteMem32(0x2015E4A4,0x3c070001)
end
-- Tek 3 sdtv mode 480p extended
local code_check11 = eeObj.ReadMem16(0xFFEF20)
if code_check11 == 0xF370 then
eeObj.WriteMem32(0x201E4F54,0x3c050000)
eeObj.WriteMem32(0x201E4F5C,0x3C060050)
eeObj.WriteMem32(0x201E4F64,0x3c070001)
end
end
emuObj.AddVsyncHook(patcher)