Files
archived-pcsx2-patches/patches/SLUS-20184_24036809.pnach
VelpaChallenger ab9f63daa3 Fix datetime issue when using computers (Resident Evil: Code Veronica) (#595)
Whenever you use a computer, either as Chris or Claire, the time shown
is in Japan timezone, instead of local. This patch fixes that and allows
you to see the time (presumably) as originally intended.
2025-12-27 18:55:05 -05:00

325 lines
12 KiB
Plaintext

gametitle=Resident Evil: Code: Veronica X (SLUS-20184)
[Widescreen 16:9]
gsaspectratio=16:9
author=Gabominated
description=Widescreen hack ported from PAL-M4 ver by ElHecht
patch=1,EE,01128700,word,3f400000 //3f800000 x-fov
patch=1,EE,01E218C0,word,01aa0280 //01400280 FMVs
patch=1,EE,01E218C4,word,000c0000 //00400000
[Door Transition Skip]
// https://gist.github.com/kapdap/91ff4e4a32d45b5a6ee6b9ef7b298895
author=kapdap
patch=1,EE,00133D4C,word,00000000 // remove call to bhControlDoor
patch=1,EE,00133D54,word,00000000 // remove door animation completed check
[Skip Startup logos and warning]
author=illusion
patch=1,EE,001324D4,word,34640008
[Fix time in computers]
// Custom sceScfGetLocalTimefromRTC. Adapted from configConvertToLocalTime in PS2SDK.
author=VelpaChallenger
description=Fixes time shown when using computers either as Claire or Chris (shows local instead of JP).
patch=1,EE,001147E8,word,3c19000f // Save time (sceCdCLOCK) before it's lost. Will be used after we inject. Overwrites printf but meh.
patch=1,EE,001147EC,word,27391010
patch=1,EE,001147F0,word,af320000
patch=1,EE,000F1000,word,1E1F1C1F // gDaysInMonths array. Used for adddate and subdate.
patch=1,EE,000F1004,word,1F1F1E1F
patch=1,EE,000F1008,word,1F1E1F1E
patch=1,EE,001148A0,word,0803C000 // Injection. Jump to custom code. When we are done, we'll jr ra and then return to intended point (previous flow before patch).
// GetLocalTimeFromRTC code per se starts here. The above was preparation.
patch=1,EE,000F0000,word,3c04000f // configConvertToLocalTime. We won't use driver, though. Just sceCdCLOCK time.
patch=1,EE,000F0004,word,ac821014 // We need the original return value as well. So that the change is transparent to the sceCdCLOCK consumer. We will restore it later.
patch=1,EE,000F0008,word,8c841010
patch=1,EE,000F000C,word,27bdffd0
patch=1,EE,000F0010,word,ffb00000
patch=1,EE,000F0014,word,ffb10010
patch=1,EE,000F0018,word,ffbf0020
patch=1,EE,000F001C,word,0C03C015 // jal configGetTimezoneWithIODriver
patch=1,EE,000F0020,word,0080802d
patch=1,EE,000F0024,word,0C03C026 // jal configIsDaylightSavingEnabledWithIODriver
patch=1,EE,000F0028,word,0040882d
patch=1,EE,000F002C,word,2403003c
patch=1,EE,000F0030,word,0200202d
patch=1,EE,000F0034,word,00431018
patch=1,EE,000F0038,word,dfbf0020
patch=1,EE,000F003C,word,dfb00000
patch=1,EE,000F0040,word,2442fde4
patch=1,EE,000F0044,word,02222821
patch=1,EE,000F0048,word,dfb10010
patch=1,EE,000F004C,word,0803C03E // j __adjustTime. The main point, where the full action happens. At the end of it, we'll do the necessary restores.
patch=1,EE,000F0050,word,27bd0030
patch=1,EE,000F0054,word,27bdffe0 // configGetTimezoneWithIODriver.
patch=1,EE,000F0058,word,ffbf0010
patch=1,EE,000F005C,word,0C03C022 // jal GetOSDConfigParam syscall.
patch=1,EE,000F0060,word,03a0202d
patch=1,EE,000F0064,word,8fa20000
patch=1,EE,000F0068,word,2404021c
patch=1,EE,000F006C,word,00021b42
patch=1,EE,000F0070,word,00021543
patch=1,EE,000F0074,word,30630007
patch=1,EE,000F0078,word,0083100a
patch=1,EE,000F007C,word,dfbf0010
patch=1,EE,000F0080,word,03e00008
patch=1,EE,000F0084,word,27bd0020
patch=1,EE,000F0088,word,2403004B // GetOSDConfigParam syscall.
patch=1,EE,000F008C,word,0000000C // syscall
patch=1,EE,000F0090,word,03E00008 // return
patch=1,EE,000F0094,word,00000000 // nop, just return.
patch=1,EE,000F0098,word,27bdffe0 // configIsDaylightSavingEnabledWithIODriver.
patch=1,EE,000F009C,word,ffbf0010
patch=1,EE,000F00A0,word,0C03C022 // jal GetOSDConfigParam syscall.
patch=1,EE,000F00A4,word,03a0202d
patch=1,EE,000F00A8,word,8fa20000
patch=1,EE,000F00AC,word,00021342
patch=1,EE,000F00B0,word,30420007
patch=1,EE,000F00B4,word,14400003
patch=1,EE,000F00B8,word,37a40004
patch=1,EE,000F00BC,word,10000007
patch=1,EE,000F00C0,word,0000102d
patch=1,EE,000F00C4,word,24050001
patch=1,EE,000F00C8,word,0C03C03A // jal GetOSDConfigParam2 syscall.
patch=1,EE,000F00CC,word,24060001
patch=1,EE,000F00D0,word,93a30004
patch=1,EE,000F00D4,word,00031902
patch=1,EE,000F00D8,word,30620001
patch=1,EE,000F00DC,word,dfbf0010
patch=1,EE,000F00E0,word,03e00008
patch=1,EE,000F00E4,word,27bd0020
patch=1,EE,000F00E8,word,2403006F // GetOSDConfigParam2 syscall.
patch=1,EE,000F00EC,word,0000000C // syscall
patch=1,EE,000F00F0,word,03E00008 // return
patch=1,EE,000F00F4,word,00000000 // nop, just return.
patch=1,EE,000F00F8,word,27bdffd0 // __adjustTime
patch=1,EE,000F00FC,word,ffb10010
patch=1,EE,000F0100,word,ffb00000
patch=1,EE,000F0104,word,0080882d
patch=1,EE,000F0108,word,ffbf0020
patch=1,EE,000F010C,word,0C03C061 // jal convertfrombcd
patch=1,EE,000F0110,word,00a0802d
patch=1,EE,000F0114,word,92220002
patch=1,EE,000F0118,word,00508021
patch=1,EE,000F011C,word,0602000e
patch=1,EE,000F0120,word,2610003c
patch=1,EE,000F0124,word,2a02003c
patch=1,EE,000F0128,word,54400010
patch=1,EE,000F012C,word,a2300002
patch=1,EE,000F0130,word,0220202d
patch=1,EE,000F0134,word,00000000
patch=1,EE,000F0138,word,0C03C083 // jal addhour
patch=1,EE,000F013C,word,2610ffc4
patch=1,EE,000F0140,word,2a02003c
patch=1,EE,000F0144,word,1040fffc
patch=1,EE,000F0148,word,0220202d
patch=1,EE,000F014C,word,10000008
patch=1,EE,000F0150,word,a2300002
patch=1,EE,000F0154,word,00000000
patch=1,EE,000F0158,word,0C03C0BB // jal subhour
patch=1,EE,000F015C,word,0220202d
patch=1,EE,000F0160,word,0602fffd
patch=1,EE,000F0164,word,2610003c
patch=1,EE,000F0168,word,a2300002
patch=1,EE,000F016C,word,0220202d
patch=1,EE,000F0170,word,dfbf0020
patch=1,EE,000F0174,word,dfb10010
patch=1,EE,000F0178,word,dfb00000
patch=1,EE,000F017C,word,0803C0ED // j converttobcd
patch=1,EE,000F0180,word,27bd0030
patch=1,EE,000F0184,word,27bdffe0 // convertfrombcd
patch=1,EE,000F0188,word,ffb00000
patch=1,EE,000F018C,word,ffbf0010
patch=1,EE,000F0190,word,0080802d
patch=1,EE,000F0194,word,0C03C07B // jal frombcd
patch=1,EE,000F0198,word,92040007
patch=1,EE,000F019C,word,92040006
patch=1,EE,000F01A0,word,0C03C07B // jal frombcd
patch=1,EE,000F01A4,word,a2020007
patch=1,EE,000F01A8,word,92040005
patch=1,EE,000F01AC,word,0C03C07B // jal frombcd
patch=1,EE,000F01B0,word,a2020006
patch=1,EE,000F01B4,word,92040003
patch=1,EE,000F01B8,word,0C03C07B // jal frombcd
patch=1,EE,000F01BC,word,a2020005
patch=1,EE,000F01C0,word,92040002
patch=1,EE,000F01C4,word,0C03C07B // jal frombcd
patch=1,EE,000F01C8,word,a2020003
patch=1,EE,000F01CC,word,92040001
patch=1,EE,000F01D0,word,0C03C07B // jal frombcd
patch=1,EE,000F01D4,word,a2020002
patch=1,EE,000F01D8,word,a2020001
patch=1,EE,000F01DC,word,dfbf0010
patch=1,EE,000F01E0,word,dfb00000
patch=1,EE,000F01E4,word,03e00008
patch=1,EE,000F01E8,word,27bd0020
patch=1,EE,000F01EC,word,308200ff // frombcd
patch=1,EE,000F01F0,word,00021902
patch=1,EE,000F01F4,word,24040006
patch=1,EE,000F01F8,word,00640018
patch=1,EE,000F01FC,word,00001812
patch=1,EE,000F0200,word,00431023
patch=1,EE,000F0204,word,03e00008
patch=1,EE,000F0208,word,304200ff
patch=1,EE,000F020C,word,0080282d // addhour
patch=1,EE,000F0210,word,24020018
patch=1,EE,000F0214,word,90a30003
patch=1,EE,000F0218,word,24630001
patch=1,EE,000F021C,word,306400ff
patch=1,EE,000F0220,word,14820004
patch=1,EE,000F0224,word,a0a30003
patch=1,EE,000F0228,word,00a0202d
patch=1,EE,000F022C,word,0803C08E // j adddate
patch=1,EE,000F0230,word,a0a00003 // time->hour = 0
patch=1,EE,000F0234,word,03e00008 // if we didn't jump to adddate, we still want to return, just without doing anything else before it.
patch=1,EE,000F0238,word,0080282d // adddate
patch=1,EE,000F023C,word,27bdfff0
patch=1,EE,000F0240,word,90a30005
patch=1,EE,000F0244,word,3c02000F
patch=1,EE,000F0248,word,90a40007
patch=1,EE,000F024C,word,24630001
patch=1,EE,000F0250,word,24491000
patch=1,EE,000F0254,word,69260007
patch=1,EE,000F0258,word,6d260000
patch=1,EE,000F025C,word,8927000b
patch=1,EE,000F0260,word,99270008
patch=1,EE,000F0264,word,b3a60007
patch=1,EE,000F0268,word,b7a60000
patch=1,EE,000F026C,word,aba7000b
patch=1,EE,000F0270,word,bba70008
patch=1,EE,000F0274,word,30840003
patch=1,EE,000F0278,word,14800003
patch=1,EE,000F027C,word,a0a30005
patch=1,EE,000F0280,word,2402001d
patch=1,EE,000F0284,word,a3a20001
patch=1,EE,000F0288,word,90a20006
patch=1,EE,000F028C,word,90a40005
patch=1,EE,000F0290,word,005d1021
patch=1,EE,000F0294,word,8043ffff
patch=1,EE,000F0298,word,0064182a
patch=1,EE,000F029C,word,10600011
patch=1,EE,000F02A0,word,24020001
patch=1,EE,000F02A4,word,90a30006
patch=1,EE,000F02A8,word,a0a20005
patch=1,EE,000F02AC,word,2404000d
patch=1,EE,000F02B0,word,24630001
patch=1,EE,000F02B4,word,306200ff
patch=1,EE,000F02B8,word,1444000a
patch=1,EE,000F02BC,word,a0a30006
patch=1,EE,000F02C0,word,90a30007
patch=1,EE,000F02C4,word,24020063
patch=1,EE,000F02C8,word,14620003
patch=1,EE,000F02CC,word,24620001
patch=1,EE,000F02D0,word,10000002
patch=1,EE,000F02D4,word,a0a00007
patch=1,EE,000F02D8,word,a0a20007
patch=1,EE,000F02DC,word,24020001
patch=1,EE,000F02E0,word,a0a20006
patch=1,EE,000F02E4,word,03e00008
patch=1,EE,000F02E8,word,27bd0010
patch=1,EE,000F02EC,word,0080182d // subhour
patch=1,EE,000F02F0,word,90620003
patch=1,EE,000F02F4,word,14400004
patch=1,EE,000F02F8,word,2442ffff
patch=1,EE,000F02FC,word,24020017
patch=1,EE,000F0300,word,0803C0C4 // j subdate
patch=1,EE,000F0304,word,a0620003
patch=1,EE,000F0308,word,03e00008 // same logic as addhour, except this time, we want to perform the same operation either if we jump or return (for addhour it's nop).
patch=1,EE,000F030C,word,a0620003 // time->hour either time->hour = 0x17 or time->hour - 1, depends on v0.
patch=1,EE,000F0310,word,0080282d // subdate
patch=1,EE,000F0314,word,27bdfff0
patch=1,EE,000F0318,word,90a30005
patch=1,EE,000F031C,word,3c02000F
patch=1,EE,000F0320,word,90a40007
patch=1,EE,000F0324,word,2463ffff
patch=1,EE,000F0328,word,24491000
patch=1,EE,000F032C,word,69260007
patch=1,EE,000F0330,word,6d260000
patch=1,EE,000F0334,word,8927000b
patch=1,EE,000F0338,word,99270008
patch=1,EE,000F033C,word,b3a60007
patch=1,EE,000F0340,word,b7a60000
patch=1,EE,000F0344,word,aba7000b
patch=1,EE,000F0348,word,bba70008
patch=1,EE,000F034C,word,30840003
patch=1,EE,000F0350,word,14800003
patch=1,EE,000F0354,word,a0a30005
patch=1,EE,000F0358,word,2402001d
patch=1,EE,000F035C,word,a3a20001
patch=1,EE,000F0360,word,90a20005
patch=1,EE,000F0364,word,14400011
patch=1,EE,000F0368,word,00000000
patch=1,EE,000F036C,word,90a20006
patch=1,EE,000F0370,word,2442ffff
patch=1,EE,000F0374,word,304300ff
patch=1,EE,000F0378,word,14600008
patch=1,EE,000F037C,word,a0a20006
patch=1,EE,000F0380,word,90a20007
patch=1,EE,000F0384,word,14400002
patch=1,EE,000F0388,word,2442ffff
patch=1,EE,000F038C,word,24020063
patch=1,EE,000F0390,word,a0a20007
patch=1,EE,000F0394,word,2402000c
patch=1,EE,000F0398,word,a0a20006
patch=1,EE,000F039C,word,90a20006
patch=1,EE,000F03A0,word,005d1021
patch=1,EE,000F03A4,word,9043ffff
patch=1,EE,000F03A8,word,a0a30005
patch=1,EE,000F03AC,word,03e00008
patch=1,EE,000F03B0,word,27bd0010
patch=1,EE,000F03B4,word,27bdffe0 // converttobcd
patch=1,EE,000F03B8,word,ffb00000
patch=1,EE,000F03BC,word,ffbf0010
patch=1,EE,000F03C0,word,0080802d
patch=1,EE,000F03C4,word,0C03C109 // jal tobcd
patch=1,EE,000F03C8,word,92040007
patch=1,EE,000F03CC,word,92040006
patch=1,EE,000F03D0,word,0C03C109 // jal tobcd
patch=1,EE,000F03D4,word,a2020007
patch=1,EE,000F03D8,word,92040005
patch=1,EE,000F03DC,word,0C03C109 // jal tobcd
patch=1,EE,000F03E0,word,a2020006
patch=1,EE,000F03E4,word,92040003
patch=1,EE,000F03E8,word,0C03C109 // jal tobcd
patch=1,EE,000F03EC,word,a2020005
patch=1,EE,000F03F0,word,92040002
patch=1,EE,000F03F4,word,0C03C109 // jal tobcd
patch=1,EE,000F03F8,word,a2020003
patch=1,EE,000F03FC,word,92040001
patch=1,EE,000F0400,word,0C03C109 // jal tobcd
patch=1,EE,000F0404,word,a2020002
patch=1,EE,000F0408,word,a2020001
patch=1,EE,000F040C,word,dfbf0010
patch=1,EE,000F0410,word,dfb00000
patch=1,EE,000F0414,word,3c04000f
patch=1,EE,000F0418,word,8c821014 // and now, ladies and gentleman, we restore v0! Yay! We can now exit without any feelings of guilt or remorse!
patch=1,EE,000F041C,word,03e00008
patch=1,EE,000F0420,word,27bd0020
patch=1,EE,000F0424,word,2403000a // tobcd
patch=1,EE,000F0428,word,308400ff
patch=1,EE,000F042C,word,0083001b
patch=1,EE,000F0430,word,24050006
patch=1,EE,000F0434,word,50600001
patch=1,EE,000F0438,word,000001cd
patch=1,EE,000F043C,word,00001012
patch=1,EE,000F0440,word,00451818
patch=1,EE,000F0444,word,00641021
patch=1,EE,000F0448,word,03e00008
patch=1,EE,000F044C,word,304200ff