Will do, really appreciate it.in my list to update codes for pcsx2 then test in ps4 emu, wait some days...
Will do, really appreciate it.in my list to update codes for pcsx2 then test in ps4 emu, wait some days...
easy, in the list compatibility ps2 emu you got names games qith reference ps2 classics oficial in blue color.Hello, I wanna ask if there's a list with the games that contain the ps2 emulators so i can track some copies of them myself
https://en.wikipedia.org/wiki/List_of_PlayStation_2_games_for_PlayStation_4Hello, I wanna ask if there's a list with the games that contain the ps2 emulators so i can track some copies of them myself
You need to convert NTSC's offsets to PAL's.Hello, how can I make Scarface pal work on the ps4, I looked on the devwiki but I can't find it, and on the internet too. I have graphic bugs when I convert it ps4 to ps2, and I find it nowhere to take as its direct ready for ps4 Thank you
Sorry I don't understand how it works yet, I'm just a simple user, I hack a little, but I don't know and I would really like to have the Scarface game in French version without the bugs, too bad. Then there is the US version but it's not the same. ThanksYou need to convert NTSC's offsets to PAL's.
--host-display-mode=16:9
--host-vsync=1
--gs-optimize=60fps
--cdvd-sector-read-cycles=2000
--ps2-lang=system
--gs-progressive=1
--gs-motion-factor=50
--vu0-no-clamping=0
--vu1-no-clamping=0
--gs-ignore-rect-correction=1
-- Total Overdose (E)(SLES-53492)
-- emu used=ADK
apiRequest(1.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
--Widescreen hack 16:9
--00 00 80 3F 83 F9 22 3F DB 0F C9 3F 00 00 00 BF
eeObj.WriteMem32(0x20692A2C,0x3F47AE14) -- Zoom
--00 00 80 3F 00 00 00 00 00 00 00 00 2F 00 00 00
eeObj.WriteMem32(0x206C64C4,0x3F400000) -- Vert fov
end
emuObj.AddVsyncHook(patcher)
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=2 } )
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", {psm=0} )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )
The --fpjk-muldiv-range command is exclusive to Bully's emulator. That is why it keeps crashing. I also believe that it is the one that fixes "Hattrick vs Galloway", however, I could be wrong.The psdev config for Bully or Canis Canem Edit is a complete mess, it simply crashes the game. I've looked it up after some trial and error and I'm pretty sure the command causing that was the "fpjk-muldiv-range=0x3fa5c0,0x3fa5c0", I'm not sure what this does but getting rid of it makes the game launch. Anyway, then it says it works fine with Jak or Rogue emus... it doesn't. You have to use Bully v2 to avoid the graphical glitches along with some other commands. I've cleaned up the "official" CLI config of useless commands that don't help in anything or could make the game less stable. By the way, the LUA works for both SLES-53561 and SLUS-21269 even though the wiki says it's only for SLES.
CLI:
--fpu-rsqrt-fast-estimate=0
--vu1-opt-vf00=2
--vu1-di-bits=0
--vu1-mpg-cycles=2500
--ee-hook=0x001f3ef4,FastForwardClock
--gs-flush-ad-xyz=SafeZWrite
LUA:
apiRequest(0.1)
-- Performance fix
-- emu used=BULLY V2
local emuObj = getEmuObject()
local thresholdArea = 600
emuObj.SetGsTitleFix( "ignoreUpRender", thresholdArea , {alpha=0x80000044 , zmsk=1 , tw=4, th=4 } )
Game should be perfect now. I didn't see any graphical or audio bugs. Performance is still a bit crap but it was like that on the PS2 Classic version and original hardware. I believe the EE hook command is the one that fixes the famous "Hattrick vs Galloway" bug but it takes so long to get there. If someone wants to test and let me know I will appreciate it. A custom patch could probably be done if needed.
The --fpjk-muldiv-range command is exclusive to Bully's emulator. That is why it keeps crashing. I also believe that it is the one that fixes "Hattrick vs Galloway", however, I could be wrong.
--fpu-accurate-mul-fast=1
--fpu-accurate-muldiv-range=0x3f9bb0,0x3f9bb0
--vu1-opt-vf00=2
--vu1-di-bits=0
--vu1-injection=1
--gs-flush-ad-xyz=SafeZWrite
--ee-hook=0x001f3ac4,FastForwardClock
--gs-use-deferred-l2h=0
--vu1-injection=1
--vu1-mpg-cycles=2500
--fpu-rsqrt-fast-estimate=0
--safe-area-min=1.0
-- Lua 5.3
-- Title: Bully (USA) SLUS-21269
-- Bully (Japan) SLPS-25879
-- Bully (Europe) SLES-53561
-- Features version 1.00
-- Author: David Haywood
-- Date: Novemeber 16, 2015
require( "ee-gpr-alias" ) -- you can access EE GPR by alias (gpr.a0 / gpr["a0"])
apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory.
-- obtain necessary objects.
local eeObj = getEEObject()
local emuObj = getEmuObject()
local trophyObj = getTrophyObject()
local dmaObj = getDmaObject()
-- load configuration if exist
local SaveData = emuObj.LoadConfig(0)
-- 0 for US
-- 1 for Japan
-- 2 for Europe
local Region = 0
local SetAspectFunc = function()
local a0 = eeObj.GetGPR(gpr.a0)
a0 = a0 & 1
if a0 == 1 then
print( string.format("********* Request WIDE SCREEN mode **************" ) )
emuObj.SetDisplayAspectWide()
else
print( string.format("********* Request 4:3 mode **************" ) )
emuObj.SetDisplayAspectNormal()
end
end
if Region == 2 then
SetAspectHook = eeObj.AddHook(0x04aa7a0,0x27bdfff0, SetAspectFunc)
elseif Region == 0 then
SetAspectHook = eeObj.AddHook(0x04a9d10,0x27bdfff0, SetAspectFunc)
elseif Region == 1 then
SetAspectHook = eeObj.AddHook(0x04ab6c0,0x27bdfff0, SetAspectFunc)
end
--[[ clip from Settings::Initialize()
can't we detect native aspect of the system with sceScfGetAspect, rather than forcing it to widescreen by default?
0020c648 (0c14fb46:F...) jal 0x0053ed18 -- 0053ED18 00000040 .text sceScfGetAspect (libscf.a libscf.o/ )
0020c64c (00000000:....) nop
0020c650 (24030002:...$) li $v1,2
0020c654 (14430005:..C.) bne $v0,$v1,0x0020c66c
0020c658 (00000000:....) nop
]]
local DefaultAspectFunc = function()
local v0 = eeObj.GetGPR(gpr.v0)
v0 = 2
eeObj.SetGPR(gpr.v0, v0)
emuObj.SetDisplayAspectWide()
end
if Region == 2 then
SetAspectHook = eeObj.AddHook(0x020c650,0x24030002, DefaultAspectFunc)
elseif Region == 0 then
SetAspectHook = eeObj.AddHook(0x020c080,0x24030002, DefaultAspectFunc)
elseif Region == 1 then
SetAspectHook = eeObj.AddHook(0x020c780,0x24030002, DefaultAspectFunc)
end
--[[
004AA7A0 000000A4 .text FEOptions::SetAspectRatio(bool) (FEOptions.cpp)
004aa7a0 (27bdfff0:...') addiu $sp,$sp,-0x10
004aa7a4 (3c02006c:l..<) lui $v0,0x006c
004aa7a8 (ffbf0000:....) sd $ra,0($sp)
004aa7ac (10800005:....) beqz $a0,0x004aa7c4
004aa7b0 (a0447c9e:.|D.) sb $a0,0x7c9e($v0)
004aa7b4 (3c023f40:@?.<) lui $v0,0x3f40
004aa7b8 (44820000:...D) mtc1 $v0,$fpr0
004aa7bc (10000003:....) j 0x004aa7cc
004aa7c0 (00000000:....) nop
004aa7c4 (3c023f80:.?.<) lui $v0,0x3f80
004aa7c8 (44820000:...D) mtc1 $v0,$fpr0
004aa7cc (50800005:...P) beql $a0,$zero,0x004aa7e4
004aa7d0 (3c023f80:.?.<) lui $v0,0x3f80
004aa7d4 (3c023f40:@?.<) lui $v0,0x3f40
004aa7d8 (44821000:...D) mtc1 $v0,$fpr2
004aa7dc (10000003:....) j 0x004aa7ec
004aa7e0 (3c023f80:.?.<) lui $v0,0x3f80
004aa7e4 (44821000:...D) mtc1 $v0,$fpr2
004aa7e8 (3c023f80:.?.<) lui $v0,0x3f80
004aa7ec (e7809240:@...) swc1 $fpr0,-0x6dc0($gp)
004aa7f0 (44820800:...D) mtc1 $v0,$fpr1
004aa7f4 (00000000:....) nop
004aa7f8 (46000803:...F) div.s $fpr0,$fpr1,$fpr0
004aa7fc (e7809248:H...) swc1 $fpr0,-0x6db8($gp)
004aa800 (46020803:...F) div.s $fpr0,$fpr1,$fpr2
004aa804 (e7809258:X...) swc1 $fpr0,-0x6da8($gp)
004aa808 (c78088e4:....) lwc1 $fpr0,-0x771c($gp)
004aa80c (e7829250:P...) swc1 $fpr2,-0x6db0($gp)
004aa810 (c78288e8:....) lwc1 $fpr2,-0x7718($gp)
004aa814 (e7809254:T...) swc1 $fpr0,-0x6dac($gp)
004aa818 (c7818114:....) lwc1 $fpr1,-0x7eec($gp)
004aa81c (c78088ec:....) lwc1 $fpr0,-0x7714($gp)
004aa820 (e7829244:D...) swc1 $fpr2,-0x6dbc($gp)
004aa824 (e781924c:L...) swc1 $fpr1,-0x6db4($gp)
004aa828 (0c050b0c:....) jal 0x00142c30 00142C30 00000088 .text CHud::LoadHUDData() (hud.cpp)
004aa82c (e780925c:\...) swc1 $fpr0,-0x6da4($gp)
004aa830 (0c12cc58:X...) jal 0x004b3160 004B3160 000000B0 .text FrontEnd::LoadFrontEndData() (FrontEnd.cpp)
004aa834 (00000000:....) nop
004aa838 (dfbf0000:....) ld $ra,0($sp)
004aa83c (03e00008:....) jr $ra
004aa840 (27bd0010:...') addiu $sp,$sp,0x10
004aa844 (00000000:....) nop
]]
-- Credits
-- Trophy design and development by SCEA ISD SpecOps
-- David Thach Senior Director
-- George Weising Executive Producer
-- Tim Lindquist Senior Technical PM
-- Clay Cowgill Engineering
-- Nicola Salmoria Engineering
-- David Haywood Engineering
-- Warren Davis Engineering
-- Jenny Murphy Producer
-- David Alonzo Assistant Producer
-- Tyler Chan Associate Producer
-- Karla Quiros Manager Business Finance & Ops
-- Mayene de la Cruz Art Production Lead
-- Thomas Hindmarch Production Coordinator
-- Special thanks to R&D
try this:Sorry I don't understand how it works yet, I'm just a simple user, I hack a little, but I don't know and I would really like to have the Scarface game in French version without the bugs, too bad. Then there is the US version but it's not the same. Thanks
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-kernel-cl-up="up2x2skipinterp"
--ps2-lang=system
--gs-motion-factor=30
--gs-optimize-30fps=1
--framelimiter=1
--framelimit-fps=30.0
--framelimit-scalar=1.1
--cdvd-sector-read-cycles=5000
--host-vsync=1
--vu1-di-bits=0
--vu0-di-bits=0
--ee-cycle-scalar=1.3
--iop-cycle-scalar=0.7
--vu0-opt-flags=2
--vu1-opt-flags=2
--vu1-mpg-cycles=2000
--vu1-injection=0
--vu0-jr-cache-policy=newprog
--vu0-jalr-cache-policy=newprog
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
-- speed fix by Agrippa & Kozarovv
-- graphical issues fix by kozarovv
apiRequest(0.1)
local cpr = require("ee-cpr0-alias")
local emuObj = getEmuObject()
local eeObj = getEEObject()
--PS3 config(speed up)
eeInsnReplace(0x00643e70, 0xc4810020, 0x03e00008)
eeInsnReplace(0x00643e74, 0x3c033f80, 0x00000000)
eeInsnReplace(0x0064300c, 0x45010012, 0x10000012)
eeInsnReplace(0x00510290, 0x3c034320, 0x3c034220)
eeInsnReplace(0x00510240, 0x3c033f80, 0x3c033f00)
local gfx_fix = function()
eeObj.WriteMem32(0x004ee128,0x10000003) --14400003
eeObj.WriteMem32(0x004f5224,0x00000000) --14c00003
eeObj.WriteMem32(0x004f5248,0x10000007) --14650007
eeObj.Vu1MpgCycles(375)
end
emuObj.AddVsyncHook(gfx_fix)
-- Uprender/Upscale fix
emuObj.SetGsTitleFix( "globalSet", "reserved", { waveThreshold = 90000} )
emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", {psm=0} )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )
This one is special...
Urban Reign™ NTSC (4 Player Fix) +Cheats
CLI
LUACode:--gs-uprender=2x2 --gs-upscale=EdgeSmooth --force-frame-blend=1 --vif-ignore-invalid-cmd=0 --vif1-ignore-cmd-ints=1 --vif1-instant-xfer=0 --vu1=jit-sync --mtap1=Always
Code:-- Urban Reign NTSC (SLUS-21209) -- Multitap fix by Kozarovv -- Cheats from GameHacking.org -- ported to PS4 by Stayhye -- emu used=kof98um apiRequest(0.1) local gpr = require("ee-gpr-alias") local emuObj = getEmuObject() local eeObj = getEEObject() local gsObj = getGsObject() emuObj.PadSetLightBar(0, 45,65,55) emuObj.SetDeinterlace(true) emuObj.SetDisplayAspectWide() local WS = function() --Unlock Free Mode by MadCatz eeObj.WriteMem32(0x00946634,0x00010001) -- Init first mtap eeObj.WriteMem32(0x12BA88,0x24040000) -- Read data from 1B port when 2A is requested eeObj.WriteMem32(0x0ffc00,0x10040005) eeObj.WriteMem32(0x0ffc04,0x00000000) eeObj.WriteMem32(0x0ffc08,0x14050003) eeObj.WriteMem32(0x0ffc10,0x24040000) eeObj.WriteMem32(0x0ffc14,0x24050001) eeObj.WriteMem32(0x0ffc18,0x080c5cbd) eeObj.WriteMem32(0x0ffc1c,0x24030070) eeObj.WriteMem32(0x3172ec,0x0803ff00) --Unlock Challenge Mode by MadCatz eeObj.WriteMem32(0x00946636,0x00010001) --Unlock All Weapons by MadCatz eeObj.WriteMem32(0x20274774,0x24030001) eeObj.WriteMem32(0x2027477C,0xA443000E) --Brad Hawk by Code Master eeObj.WriteMem32(0x0094668E,0x00010001) --Glen by Code Master eeObj.WriteMem32(0x00946694,0x00010001) --Torque by Code Master eeObj.WriteMem32(0x00946696,0x00010001) --Rod by Code Master eeObj.WriteMem32(0x00946698,0x00010001) --Seth by Code Master eeObj.WriteMem32(0x0094669A,0x00010001) --Nas-Tiii by Code Master eeObj.WriteMem32(0x0094669C,0x00010001) --Em Cee by Code Master eeObj.WriteMem32(0x0094669E,0x00010001) --Real Deal by Code Master eeObj.WriteMem32(0x009466A0,0x00010001) --Ty by Code Master eeObj.WriteMem32(0x009466A2,0x00010001) --Miguel by Code Master eeObj.WriteMem32(0x009466A4,0x00010001) --Ramon by Code Master eeObj.WriteMem32(0x009466A6,0x00010001) --Jose by Code Master eeObj.WriteMem32(0x009466A8,0x00010001) --Emilio by Code Master eeObj.WriteMem32(0x009466AA,0x00010001) --Kadonashi by Code Master eeObj.WriteMem32(0x009466AC,0x00010001) --Reggie by Code Master eeObj.WriteMem32(0x009466AE,0x00010001) --Zach by Code Master eeObj.WriteMem32(0x009466B0,0x00010001) --Colin by Code Master eeObj.WriteMem32(0x009466B2,0x00010001) --Jake by Code Master eeObj.WriteMem32(0x009466B4,0x00010001) --Tong Yoon by Code Master eeObj.WriteMem32(0x009466B6,0x00010001) --Grimm by Code Master eeObj.WriteMem32(0x009466B8,0x00010001) --BK by Code Master eeObj.WriteMem32(0x009466BA,0x00010001) --Grave Digga' by Code Master eeObj.WriteMem32(0x009466BC,0x00010001) --Bones by Code Master eeObj.WriteMem32(0x009466BE,0x00010001) --Booma by Code Master eeObj.WriteMem32(0x009466C0,0x00010001) --Busta by Code Master eeObj.WriteMem32(0x009466C2,0x00010001) --Spider by Code Master eeObj.WriteMem32(0x009466C4,0x00010001) --Pain Killah by Code Master eeObj.WriteMem32(0x009466C6,0x00010001) --Dwayne by Code Master eeObj.WriteMem32(0x009466C8,0x00010001) --Dwayne 2? by Code Master eeObj.WriteMem32(0x009466CA,0x00010001) --Shun Ying Lee by Code Master eeObj.WriteMem32(0x009466CC,0x00010001) --GD-05 by Code Master eeObj.WriteMem32(0x009466CE,0x00010001) --DR-88 by Code Master eeObj.WriteMem32(0x009466D0,0x00010001) --FK-71 by Code Master eeObj.WriteMem32(0x009466D2,0x00010001) --PT-22 by Code Master eeObj.WriteMem32(0x009466D4,0x00010001) --Bain by Code Master eeObj.WriteMem32(0x009466D6,0x00010001) --Cooper by Code Master eeObj.WriteMem32(0x009466D8,0x00010001) --Anderson by Code Master eeObj.WriteMem32(0x009466DA,0x00010001) --Taylor by Code Master eeObj.WriteMem32(0x009466DC,0x00010001) --Chris by Code Master eeObj.WriteMem32(0x009466DE,0x00010001) --Park by Code Master eeObj.WriteMem32(0x009466E0,0x00010001) --Alex by Code Master eeObj.WriteMem32(0x009466E2,0x00010001) --McKinzie by Code Master eeObj.WriteMem32(0x009466E4,0x00010001) --Napalm 99 by Code Master eeObj.WriteMem32(0x009466E6,0x00010001) --Golem by Code Master eeObj.WriteMem32(0x009466E8,0x00010001) --Riki by Code Master eeObj.WriteMem32(0x009466EA,0x00010001) --Masa by Code Master eeObj.WriteMem32(0x009466EC,0x00010001) --Hiro by Code Master eeObj.WriteMem32(0x009466EE,0x00010001) --Ryuji by Code Master eeObj.WriteMem32(0x009466F0,0x00010001) --Ye Wei by Code Master eeObj.WriteMem32(0x009466F2,0x00010001) --Sha Ying by Code Master eeObj.WriteMem32(0x009466F4,0x00010001) --Yan Jun by Code Master eeObj.WriteMem32(0x009466F6,0x00010001) --Shinkai by Code Master eeObj.WriteMem32(0x009466F8,0x00010001) --Lin Fong Lee by Code Master eeObj.WriteMem32(0x009466FA,0x00010001) --Bordin by Code Master eeObj.WriteMem32(0x009466FC,0x00010001) --Lilian by Code Master eeObj.WriteMem32(0x009466FE,0x00010001) --Kelly by Code Master eeObj.WriteMem32(0x00946700,0x00010001) --Vera Ross by Code Master eeObj.WriteMem32(0x00946702,0x00010001) --Paul Phoenix by Code Master eeObj.WriteMem32(0x00946704,0x00010001) --Marshall Law by Code Master eeObj.WriteMem32(0x00946706,0x00010001) --KG by Code Master eeObj.WriteMem32(0x00946718,0x00010001) emuObj.ThrottleMax() end emuObj.AddVsyncHook(WS) emuObj.SetGsTitleFix( "globalSet", "reserved", { workLoadThreshold = 100000} ) emuObj.SetGsTitleFix( "globalSet", "reserved", { waveThreshold = 90000} ) emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )
Big thanks to Kozarovv for this one! Finally 4 player multi-tap works! Apparently the emulator is flawed in how it handles multi-tap when it involves "--mtap2". All functions for 2A, 2B, 2C, 2D must be redirected to ports on multi-tap 1.
-- Init first mtap
eeObj.WriteMem32(0x12BA88,0x24040000)
-- Read data from 1B port when 2A is requested
eeObj.WriteMem32(0x0ffc00,0x10040005)
eeObj.WriteMem32(0x0ffc04,0x00000000)
eeObj.WriteMem32(0x0ffc08,0x14050003)
eeObj.WriteMem32(0x0ffc10,0x24040000)
eeObj.WriteMem32(0x0ffc14,0x24050001)
eeObj.WriteMem32(0x0ffc18,0x080c5cbd)
eeObj.WriteMem32(0x0ffc1c,0x24030070)
eeObj.WriteMem32(0x3172ec,0x0803ff00)
try this:
Scarface - [SLES-54182]
emu used= star ocean v2.
CLI:
Code:--gs-uprender=2x2 --gs-upscale=edgesmooth --gs-kernel-cl-up="up2x2skipinterp" --ps2-lang=system --gs-motion-factor=30 --gs-optimize-30fps=1 --framelimiter=1 --framelimit-fps=30.0 --framelimit-scalar=1.1 --cdvd-sector-read-cycles=5000 --host-vsync=1 --vu1-di-bits=0 --vu0-di-bits=0 --ee-cycle-scalar=1.3 --iop-cycle-scalar=0.7
LUA:
Code:-- speed fix by Agrippa & Kozarovv -- graphical issues fix by kozarovv apiRequest(0.1) local cpr = require("ee-cpr0-alias") local emuObj = getEmuObject() local eeObj = getEEObject() --PS3 config(speed up) eeInsnReplace(0x00643e70, 0xc4810020, 0x03e00008) eeInsnReplace(0x00643e74, 0x3c033f80, 0x00000000) eeInsnReplace(0x0064300c, 0x45010012, 0x10000012) eeInsnReplace(0x00510290, 0x3c034320, 0x3c034220) eeInsnReplace(0x00510240, 0x3c033f80, 0x3c033f00) local gfx_fix = function() eeObj.WriteMem32(0x004ee128,0x10000003) --14400003 eeObj.WriteMem32(0x004f5224,0x00000000) --14c00003 eeObj.WriteMem32(0x004f5248,0x10000007) --14650007 eeObj.Vu1MpgCycles(375) end emuObj.AddVsyncHook(gfx_fix) -- Uprender/Upscale fix emuObj.SetGsTitleFix( "globalSet", "reserved", { waveThreshold = 90000} ) emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } ) emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", {psm=0} ) emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )
--vu0-opt-flags=2
--vu1-opt-flags=2
--vu1-mpg-cycles=2000
--vu1-injection=0
--vu0-jr-cache-policy=newprog
--vu0-jalr-cache-policy=newprog
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
that is a typo(fpjk). here is the official config.(SLUS-21269)
Code:--fpu-accurate-mul-fast=1 --fpu-accurate-muldiv-range=0x3f9bb0,0x3f9bb0 --vu1-opt-vf00=2 --vu1-di-bits=0 --vu1-injection=1 --gs-flush-ad-xyz=SafeZWrite --ee-hook=0x001f3ac4,FastForwardClock --gs-use-deferred-l2h=0 --vu1-injection=1 --vu1-mpg-cycles=2500 --fpu-rsqrt-fast-estimate=0 --safe-area-min=1.0
there is also the features.lua
Code:-- Lua 5.3 -- Title: Bully (USA) SLUS-21269 -- Bully (Japan) SLPS-25879 -- Bully (Europe) SLES-53561 -- Features version 1.00 -- Author: David Haywood -- Date: Novemeber 16, 2015 require( "ee-gpr-alias" ) -- you can access EE GPR by alias (gpr.a0 / gpr["a0"]) apiRequest(0.7) -- request version 0.7 API. Calling apiRequest() is mandatory. -- obtain necessary objects. local eeObj = getEEObject() local emuObj = getEmuObject() local trophyObj = getTrophyObject() local dmaObj = getDmaObject() -- load configuration if exist local SaveData = emuObj.LoadConfig(0) -- 0 for US -- 1 for Japan -- 2 for Europe local Region = 0 local SetAspectFunc = function() local a0 = eeObj.GetGPR(gpr.a0) a0 = a0 & 1 if a0 == 1 then print( string.format("********* Request WIDE SCREEN mode **************" ) ) emuObj.SetDisplayAspectWide() else print( string.format("********* Request 4:3 mode **************" ) ) emuObj.SetDisplayAspectNormal() end end if Region == 2 then SetAspectHook = eeObj.AddHook(0x04aa7a0,0x27bdfff0, SetAspectFunc) elseif Region == 0 then SetAspectHook = eeObj.AddHook(0x04a9d10,0x27bdfff0, SetAspectFunc) elseif Region == 1 then SetAspectHook = eeObj.AddHook(0x04ab6c0,0x27bdfff0, SetAspectFunc) end --[[ clip from Settings::Initialize() can't we detect native aspect of the system with sceScfGetAspect, rather than forcing it to widescreen by default? 0020c648 (0c14fb46:F...) jal 0x0053ed18 -- 0053ED18 00000040 .text sceScfGetAspect (libscf.a libscf.o/ ) 0020c64c (00000000:....) nop 0020c650 (24030002:...$) li $v1,2 0020c654 (14430005:..C.) bne $v0,$v1,0x0020c66c 0020c658 (00000000:....) nop ]] local DefaultAspectFunc = function() local v0 = eeObj.GetGPR(gpr.v0) v0 = 2 eeObj.SetGPR(gpr.v0, v0) emuObj.SetDisplayAspectWide() end if Region == 2 then SetAspectHook = eeObj.AddHook(0x020c650,0x24030002, DefaultAspectFunc) elseif Region == 0 then SetAspectHook = eeObj.AddHook(0x020c080,0x24030002, DefaultAspectFunc) elseif Region == 1 then SetAspectHook = eeObj.AddHook(0x020c780,0x24030002, DefaultAspectFunc) end --[[ 004AA7A0 000000A4 .text FEOptions::SetAspectRatio(bool) (FEOptions.cpp) 004aa7a0 (27bdfff0:...') addiu $sp,$sp,-0x10 004aa7a4 (3c02006c:l..<) lui $v0,0x006c 004aa7a8 (ffbf0000:....) sd $ra,0($sp) 004aa7ac (10800005:....) beqz $a0,0x004aa7c4 004aa7b0 (a0447c9e:.|D.) sb $a0,0x7c9e($v0) 004aa7b4 (3c023f40:@?.<) lui $v0,0x3f40 004aa7b8 (44820000:...D) mtc1 $v0,$fpr0 004aa7bc (10000003:....) j 0x004aa7cc 004aa7c0 (00000000:....) nop 004aa7c4 (3c023f80:.?.<) lui $v0,0x3f80 004aa7c8 (44820000:...D) mtc1 $v0,$fpr0 004aa7cc (50800005:...P) beql $a0,$zero,0x004aa7e4 004aa7d0 (3c023f80:.?.<) lui $v0,0x3f80 004aa7d4 (3c023f40:@?.<) lui $v0,0x3f40 004aa7d8 (44821000:...D) mtc1 $v0,$fpr2 004aa7dc (10000003:....) j 0x004aa7ec 004aa7e0 (3c023f80:.?.<) lui $v0,0x3f80 004aa7e4 (44821000:...D) mtc1 $v0,$fpr2 004aa7e8 (3c023f80:.?.<) lui $v0,0x3f80 004aa7ec (e7809240:@...) swc1 $fpr0,-0x6dc0($gp) 004aa7f0 (44820800:...D) mtc1 $v0,$fpr1 004aa7f4 (00000000:....) nop 004aa7f8 (46000803:...F) div.s $fpr0,$fpr1,$fpr0 004aa7fc (e7809248:H...) swc1 $fpr0,-0x6db8($gp) 004aa800 (46020803:...F) div.s $fpr0,$fpr1,$fpr2 004aa804 (e7809258:X...) swc1 $fpr0,-0x6da8($gp) 004aa808 (c78088e4:....) lwc1 $fpr0,-0x771c($gp) 004aa80c (e7829250:P...) swc1 $fpr2,-0x6db0($gp) 004aa810 (c78288e8:....) lwc1 $fpr2,-0x7718($gp) 004aa814 (e7809254:T...) swc1 $fpr0,-0x6dac($gp) 004aa818 (c7818114:....) lwc1 $fpr1,-0x7eec($gp) 004aa81c (c78088ec:....) lwc1 $fpr0,-0x7714($gp) 004aa820 (e7829244:D...) swc1 $fpr2,-0x6dbc($gp) 004aa824 (e781924c:L...) swc1 $fpr1,-0x6db4($gp) 004aa828 (0c050b0c:....) jal 0x00142c30 00142C30 00000088 .text CHud::LoadHUDData() (hud.cpp) 004aa82c (e780925c:\...) swc1 $fpr0,-0x6da4($gp) 004aa830 (0c12cc58:X...) jal 0x004b3160 004B3160 000000B0 .text FrontEnd::LoadFrontEndData() (FrontEnd.cpp) 004aa834 (00000000:....) nop 004aa838 (dfbf0000:....) ld $ra,0($sp) 004aa83c (03e00008:....) jr $ra 004aa840 (27bd0010:...') addiu $sp,$sp,0x10 004aa844 (00000000:....) nop ]] -- Credits -- Trophy design and development by SCEA ISD SpecOps -- David Thach Senior Director -- George Weising Executive Producer -- Tim Lindquist Senior Technical PM -- Clay Cowgill Engineering -- Nicola Salmoria Engineering -- David Haywood Engineering -- Warren Davis Engineering -- Jenny Murphy Producer -- David Alonzo Assistant Producer -- Tyler Chan Associate Producer -- Karla Quiros Manager Business Finance & Ops -- Mayene de la Cruz Art Production Lead -- Thomas Hindmarch Production Coordinator -- Special thanks to R&D
I remember trying different mtap + host combos in this post a long time ago on a game called "Sega ages 2500: Decathlete Collection", but it either ended up with only player 1 working or player 1 + player 2 working without config.
The game behaves like this:
PS2:
P1 in port 1,
multitap in port 2 (P2 = 2A, P3 = 2B, P3 = 2C)
PS3 (virtual mtap):
P1 = 1A,
P2 = 1B,
P3 = 1C,
P4 = 1D
In theory do you think the same LUA could be used in combination with "--mtap1=Always"
to make this game work in the same way?
Code:-- Init first mtap eeObj.WriteMem32(0x12BA88,0x24040000) -- Read data from 1B port when 2A is requested eeObj.WriteMem32(0x0ffc00,0x10040005) eeObj.WriteMem32(0x0ffc04,0x00000000) eeObj.WriteMem32(0x0ffc08,0x14050003) eeObj.WriteMem32(0x0ffc10,0x24040000) eeObj.WriteMem32(0x0ffc14,0x24050001) eeObj.WriteMem32(0x0ffc18,0x080c5cbd) eeObj.WriteMem32(0x0ffc1c,0x24030070) eeObj.WriteMem32(0x3172ec,0x0803ff00)
oh crap, yeah I just built a fpkg and it didn't respond, makes sense.No, the offsets will be different. But the method will work, you just need to port the offsets.
oh crap, yeah I just built a fpkg and it didn't respond, makes sense.
What methodology or and tools would one use to find these offsets, via emulator?
I don't mind getting technical if you have time.
That fix was not made by me. I also don't have the knowledge to accomplish a fix that technical on my own.
I forgot about that, thanks, I'll add itDid you test game till open world?
I guess without that FiX game will random crash! (as NTSC)
Code:--vu0-opt-flags=2 --vu1-opt-flags=2 --vu1-mpg-cycles=2000 --vu1-injection=0 --vu0-jr-cache-policy=newprog --vu0-jalr-cache-policy=newprog --vu1-jr-cache-policy=newprog --vu1-jalr-cache-policy=newprog
But maybe PAL works fine?
