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