ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/rsrc_patches.cpp
(Generate patch)

Comparing SheepShaver/src/rsrc_patches.cpp (file contents):
Revision 1.10 by gbeauche, 2004-01-26T22:04:01Z vs.
Revision 1.11 by gbeauche, 2004-06-20T19:10:02Z

# Line 136 | Line 136 | void CheckLoad(uint32 type, int16 id, ui
136                                  // Check when ntrb 17 is installed (for native Resource Manager patch) (7.6, 7.6.1, 8.0, 8.1)
137                                  p[7] = htons(M68K_EMUL_OP_NTRB_17_PATCH);
138                                  D(bug(" patch 3 applied\n"));
139 <                        } else if (PM(0,0x3f2a) && PM(1,0x0006) && PM(2,0x3f2a) && PM(3,0x0002) && PM(4,0x61ff)) {
139 >                        } else if (PM(0,0x3f2a) && PM(1,0x0006) && PM(2,0x3f2a) && PM(3,0x0002) && PM(4,0x61ff) && PM(8,0x245f)) {
140                                  // Check when ntrb 17 is installed (for native Resource Manager patch) (8.5, 8.6)
141                                  p[8] = htons(M68K_EMUL_OP_NTRB_17_PATCH);
142                                  D(bug(" patch 4 applied\n"));
143 +                        } else if (PM(0,0x3f2a) && PM(1,0x0006) && PM(2,0x3f2a) && PM(3,0x0002) && PM(4,0x61ff) && PM(7,0x301f)) {
144 +                                // Check when ntrb 17 is installed (for native Resource Manager patch) (9.0)
145 +                                p[7] = htons(M68K_EMUL_OP_NTRB_17_PATCH4);
146 +                                p[8] = htons(ntohs(p[8]) & 0xf0ff); // bra
147 +                                D(bug(" patch 8 applied\n"));
148                          } else if (PM(0,0x0c39) && PM(1,0x0001) && PM(2,0xf800) && PM(3,0x0008) && PM(4,0x6f00)) {
149                                  // Don't read from 0xf8000008 (8.5 with Zanzibar ROM, 8.6)
150                                  p[0] = htons(M68K_NOP);
# Line 179 | Line 184 | void CheckLoad(uint32 type, int16 id, ui
184                          D(bug(" patch 1 applied\n"));
185                  }
186  
187 +        } else if (type == FOURCC('p','t','c','h') && id == 156) {
188 +                D(bug("ptch 156 found\n"));
189 +                size >>= 1;
190 +                while (size--) {
191 +                        if (PM(0,0x4e56) && PM(1,0xfffa) && PM(2,0x48e7) && PM(3,0x1f18) && PM(4,0x7800) && PM(5,0x267c) && PM(6,0x6900) && PM(7,0x0000)) {
192 +                                // Don't call FE0A opcode (9.0)
193 +                                p[0] = htons(0x7000);           // moveq #0,d0
194 +                                p[1] = htons(M68K_RTS);
195 +                                D(bug(" patch 1 applied\n"));
196 +                                break;
197 +                        }
198 +                        p++;
199 +                }
200 +
201          } else if (type == FOURCC('p','t','c','h') && id == 420) {
202                  D(bug("ptch 420 found\n"));
203                  size >>= 1;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines