mirror of
https://github.com/InvisibleUp/uvmac.git
synced 2024-12-22 07:31:39 +00:00
Fix faulty Sony driver icon patching
This commit is contained in:
parent
66eee49f73
commit
fc3b393329
@ -39,19 +39,19 @@ void Sony_LoadDriver(uint8_t *pto, int *size)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sony_LoadIcon(uint8_t *pto)
|
void Sony_LoadIcon(uint8_t *pto, int *icoSize)
|
||||||
{
|
{
|
||||||
disk_icon_addr = (pto - ROM) + kROM_Base;
|
disk_icon_addr = (pto - ROM) + kROM_Base;
|
||||||
#if defined(gSonyIconData)
|
#if defined(gSonyIconData)
|
||||||
memcpy(pto, gSonyIcon, gSonyIconSize;
|
memcpy(pto, gSonyIcon, gSonyIconSize;
|
||||||
pto += sizeof(gSonyIconSize);
|
*icoSize = gSonyIconSize;
|
||||||
#elif defined(_WINDOWS)
|
#elif defined(_WINDOWS)
|
||||||
HRSRC hIcoInfo = FindResource(NULL, "SONY_ICO", RT_RCDATA);
|
HRSRC hIcoInfo = FindResource(NULL, "SONY_ICO", RT_RCDATA);
|
||||||
HGLOBAL hIco = LoadResource(NULL, hIcoInfo);
|
HGLOBAL hIco = LoadResource(NULL, hIcoInfo);
|
||||||
DWORD sIco = SizeofResource(NULL, hIcoInfo);
|
DWORD sIco = SizeofResource(NULL, hIcoInfo);
|
||||||
void *pIco = LockResource(hIco);
|
void *pIco = LockResource(hIco);
|
||||||
memcpy(pto, pIco, sIco);
|
memcpy(pto, pIco, sIco);
|
||||||
pto += sizeof(sIco);
|
*icoSize = sIco;
|
||||||
#else
|
#else
|
||||||
#error("Unsupported platform/compiler")
|
#error("Unsupported platform/compiler")
|
||||||
#endif
|
#endif
|
||||||
@ -72,24 +72,26 @@ void Sony_TwiggyPatch(uint8_t *pto)
|
|||||||
|
|
||||||
void Sony_CallPatch(uint8_t *pto, int drvSize)
|
void Sony_CallPatch(uint8_t *pto, int drvSize)
|
||||||
{
|
{
|
||||||
pto += drvSize;
|
|
||||||
do_put_mem_word(pto, kcom_callcheck);
|
do_put_mem_word(pto, kcom_callcheck);
|
||||||
pto += 2;
|
do_put_mem_word(pto+2, kExtnSony);
|
||||||
do_put_mem_word(pto, kExtnSony);
|
do_put_mem_long(pto+4, kExtn_Block_Base); /* pokeaddr */
|
||||||
pto += 2;
|
|
||||||
do_put_mem_long(pto, kExtn_Block_Base); /* pokeaddr */
|
|
||||||
pto += 4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sony_Install(void)
|
void Sony_Install(void)
|
||||||
{
|
{
|
||||||
uint8_t * pto = Sony_DriverBase + ROM;
|
uint8_t * pto = Sony_DriverBase + ROM;
|
||||||
int drvSize = 0;
|
int drvSize, icoSize;
|
||||||
if (!UseSonyPatch) { return; }
|
if (!UseSonyPatch) { return; }
|
||||||
Sony_LoadDriver(pto, &drvSize);
|
Sony_LoadDriver(pto, &drvSize);
|
||||||
Sony_TwiggyPatch(pto);
|
Sony_TwiggyPatch(pto);
|
||||||
|
|
||||||
|
pto += drvSize;
|
||||||
Sony_CallPatch(pto, drvSize);
|
Sony_CallPatch(pto, drvSize);
|
||||||
Sony_LoadIcon(pto);
|
pto += 8;
|
||||||
|
|
||||||
|
Sony_LoadIcon(pto, &icoSize);
|
||||||
|
pto += icoSize;
|
||||||
|
|
||||||
// yeah this sucks but it's so awful and intertwined that i have no choice
|
// yeah this sucks but it's so awful and intertwined that i have no choice
|
||||||
ScreenHack_Install(pto);
|
//ScreenHack_Install(pto);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user