[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
One on One patch for the IIgs
- Subject: One on One patch for the IIgs
- From: datawiz <rich.martin@gmail.com>
- Date: Thu, 29 Dec 2011 20:11:40 -0800 (PST)
- Complaints-to: groups-abuse@google.com
- Injection-info: z12g2000yqm.googlegroups.com; posting-host=71.204.6.56; posting-account=tNo6sQoAAACuIPkCs3A04o2UKPPKwv1Y
- Newsgroups: comp.sys.apple2
- Organization: http://groups.google.com
- User-agent: G2/1.0
one_on_one_gs_patch.dsk
http://204.16.8.40/other/oneonone/one_on_one_gs_patch.dsk
Uploaded to Asimov as well
This is a quick patch to EA's One-On-One game to run on a IIgs.
Originally, the cracked version quickly crashes after the crack
screen.
The reason why is because of an invalid opcode at $8AA. On an 8-bit
Apple, it would run this way:
08AA: 54 ??? (NOP)
08AB: 5C ??? (NOP)
08AC: A2 00 LDX #$00
08AE: A5 E1 LDA $E1
…
On a 16-bit IIgs, it runs this way:
00/08AA: 54 5C A2 MVN $5C,$A2
00/08AD: 00 A5 BRK $A5
00/C074: B8 CLV
00/C075: 5C 10 00 E1 JMP $E10010
E1/0010: 5C CC B7 FF JMP $FFB7CC
FF/B7CC: 18 CLC
The 00 aligns to create a BRK instruction, which sends the IIgs into a
different bank and it never returns, causing a lock up/loop condition.
The fix is to NOP out the instructions at 08AA and 08AB to cause
everything to line back up correctly and run through the routine.
It begs the question as to why it was invalid to begin with… Corrupted
original upload? Bug in original cracking job that was never detected?
Edits were done at Track 14 Sector 0C at byte AA:
From: 54 5C
To: EA EA
Tested on a ROM1 and ROM3 and seemed to work fine…
datawiz/rich