1 |
|
/* |
2 |
|
* rsrc_patches.cpp - Resource patches |
3 |
|
* |
4 |
< |
* SheepShaver (C) 1997-2005 Christian Bauer and Marc Hellwig |
4 |
> |
* SheepShaver (C) 1997-2008 Christian Bauer and Marc Hellwig |
5 |
|
* |
6 |
|
* This program is free software; you can redistribute it and/or modify |
7 |
|
* it under the terms of the GNU General Public License as published by |
355 |
|
// Don't call FE0A opcode (7.6, 7.6.1, 8.0, 8.1, 8.5, 8.6, 9.0) |
356 |
|
p[1] = htons(0x2008); // move.l a0,d0 |
357 |
|
D(bug(" patch 3 applied\n")); |
358 |
+ |
} else if (PM(0,0x6c00) && PM(1,0x016a) && PM(2,0x2278) && PM(3,0x0134)) { |
359 |
+ |
// We don't have SonyVars (8.6) |
360 |
+ |
p[-4] = htons(0x21fc); // move.l $40810000,($0000) |
361 |
+ |
p[-3] = htons(0x4081); |
362 |
+ |
p[-2] = htons(0x0000); |
363 |
+ |
p[-1] = htons(0x0000); |
364 |
+ |
p[0] = htons(0x6000); |
365 |
+ |
D(bug(" patch 4 applied\n")); |
366 |
|
} |
367 |
|
p++; |
368 |
|
} |
929 |
|
|
930 |
|
// Patch native GetResource() |
931 |
|
uint32 upp = ReadMacInt32(0x1480); |
932 |
< |
if ((upp & 0xffc00000) == ROM_BASE) |
932 |
> |
if ((upp & 0xffc00000) == ROMBase) |
933 |
|
return; |
934 |
|
uint32 tvec = ReadMacInt32(upp + 5 * 4); |
935 |
|
D(bug(" GetResource() entry %08x, TOC %08x\n", ReadMacInt32(tvec), ReadMacInt32(tvec + 4))); |