VOGONS


Reply 40 of 50, by dr.zeissler

User metadata
Rank l33t
Rank
l33t
Scali wrote:

An A2000 is a Commodore Amiga 2000.
An A2286/8 is a bridgeboard for the Amiga 2000, which contains a 286 CPU at 8 MHz for PC compatibility.
The Q700 is an Apple MacIntosh Quadra 700 I assume, given that he speaks of NuBus cards. NuBus was the expansion port on old Macs.

100% right scali.

Thx for the ccaves_test, I will test it soon.

Retro-Gamer 😀PowerMac 6100-66/Houdini 486/66 - G4 Cube 450/Rage128pro OS9.0.1 - Macintosh LC/Apple IIe Card OS6.0.8 - Acorn A4000 Archimedes - Unisys CWD 486/66 + Aztech Washington

Reply 41 of 50, by Cga.8086

User metadata
Rank Member
Rank
Member
K1n9_Duk3 wrote:
I've finished the patches for keropi. See attached files. […]
Show full quote

I've finished the patches for keropi. See attached files.

Please note that these patches only work for one specific version of each game. That's version 1.4 (Apogee release) for Keen 4 and 5, and version 1.5 for Keen 6.

First of all, download CKPatch v0.11.3 here.

Download my patch scripts, then extract my patch scripts (PATCH?.TXT and CK?.BAT) into the game's directory. Also copy the corresponding CK?PATCH.EXE into that directory. To play the game, simply run the CK?.BAT file.

I'm not sure what happens when you try to run these patches on the wrong game version, so make sure you're using the correct version of the game when trying to run these patches. If I understand the syntax correctly, the patch scripts should only modify the code of the correct EXE, so if you try to run it on version 1.0, it should not change anything, but I haven't actually tested this.

By the way, I added the original assembly code as comments in the patch file, so you can see what's going on in the screen update code. If you know a bit about programming in assembly, you should be able to modify the patch for better results on your system.

Edit: If CKPatch shows an "unrecognized version" error, try unpacking the executable with UNP or UNLZEXE.

thanks, my card is a radeon 7000 PCI, and i really like it because the pc has no agp port
you think the patch will work? or it is only for fixing matrox issues

Reply 42 of 50, by K1n9_Duk3

User metadata
Rank Member
Rank
Member

If your system has issues with the scrolling in Keen 4-6, why don't you just try the patch (or the Keen 4 demo on which the patch is based) and see for yourself?

There's no way for me to tell if the patch will fix the issue on your system. I don't even know if your system has any problems running these games to begin with.

Reply 43 of 50, by orbifant

User metadata
Rank Newbie
Rank
Newbie
K1n9_Duk3 wrote:

I've finished the patches for keropi. See attached files.

Can also confirm, this works for my Matrox G450 PCI as well. Thank you very much, this was most annoying and disappointing to discover after I finished my system. Glad this tearing is gone now.

I wonder if you @K1n9_Duk3 could provide another patch for Keen 6 V1.4 or if you could give a hint on how you got the offset address for VW_SetScreen?

Reply 44 of 50, by K1n9_Duk3

User metadata
Rank Member
Rank
Member

Here's a modified patch script for Keen 6 (EGA) v1.4:

%ext ck6
%version 1.4

#replace the v1.4 delay code with the screen update code from the Keen 4 v1.0 demo
%patch $1E713
$55 # push bp
$8B $EC # mov bp, sp
$BA $DA $03 # mov dx, 3DAh
$FA # cli
# l1:
$EC # in al, dx
$A8 $01 # test al, 1
$74 $FB # jz l1
# l2:
$EC # in al, dx
$A8 $01 # test al, 1
$75 $FB # jnz l2
$8B $4E $06 # mov cx, [bp+arg_start]
$BA $D4 $03 # mov dx, 3D4h
$B0 $0C # mov al, 0Ch
$EE # out dx, al
$42 # inc dx
$8A $C5 # mov al, ch
$EE # out dx, al
$4A # dec dx
$B0 $0D # mov al, 0Dh
$EE # out dx, al
$8A $C1 # mov al, cl
$42 # inc dx
$EE # out dx, al
$C7 $06 $44 $EA $00 $00 # mov intcount, 0
# l3:
$8B $16 $44 $EA # mov dx, intcount
$83 $FA $09 # cmp dx, 9
$73 $19 # jnb l4
$FB # sti
$90 # nop
$90 # nop
$90 # nop
$90 # nop
$90 # nop
$90 # nop
$90 # nop
$90 # nop
$90 # nop
$FA # cli
$90 # nop
$90 # nop
$90 # nop
$90 # nop
$90 # nop
$90 # nop
$BA $DA $03 # mov dx, 3DAh
$EC # in al, dx
$A8 $08 # test al, 8
$74 $DE # jz l3
# l4:
$BA $C0 $03 # mov dx, 3C0h
$B0 $33 # mov al, 33h
$EE # out dx, al
Show last 12 lines
	$EB $00			#	jmp	$+2
$8A $46 $08 # mov al, [bp+arg_pan]
$EE # out dx, al
$FB # sti
$5D # pop bp
$CB # retf

#replace the start of VW_SetScreen() with a jump into the old code (see above)
%patch $1E794
$E9 $7C $FF

%end

Reply 45 of 50, by orbifant

User metadata
Rank Newbie
Rank
Newbie
K1n9_Duk3 wrote:
Here's a modified patch script for Keen 6 (EGA) v1.4: […]
Show full quote

Here's a modified patch script for Keen 6 (EGA) v1.4:

%ext ck6
...

Thank you very much. Works fine as expected 😀

Reply 48 of 50, by K1n9_Duk3

User metadata
Rank Member
Rank
Member

I'm most definitely not going to upload full versions of these games, neither patched nor unpatched. That would be illegal.

The point of using these patch scripts instead of providing fully patched executables is that the patching program can check if your game version matches the version the patch was made for. The graphics, sound and map files for these games are compressed and all the information necessary to decompress them is stored in the executable itself. This information varies for each game version, so copying a v1.4 executable into a non-v1.4 game folder will cause all kinds of issues.

If you need fully patched executables, then you need to use my patching utility and modify the patch scripts a little. Instead of the %ver and %ext commands, you need to enter one of the following at the beginning of the patch script:

#Keen 4 v1.4:
%exefile keen4e.exe 251712

#Keen 5 v1.4:
%exefile keen5e.exe 254832

#Keen 6 v1.4:
%exefile keen6.exe 260432

#Keen 6 v1.5:
%exefile keen6.exe 259632

Please take a look at this. The archive contains a set of slightly different patch scripts, which fix some display issues commonly seen in DOSBox (at the default settings) as well as on certain hardware. According to keropi, these new patches also fix the choppy scrolling issues on his EGA cards. Remember to edit the script files as mentioned above if you want to create fully patched executables with my patching utility.

If you don't trust the targeted patching utilities, then I guess providing fully patched executables for download (which would still be illegal) is not going to solve that problem.

Reply 50 of 50, by K1n9_Duk3

User metadata
Rank Member
Rank
Member

I'd rather not. I don't own Golden Axe for the PC and I know nothing about its code. To write a fix like this, I would have to reverse engineer large portions of the game code to find out which code is responsible for the scrolling and what code would be safe to overwrite with new code for the fix. That patch would only work on one very specific version of the game's executable and I would assume that mutltiple slightly different versions of the executable exist.

It was relatively easy to do this for the Keen games, since their game engine is amlost identical to the code used in Catacomb 3D and the Catacomb 3D source code has been released to the public.