Dl2hack

From DaphneWiki

Jump to: navigation, search

Enabling hints for all levels (not just first level)

Dragon's Lair 2 is written in C and compiled for x86. The v3.19 ROM will display the correct moves for the first level if the skill level is set to the easiest. However, if you don't have a lot of time and just want to play through the game, you may want to see the move hints for every move in the game. Here's the relevant code to modify:

seg000:27F4 loc_27F4:
seg000:27F4		    cmp	    word ptr ds:9C30h, 1
seg000:27F9		    jge	    loc_2850	    ; jump if difficulty >= 1
seg000:27FB		    mov	    bx,	ds:56AAh
seg000:27FF		    cmp	    byte ptr [bx+56CEh], 1
seg000:2804		    jnz	    loc_2850	    ; jump if level != 1 (change this to NOP NOP to always display hints)
seg000:2806		    cmp	    [bp+var_6],	1
seg000:280A		    jz	    loc_2812	    ; jump if ev_state == 1
seg000:280C		    cmp	    [bp+var_6],	2
seg000:2810		    jnz	    loc_2826	    ; jump if ev_state != 2
seg000:2812 
seg000:2812 loc_2812:
seg000:2812		    cmp	    [bp+var_2],	0
seg000:2816		    jz	    loc_2826
seg000:2818		    push    [bp+var_8]
seg000:281B		    call    sub_25D4	    ; SHOW THE HINT (call db_text_out)
seg000:281E		    add	    sp,	2
seg000:2821		    mov	    [bp+var_2],	0

The modification

Change location 2804 from 75 4A to 90 90 (two NO-Op calls) using a hex editor such as XVI32. This should make it so the ROM program doesn't care which level you're on. You should be able to test your changes using Daphne. Daphne will complain about a CRC error if you try to use a modified ROM but it should still work.

Disclaimer

All of this is theoretical and has not been tested. But it _should_ work. :)

Personal tools