I'm going to try to edit the existing event files by giving them a branch routine at the beginning; i.e. depending on dungeon level and/or other things it'll know which event to run from one file. This is because the jump table cannot be expanded.
Wish me luck, and I'll post my progress as I go along.
To start with, I'm expanding the sewers to have a "lost city" underneath them. So far I'm going to be expanding NM1F.PRG to be reusable for another event.
In front of the NM1F.PRG code I am inserting the following 3 lines:
Code: Select all
lda #$06
cmp $001e
beq $3bb4
Here is what the file will look like when I'm done. Anyone wanna guess what it does?
Code: Select all
* = $3b00 ; C64
lda #$06
cmp $001e
beq $3bb4
3b00:0002:1 20 06 08 jsr $0806
3b03:0005:1 a0 bb ldy #$bb
3b05:0007:1 a2 26 ldx #$26
3b07:0009:1 20 09 08 jsr $0809
3b0a:000c:1 20 0f 08 jsr $080f
3b0d:000f:1 20 3f 08 jsr $083f
3b10:0012:1 c9 d9 cmp #$d9
3b12:0014:1 f0 07 beq $3b1b
3b14:0016:1 c9 ce cmp #$ce
3b16:0018:1 d0 f2 bne $3b0a
3b18:001a:1 4c 06 08 jmp $0806
3b1b:001d:1 a9 01 lda #$01
3b1d:001f:1 8d 13 fc sta $fc13
3b20:0022:1 8d 14 fc sta $fc14
3b23:0025:1 4c 0c ae jmp $ae0c
3b26:0028:1 d4 BAD
3b27:0029:1 e8 inx
3b28:002a:1 e5 f2 sbc $f2
3b2a:002c:1 e5 a0 sbc $a0
3b2c:002e:1 e1 f2 sbc ($f2,x)
3b2e:0030:1 e5 a0 sbc $a0
3b30:0032:1 f3 BAD
3b31:0033:1 f4 BAD
3b32:0034:1 e1 e9 sbc ($e9,x)
3b34:0036:1 f2 BAD
3b35:0037:1 f3 BAD
3b36:0038:1 a0 e8 ldy #$e8
3b38:003a:1 e5 f2 sbc $f2
3b3a:003c:1 e5 ac sbc $ac
3b3c:003e:1 a0 f7 ldy #$f7
3b3e:0040:1 e8 inx
3b3f:0041:1 e9 e3 sbc #$e3
3b41:0043:1 e8 inx
3b42:0044:1 a0 f3 ldy #$f3
3b44:0046:1 e5 e5 sbc $e5
3b46:0048:1 ed a0 f4 sbc $f4a0
3b49:004b:1 ef BAD
3b4a:004c:1 a0 e7 ldy #$e7
3b4c:004e:1 ef BAD
3b4d:004f:1 a0 e1 ldy #$e1
3b4f:0051:1 a0 ec ldy #$ec
3b51:0053:1 ef BAD
3b52:0054:1 ee e7 a0 inc $a0e7
3b55:0057:1 f7 BAD
3b56:0058:1 e1 f9 sbc ($f9,x)
3b58:005a:1 a0 f5 ldy #$f5
3b5a:005c:1 f0 ae beq $3b0a
3b5c:005e:1 a0 c4 ldy #$c4
3b5e:0060:1 ef BAD
3b5f:0061:1 a0 f9 ldy #$f9
3b61:0063:1 ef BAD
3b62:0064:1 f5 a0 sbc $a0,x
3b64:0066:1 f7 BAD
3b65:0067:1 e9 f3 sbc #$f3
3b67:0069:1 e8 inx
3b68:006a:1 a0 f4 ldy #$f4
3b6a:006c:1 ef BAD
3b6b:006d:1 a0 f4 ldy #$f4
3b6d:006f:1 e1 eb sbc ($eb,x)
3b6f:0071:1 e5 a0 sbc $a0
3b71:0073:1 f4 BAD
3b72:0074:1 e8 inx
3b73:0075:1 e5 ed sbc $ed
3b75:0077:1 bf BAD
3b76:0078:1 a0 db ldy #$db
3b78:007a:1 d9 ad ce cmp $cead,y
3b7b:007d:1 dd dc c1 cmp $c1dc,x
3b7e:0080:1 00 brk
3b7f:0081:1 c2 BAD
3b80:0082:1 80 BAD
3b81:0083:1 c2 BAD
3b82:0084:1 00 brk
3b83:0085:1 c3 BAD
3b84:0086:1 b1 b0 lda ($b0),y
3b86:0088:1 a0 b9 ldy #$b9
3b88:008a:1 a0 b8 ldy #$b8
3b8a:008c:1 a0 b7 ldy #$b7
3b8c:008e:1 a0 b6 ldy #$b6
3b8e:0090:1 a0 b5 ldy #$b5
3b90:0092:1 a0 b4 ldy #$b4
3b92:0094:1 a0 b3 ldy #$b3
3b94:0096:1 a0 b2 ldy #$b2
3b96:0098:1 a0 b1 ldy #$b1
3b98:009a:1 a0 b0 ldy #$b0
3b9a:009c:1 ad b1 ad lda $adb1
3b9d:009f:1 b2 BAD
3b9e:00a0:1 ad b3 ad lda $adb3
3ba1:00a3:1 b4 ad ldy $ad,x
3ba3:00a5:1 b5 ad lda $ad,x
3ba5:00a7:1 b6 ad ldx $ad,y
3ba7:00a9:1 b7 BAD
3ba8:00aa:1 ad b8 ad lda $adb8
3bab:00ad:1 b9 cc cf lda $cfcc,y
3bae:00b0:1 ce e5 f7 dec $f7e5
3bb1:00b3:1 a0 cf ldy #$cf
3bb3:00b5:1 f2 BAD
3bb4:00b6:1 e4 e5 cpx $e5
3bb6:00b8:1 f2 BAD
3bb7:00b9:1 ba tsx
3bb8:00ba:1 00 brk
3bb9:00bb:1 00 brk
3bba:00bc:1 b1 be lda ($be),y
3bbc:00be:1 a0 ff ldy #$ff
3bbe:00c0:1 00 brk
3bbf:00c1:1 d2 BAD
3bc0:00c2:1 e1 e3 sbc ($e3,x)
3bc2:00c4:1 e5 ba sbc $ba
3bc4:00c6:1 a0 a0 ldy #$a0
3bc6:00c8:1 ff BAD
3bc7:00c9:1 00 brk
3bc8:00ca:1 c3 BAD
3bc9:00cb:1 ec e1 f3 cpx $f3e1
3bcc:00ce:1 f3 BAD
3bcd:00cf:1 ba tsx
3bce:00d0:1 a0 ff ldy #$ff
3bd0:00d2:1 a0 a0 ldy #$a0
3bd2:00d4:1 a0 a0 ldy #$a0
3bd4:00d6:1 a0 00 ldy #$00
3bd6:00d8:1 00 brk
3bd7:00d9:1 cc f6 ec cpy $ecf6
3bda:00dc:1 ba tsx
3bdb:00dd:1 ff BAD
3bdc:00de:1 a0 d3 ldy #$d3
3bde:00e0:1 f0 d0 beq $3bb0
3be0:00e2:1 f4 BAD
3be1:00e3:1 ba tsx
3be2:00e4:1 ff BAD
3be3:00e5:1 00 brk
3be4:00e6:1 c5 f8 cmp $f8
3be6:00e8:1 f0 e5 beq $3bcd
3be8:00ea:1 f2 BAD
3be9:00eb:1 ba tsx
3bea:00ec:1 ff BAD
3beb:00ed:1 00 brk
3bec:00ee:1 c7 BAD
3bed:00ef:1 ef BAD
3bee:00f0:1 ec e4 a0 cpx $a0e4
3bf1:00f3:1 ba tsx
3bf2:00f4:1 ff BAD
3bf3:00f5:1 a0 fc ldy #$fc
3bf5:00f7:1 de bf 00 dec $00bf,x
3bf8:00fa:1 00 brk
3bf9:00fb:1 00 brk
3bfa:00fc:1 01 20 ora ($20,x)
3bfc:00fe:1 fe 8f 3e inc $3e8f,x
.end
PROTOTYPE CODE - Sewers level 6, the "wastewater pipe" event
3bb4: ldx #$14
3bb6: jsr $0803 ; load image
3bb9: ldx #$??
3bbb: ldy #$??
3bbd: jsr $08c0 ; caption "Ewww!..."
3bc0: jsr $0806 ; clear text window
3bc3: ldx #$??
3bc5: ldy #$??
3bc7: jsr $0809 ; display "YOu have entered..." text
3bca: lda #$64 ;100 damage
3bcc: sta $0045
3bce: ldx #$01 ;party member 1
3bd0: ldy #$01 ; Poison mode
3bd2: stx $0044
sty $00c8 ; apply poison mode
jsr $089c ; apply 100 damage and "Psnd"
inx
cmp #$07
beq $????
jmp $3bd2
jmp $ae03 ; back to dungeon
Also, I'm wondering if there's an easy to use cross assembler for putting the code back together. [/code]