Site Map | Contact Info | Home  
   Dragon's Lair Enhancement
   Space Ace Enhancement
   Phoenix FREEPLAY
   Frogger FREEPLAY
   D2K Jumpman Returns
 ROMHACK Toolbox
 Ordering Info
 Code Disassembly
 My Gameroom



Making of Dragon's Lair Enhancement ROMs

Below you'll find a series of emails between Dave Hallock and myself during the spring of 2002.  Reading them over now, I can barely understand what we were talking about.  But, somehow, in the moment, it all seemed to make sense.  You'd probably be surprised at how much effort went into making sure that these ROMs worked just right.  All in all it was a great project to "wook" on and I hope everyone enjoys it!

Well, I didn't save any emails that I sent, only the ones that I received--but you get the idea.  I chopped out stuff to keep the length down.

April 24, 2002 From Dave Hallock to Jeff Kulczycki
How's it goin'? I've started programming the moves for proto DL scenes. I'm only on the drawbridge, I havent played any of it yet to test. Damn! it sure is a lot more complicated when these branchpoints come into the mix!

April 24, 2002 From Dave Hallock to Jeff Kulczycki
>I left the skipper level in after the platforms because I think
>>that it is necessary since you want the platform to essentially behave 
>>the same way that a complete level does.

You're right. I was anticipating being able to do the same thing to the
falling platform that i did to the drawbridge to get it to replay only 1
time without needing a skipper level. But now that I think about it,
that logic only works for the first scene of the game. Perhaps I will
even add a skipper level after the drawbridge if there is room, just to
clean things up a bit. (I probably ought to handle that... there's
still a couple unique unorthodox things i did to that scene that I dont
think we've discussed, that would need to be carefully undone.)

>>Incidently I was able to make a code change that prevents the "80h Bug" 
>>that I was telling you about.

WooHoo! Sounds complicated!!! It's a shame that that "to search or not
to search" decision occurs before the sequence where we find our next
frame number. WACKY!!!! Who came up with that?? String em up!

>>I think swapping out scenes on levels for prototype or mirrored scenes 
>>will be easy once all the gameplay is operating smoothly. We'll see!

Yes, there is still that issue of the mirrored scenes. Perhaps the way
to tackle it is to add another step in the process of scene selection...
Using the current code, once a scene pointer has finally been selected,
maybe we can send that pointer through one more process... a 50/50
decision between 2 more scenes. If the scene has no mirror on the disc,
then the final 50/50 choice would be among the same 2 values. But if
the scene does have a mirror, then the 50/50 choice would select between
them. This way, ALL scenes of the game can go through this final 50/50
choice, and there would be no need to worry about whether or not a
mirror exists for any particular scene. This would require another,
new, doubly-long scene index list that looks something like this:

.dw TentaclesX ; 81 (the .dw Tentacles above would lead here, <---
.dw TentaclesX ; 82 where we choose between 81&82, (both the same))
.dw SnakesX ; 83
.dw SnakesX ; 84
.dw RopesX ; 85 (the .dw Ropes above would lead here, <- but this
.dw Ropes_mX ; 86 time, the choice between 85&86 picks our mirror)

If we die on a scene, we could still queue the originally queued value
for replaying the scene, such that when we replay the scene, we go
through the 50/50 choice again, and so might end up playing the reverse
of the one we died on.

May 16,2002 From Dave Hallock to Jeff Kulczycki

There's no 15 level maximum. Things are looking great in that regard.

The drawbridge thing I'm trying to do is ALMOST working out. Would you
be able to make it so that if you die on scene b2, that it never gets
queued to be replayed? (in other words, it would just be skipped over
and never seen again.)

b2 is the yellow room. If you die there I just want to skip it.

May 16,2002 From Dave Hallock to Jeff Kulczycki
ugh!! I can't control the pay-as-you-go interruption points as well as
I expected to.

fyi: DL normally has a pay-as-you-go interruption right before you start
to replay the scenes you've died on before entering the lair, or else if
you haven't died anywhere, then the p-a-y-g point is right before the

Problem #1
The gateways are invoking pay-as-you-go interruption points like orig DL
does, before the scenes you've died on are replayed. Additionally, I
added new p-a-y-g points directly into the gateways' seq data, because i
DID want the interuption points to show up AFTER you replay the scenes
you died on... But the result is, I'm getting a p-a-y-g interruption
before the scenes replay, and then another one again after the scenes
are replayed. (Or, if I dont die anywhere, I get 2 interruptions in a

Problem #2
The disc player doesn't search for the p-a-y-g text frames that I added
into the gateways if the previous sequence had a 80h.

Problem #3
I just realized I don't know how to put a p-a-y-g point before the lair.
I wanted a p-a-y-g right before the lair, but unlike original DL, I'd
like it to be AFTER you've replayed the cavern scenes that you've died
on. Currently, the A4 gateway IS a p-a-y-g point, as are all the
gateways, but it interrupts before you replay your dead cavern scenes. 
In any case, should problem #1 be fixed, then the A4 gateway would no
longer be a p-a-y-g point anyway, which leaves us back at the first
sentence of this paragraph.

Problem #4
The same p-a-y-g message keeps showing up. I thought they cycled, but
it looks like they don't. I don't know how to put the correct message
in the correct place.

Problem #5
999 out of 1000 people are never going to try this DIP setting, and this
is going to be a lot of work for nothing!!!! :(

May 17, 2002 From Dave Hallock to Jeff Kulczycki
I had to modify the scene matrix of castle section 1. It was
previously possible to get 3 scenes in a row to play the same trumpet
fanfare at the end, and it sounded REALLY bad. These section 1 changes
are not reflected on the DLE2.0 web page. The new caverns matrix IS at
the bottom of the DLE2.0 web page (it's 3 columns - each falling
platform jump-off point leads to 1 of the columns of 8 cavern scenes,
and the 8 scenes then always play in the order specified by that

June 24, 2002 From Dave Hallock to Jeff Kulczycki
In this version I swapped the proto attract mode in for the proto game,
and I put labels on the text message screens like in your commented
code. I figured that ought to be done because I sense some text
message manipulation coming on....

I copied in your comments for the coins-per-credit section. Tomorrow
I'm going to begin trying to restore the use of switch A1 for game
pricing, and restore the 4 coins per credit option, and also add in a
new 1 coin per credit option in the switch configuration that was
previously "not used". (I've already disabled the very-hard difficulty
and erased those scene indexes from the list.)

June 29, 2002 From Dave Hallock to Jeff Kulczycki
>Just to want the PAYG AFTER you play all the scenes that 
>>you died on, right? You don't want them before AND after, right? Just 


I just now got the 1, 2, 3, & 4 coins per credit options all working!
It looks like I will need to get you a copy of this new code before any work begins on the "deposit more coins" message, which I've confirmed I do need a little help with.

July 1, 2002 From Dave Hallock to Jeff Kulczycki
I'm pretty sure that by inputting the new gateway values into the PAYG section, that the game will still ask for more coins before replaying the scenes you died on. (I expect this to be the case since you suggested no change to the lair section right now, and the original game asks for more coins before replaying the scenes you died on).
The only problem with that is that the wording of the PAYG messages ("you've *completed* the section"), doesn't really allow the choice of leaving it that way. Upon reaching a gateway, is there a way to do the replay scenes check before doing the PAYG check?

July 9, 2002 From Dave Hallock to Jeff Kulczycki
>I can fix it so that it only searches once to the screen. I can also 
>>adjust the amount of time that remains when the "time" is "expiring". 
>> How much time do you want?

10 seconds? what do you think?

I can't remember.... does it look like the game goes straight from the
expire message to the attract mode, or does it show a "game over"
message first? Whatever it's doing is fine.

July 28, 2002 From Dave Hallock to Jeff Kulczycki
Well at least all the major stuff is done. It's good that a completely
working version can be shown at CGE.