# $Id: README.a2.compatibility.txt,v 1.6 2021/06/26 16:54:23 kentd Exp $

Bard's Tale II GS: Problem: Doesn't recognize any save disk as a ProDOS disk.
	It's detecting a "ProDOS" disk by checking for a string on block
	0 at offset 0x15e.  GSOS on system 6 has moved the string to 0x162,
	so disks inited under GSOS will be detected as "Not a PRODOS disk".
	Just make a copy of the Bard's Tale disk image to another file and
	then mount that new image and remove all the files using the Finder.
	Then rename the volume and you have a working save disk.

Beyond Castle Wolfenstein:  Make sure your disk is writeable (not compressed!)

Breakout: Has trouble loading from the cracked copy.
	From the BASIC prompt, do: "CALL -151" then "C083 N C083" then
	"BLOAD INTBASIC" then run breakout.  Then it runs fine.

Burgertime:  This is a bad crack.  Loader starts the game by writing
	the game entry point into $0036/$0037, and then executing a BRK
	instruction.  The BRK handler on an old Apple II will try to write
	out a message by calling through $0036/$0037, and this will start
	the game.  But on a IIgs, the ROM sets the $0036/$0037 vectors
	back to the default, and so we crash into the monitor instead.
	Here's a memory fix and a disk-image fix: From the crack screen,
	press F7 to open the KEGS debugger.
	In the KEGS debugger window enter: "1d0a:ea 6c 36 0".  Then just
	continue the game from the crack screen by pressing a key.  You can
	make this fix to the disk image using a sector editor and change
	Track $1E sector $09 offset $0A from "60 78 A9 03" to "EA 6C 36 00"
	and write it back.

Caverns of Callisto: Requires old C600 ROM in slot 6 (Slot 6==Your Card).

Championship Loderunner: Requires disk to be writeable or else it starts
	the level and then jumps immediately back to the title page.

Copy II+ 8.1: When doing a bit-copy, if the pattern at $5c13-$5c1b is detected
	($d5,$aa,$96,xx,xx,xx,xx,$aa,$aa, which is DOS 3.3 sector $00) at the
	start of the track, then it writes $5c21-$5c24 out just before it:
	$d5,$ab,$cd,$df when doing bit copies.  This may be either a serial
	number code, or just a way to detect bit-copied disks.  5.25" bit
	copies always seem to write 9-bit sync bytes, which is wasteful.

Drol: Needs slot 6 set to "Your Card" from the IIgs control panel
	(Ctrl-Cmd-ESC, then choose "Slots").
	I found Drol hard, so here are some cheats.  First, the standard cheat
	for Drol is to have infinite lives, this cheat is to edit the disk
	image:
	Track $0B, Sector $0A, byte $22 to EA EA
	Track $11, Sector $0A, byte $10 to EA EA
	Track $17, Sector $09, byte $B2 to EA EA
	I didn't create those cheats, I got it from textfiles.com.
	My cheats are for the monsters to never kill you--just run right
	through them.
	While playing Drol, press F7 to open the KEGS debugger, and then in
	the debugger window type:
	0/f28:18 18			# Monsters' missiles won't kill you
	0/e05:90 0c			# Monsters won't kill you
	Other things, like the bird, axes, swords still kill you.
	To easily solve the third screen, move your man to the far right
	side on the top level, so that you are directly above the woman
	on the bottom row.  Fly into the air "A" and then get to the KEGS
	debugger, and type:
	0/c:4
	and then continue playing by pressing "Z" and you will go all
	the way down and land on the woman and end the level.  It's
	useful to have made the two above patches so that touching monsters
	won't kill you.
	Two more patches that only apply to level 3, and so most be made
	in memory each time you enter level 3:
	6cf3:18 18 18			# Axes won't kill you
	6f70:38 38			# Swords/arrows won't kill you
	The bird and the guy you can't kill will still kill you.  These
	cheats were enough to make the game easily playable.
	In the game, your death is indicated by setting location $001E to
	$FF.  Setting breakpoints there can let you find other cheats.

Flobynoid: Must disable Fast Disk Emul (hit F7 to toggle it off) since
	game's loader relies on the sector order on the disk (reads 8
	sectors from the start without checking headers, assumes every other
	physical sector is skipped due to decode delays).

Jeopardy: Disk must be writeable or else it displays "DISK ERROR" and
	then crashes into the monitor.

mb-audit v0.7: You must run KEGS at 2.8MHz, but in the IIgs control panel
	(Ctrl-Cmd-ESC) set the speed to slow.  Ensure slot 4 is "Your Card".

Microbe: Crashes upon booting.
	Code at $599E tries to pull a return address off of a location
	beneath the stack pointer and jump to it, but it doesn't add 1
	correctly so it jumps to $5917 when it meant to jump to $5918.
	On a IIgs, this causes a BRK to be executed and the game to crash.
	This can be patched in memory in two places:
		0/599e:ba ca 9a 7d 00 01 48 98 7d 01 01 9d 01 01 60
		0/6f1d:ba ca 9a 7d 00 01 48 98 7d 01 01 9d 01 01 60
	The original byte sequence for both locations is:
		00/599e: ba             TSX
		00/599f: 7d ff 00       ADC     $00ff,X
		00/59a2: 85 94          STA     $94
		00/59a4: 98             TYA
		00/59a5: 7d 00 01       ADC     $0100,X
		00/59a8: 85 95          STA     $95
		00/59aa: 6c 94 00       JMP     ($0094)
	You can also patch the code onto the disk image.  I found
	the $599E version on Track $05, Sector $06, Byte $9E.
	I found the $6F1D version on the image at Track $0C, Sector $00,
	at byte $1D.

Moon Patrol: Crashes into the monitor after completing checkpoint E.
	To fix the Moon Patrol/Dung beetles version, from within KEGS:
		BLOAD MOON PATROL
		CALL -151
		1E15:EA
		919G
	and it will work fine.
	If you have the booting version that just has Moon Patrol on it,
	then from any point after the crack screen is shown, open the
	KEGS debugger with F7 and in that window enter:
		0/1e15:ea
	and then it will play fine.
	The bug is that the code executes an instruction with opcode $02,
	which is a NOP on 6502, but is a COP instruction to 65816.  The
	COP instruction acts like BRK and will crash.  The patch just
	makes it a real NOP.

Planetfall.woz: Do not start it by booting DOS/ProDOS and then doing PR#6.
	It doesn't reset the output vector value at $36/$37, so as soon as
	it tries to do any output, it reboots!  Oops!  You can boot it from
	ProDOS/DOS 3.3 by:  call -151  then  c600g

Robotron 2084:
Robot Battle:
	These cracks use a "Fastloader" which is buggy.
	It tries to JMP $F3D4 and expects to hit an RTS soon.
	But on a IIgs it will access some illegal memory causing a code
	yellow.  You can just ignore the code yellow.

Ultima IV: Play fine, but Mockingboard won't work.  There is apparently
	a patch in U4MBonGSv22.SHK, but I haven't tried it.

Ultima V:  Plays fine, but doesn't work with the Mockingboard enabled.
	This is an Ultima V bug: it's running code with ALTZP=1 which
	takes an interrupt.  it expects to run on the ALTZP stack.  But on
	a IIgs, the ROM will clear ALTZP and restores a safe stack in
	main memory, which Ultima V is not expecting.  So it will hang/crash.
	There is apparently a patch in U5MBonGSv11.SHK which can fix this,
	but I haven't tried it.

