![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
DRAGON'S LAIR II PC CONVERSION - 20 March 2000
Written and developed by Rob DiNapoli | Additional hacking by Andrew Hepburn
INTRODUCTION
For your laserdisc game playing enjoyment, here is a PC port of the Dragon's Lair 2 ROM. The original DL2 ROM is 8088 based. Some (actually, a lot of) changes have been made to the DL2 ROM to enable it to work on a PC. You can read a little about these changes below.
PARTS NEEDED
DOWNLOAD
Full documentation including theory of operation and more are included in the download.
DOWNLOAD DL2CONV.ZIP NOW! (396k)
UPDATE!
The original version by Rob DiNapoli worked only with the second pressing of the DL2 laserdisc (part # C-910-00002-00). Andrew
Hepburn went through Rob's work and added support for the first pressing as well. (part # C-910-00001-00). Be sure to read the
notes below to find out what '.com' file you should use.
THEORY OF OPERATION
There are now 8 versions of the '.com' file included in the download to accomodate 8 different hardware configurations. They are as follows:
File | LD Player | Input | Disc Pressing |
DL2v1_J_1450.com | LDP-1450 | Joystick | 1st |
DL2v1_J_2000.com | LDP-2000* | Joystick | 1st |
DL2v1_K_1450.com | LDP-1450 | Keyboard | 1st |
DL2v1_K_2000.com | LDP-2000* | Keyboard | 1st |
DL2v2_J_1450.com | LDP-1450 | Joystick | 2nd |
DL2v2_J_2000.com | LDP-2000* | Joystick | 2nd |
DL2v2_K_1450.com | LDP-1450 | Keyboard | 2nd |
DL2v2_K_2000.com | LDP-2000* | Keyboard | 2nd |
Parallel Port | DL2 Joystick |
Pin 2 | Up |
Pin 3 | Down |
Pin 4 | Left |
Pin 5 | Right |
Pin 6 | 1 Player |
Pin 7 | 2 Player |
Pin 8 | Sword |
Pin 9 | Coin Switch |
Pin 17 | Ground |
Note: I don't own a DL2 cabinet. (This is wired into my DL cabinet.) Make sure that there is no voltage present between the coin switch and ground. I can't imagine why they would do this, but who knows what these crazy game designers did?
Other cabinet notes: The move 'beeps' come from the PC speaker. You have to wire the PC speaker into the main cabinet speakers.  And while on the subject of sound, you'll need to get a small audio amplifier and wire it in-between the laserdisc player audio out and the cabinet speakers.
ROM HACKING
You can look at dl2tech.txt for some of the things going through my mind while hacking... Most of it might not make sense, unless you know some assembly and are further interested in hacking the ROM.
These are some of the hacks that were needed:
MR. GRUMPY ANSWERS YOUR QUESTIONS
Q: Hey, can you make this work with a normal PC joystick?
A: It would really, really require a lot of work...
A: No.
Q: Please?
A: No.
Q: Why is there a slight pause before searching?
A: The delay routine that I inserted is too long for your computer. I was testing on a 400mhz machine. See the 'Delay
Tweaking' section for how to fix this. There is no harm in the delay being too long; it's just annoying.
Q: Why does keyboard / joystick input feel sluggish?
A: See the previous question
Q: Hey, I made it to Level x, and all of a sudden the game 'froze'.
A: Most likely, you set the delay time too low.
Q: I suck at this game. Can you tell me how to get infinite lives?
A: See the section below, marked 'I want to cheat'.
Q: What guarantee do I have that this will work for me?
A: None. In fact, there's the possibility that you can make your parallel port go *poof* should you decide to pump voltage through it.
Q: So, there's no warranty, express or implied?
A: Absolutely none.
DELAY TWEAKING
If the keyboard/joystick input feels sluggish, or there are delays upon searching, then you can adjust the delay routines in the program. As-is, the program runs fine on a 400mhz machine, and should run ok within 100mhz or so either way. If you want to run the program on a much faster / slower machine, then you must adjust the delay routines.
There are two values that need adjusting. They default to 0230h and 0150h. When testing on a 100mhz laptop, values of 0080h and 0150h worked ok. (These are not optimal values, I just chose them at 'random'; ie: You can probably lower the second number also.) Basically, the bigger the number, the longer the delay. Faster machines need bigger numbers.
To change the values, execute the following commands from a dos prompt:
(Yes, this seems lengthy, but it's really a simple process...)
Type: debug DL2v2_K_1450.com (press enter) - Substitute DL2v2_K_1450.com with the filename you are using.
The system will respond with a '-' character.
Type: a b001 (press enter)
The system will respond with xxxx:b001
Type: mov cx,0080 (press enter) - Substitute 0080 with the delay value you want.
The system will respond with xxxx:b004
Press enter.
The system will respond with a '-' character.
Type: a b031 (press enter)
The system will respond with xxxx:b031
Type: mov cx,0150 (press enter) - This is the second delay value mentioned above.
The system will respond with xxxx:b034
Press enter.
The system will respond with a '-' character.
Type: w (press enter) - This writes the changes to disc.
Type: q (press enter) - This quits the debug program.
You did remember to make a backup copy of the file before you changed it, right?
Q: So what happens if I put in numbers that are too big?
A: Searches are slow, and the keyboard / joystick input seems sluggish.
Q: And if the numbers are too small?
A: Searches won't complete, or the program will reboot itself constantly. If the delay time is only slightly too small,
the game may play, but occasionally 'freeze' at a random spot.
I WANT TO CHEAT
Well, I was going to build a cheat mode into the ROM image and enable it with a keyboard key, but I really feel that this takes all the fun out of the game... So, if you want the cheat mode, you're going to have to do a little work. It's similar to the delay tweaking procedure above. Keep in mind, that once you edit the ROM image, it stays changed. Make sure you have a backup copy.
From a dos prompt:
debug DL2v2_K_1450.com (press enter) - Substitute the filename you are using.
a 2a76 (press enter)
nop (press enter)
nop (press enter)
nop (press enter)
nop (press enter)
(press enter)
w (press enter)
q (press enter)
KNOWN PROBLEMS
DISCLAIMER
The above is believed to be correct and works fine for the author. No one is forcing you to do this. If you break your game, it's your fault!
QUESTIONS? COMMENTS?
PROBLEMS?
Contact Us
HOME
| LASER GAMES |
LASER COMMUNITY
| TECH CENTER
This website was created by
Jeff Kinder
& Dave Hallock, 1997 - 2021.
All trademarks and copyrighted materials are property of their respective
owners.