Dragon Dance/ROM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Dragon Dance.

Bank 0

ROM start

ROM0:0100 00               nop  
ROM0:0101 C3 50 01         jp   0150
...
ROM0:0150 C3 FB 01         jp   01FB         ;Game initialization
ROM0:0153 C3 19 04         jp   0419
ROM0:0156 C3 1C 04         jp   041C
ROM0:0159 C3 1F 04         jp   041F
ROM0:015C C3 22 04         jp   0422
ROM0:015F C3 25 04         jp   0425
ROM0:0162 C3 28 04         jp   0428
ROM0:0165 C3 2B 04         jp   042B
ROM0:0168 C3 2E 04         jp   042E
ROM0:016B C3 31 04         jp   0431
ROM0:016E C3 34 04         jp   0434
ROM0:0171 C3 39 04         jp   0439
ROM0:0174 C3 3E 04         jp   043E
ROM0:0177 C3 43 04         jp   0443
ROM0:017A C3 48 04         jp   0448
ROM0:017D C3 4B 04         jp   044B
ROM0:0180 C3 4E 04         jp   044E
ROM0:0183 C3 53 04         jp   0453
ROM0:0186 C3 56 04         jp   0456
ROM0:0189 C3 59 04         jp   0459
ROM0:018C C3 5C 04         jp   045C
ROM0:018F C3 5F 04         jp   045F
ROM0:0192 C3 62 04         jp   0462
ROM0:0195 C3 65 04         jp   0465
ROM0:0198 C3 68 04         jp   0468
ROM0:019B C3 6D 04         jp   046D
ROM0:019E C3 70 04         jp   0470
ROM0:01A1 C3 75 04         jp   0475
ROM0:01A4 C3 7A 04         jp   047A
ROM0:01A7 C3 7D 04         jp   047D
ROM0:01AA C3 82 04         jp   0482
ROM0:01AD C3 85 04         jp   0485
ROM0:01B0 C3 88 04         jp   0488
ROM0:01B3 C3 8B 04         jp   048B
ROM0:01B6 C3 8E 04         jp   048E
ROM0:01B9 C3 91 04         jp   0491
ROM0:01BC C3 16 04         jp   0416
ROM0:01BF C3 94 04         jp   0494
ROM0:01C2 C3 16 04         jp   0416
ROM0:01C5 C3 16 04         jp   0416
ROM0:01C8 C3 97 04         jp   0497
ROM0:01CB C3 9B 04         jp   049B
ROM0:01CE C3 A0 04         jp   04A0
ROM0:01D1 C3 16 04         jp   0416
ROM0:01D4 C3 16 04         jp   0416
ROM0:01D7 C3 16 04         jp   0416
ROM0:01DA C3 16 04         jp   0416
ROM0:01DD C3 16 04         jp   0416
ROM0:01E0 C3 A5 04         jp   04A5
ROM0:01E3 C3 A8 04         jp   04A8
ROM0:01E6 C3 B2 04         jp   04B2
ROM0:01E9 C3 B5 04         jp   04B5
ROM0:01EC C3 B8 04         jp   04B8
ROM0:01EF C3 BB 04         jp   04BB
ROM0:01F2 C3 BE 04         jp   04BE
ROM0:01F5 C3 C1 04         jp   04C1
ROM0:01F8 C3 C4 04         jp   04C4

Game initialization

ROM0:01FB EA 38 CA         ld   (CA38),a
ROM0:01FE F3               di   
ROM0:01FF CD 6A 05         call 056A
ROM0:0202 AF               xor  a
ROM0:0203 E0 0F            ld   (ff00+0F),a
ROM0:0205 E0 FF            ld   (ff00+FF),a
ROM0:0207 31 FE FF         ld   sp,FFFE
ROM0:020A 3E 0A            ld   a,0A
ROM0:020C EA 00 00         ld   (0000),a
ROM0:020F 3E 01            ld   a,01
ROM0:0211 EA 00 20         ld   (2000),a
ROM0:0214 3E 00            ld   a,00
ROM0:0216 EA 00 40         ld   (4000),a
ROM0:0219 CD 92 05         call 0592
ROM0:021C CD 32 06         call 0632
ROM0:021F 21 00 FE         ld   hl,FE00
ROM0:0222 0E 00            ld   c,00
ROM0:0224 22               ldi  (hl),a
ROM0:0225 0D               dec  c
ROM0:0226 20 FC            jr   nz,0224
ROM0:0228 21 80 FF         ld   hl,FF80
ROM0:022B 0E 7F            ld   c,7F
ROM0:022D 22               ldi  (hl),a
ROM0:022E 0D               dec  c
ROM0:022F 20 FC            jr   nz,022D
ROM0:0231 FA 38 CA         ld   a,(CA38)
ROM0:0234 F5               push af
ROM0:0235 CD 3D 06         call 063D
ROM0:0238 F1               pop  af
ROM0:0239 EA 38 CA         ld   (CA38),a
ROM0:023C CD 25 05         call 0525
ROM0:023F CD E6 03         call 03E6
ROM0:0242 3E 01            ld   a,01
ROM0:0244 EA 20 C6         ld   (C620),a
ROM0:0247 CD 67 0D         call 0D67
ROM0:024A 3E 83            ld   a,83
ROM0:024C EA A9 C5         ld   (C5A9),a
ROM0:024F E0 40            ld   (ff00+40),a
ROM0:0251 AF               xor  a
ROM0:0252 E0 0F            ld   (ff00+0F),a
ROM0:0254 3E 0D            ld   a,0D
ROM0:0256 E0 FF            ld   (ff00+FF),a
ROM0:0258 FB               ei   
ROM0:0259 CD 4A 28         call 284A
ROM0:025C 3E 40            ld   a,40
ROM0:025E E0 41            ld   (ff00+41),a
ROM0:0260 AF               xor  a
ROM0:0261 E0 0F            ld   (ff00+0F),a
ROM0:0263 3E 0B            ld   a,0B
ROM0:0265 E0 FF            ld   (ff00+FF),a
ROM0:0267 3E 06            ld   a,06
ROM0:0269 EA A0 C6         ld   (C6A0),a
ROM0:026C D7               rst  10 ROM0:026D 3E 00            ld   a,00
ROM0:026F EA EA C5         ld   (C5EA),a
ROM0:0272 CD AF 41         call 41AF
ROM0:0275 D2 8C 02         jp   nc,028C
ROM0:0278 3E 01            ld   a,01
ROM0:027A EA EA C5         ld   (C5EA),a
ROM0:027D CD 00 40         call 4000
ROM0:0280 FA 38 CA         ld   a,(CA38)
ROM0:0283 FE FF            cp   a,FF
ROM0:0285 28 05            jr   z,028C
ROM0:0287 3E 01            ld   a,01
ROM0:0289 EA AD C5         ld   (C5AD),a
ROM0:028C 3E 00            ld   a,00
ROM0:028E EA C0 C5         ld   (C5C0),a
ROM0:0291 3E 01            ld   a,01
ROM0:0293 DF               rst  18
ROM0:0294 FA 38 CA         ld   a,(CA38)
ROM0:0297 FE 11            cp   a,11
ROM0:0299 CA 9F 02         jp   z,029F
ROM0:029C C3 A4 02         jp   02A4
ROM0:029F 3E 01            ld   a,01
ROM0:02A1 EA 39 CA         ld   (CA39),a
ROM0:02A4 3E 01            ld   a,01
ROM0:02A6 EA 09 C8         ld   (C809),a
ROM0:02A9 3E 01            ld   a,01
ROM0:02AB EA 00 C8         ld   (C800),a
ROM0:02AE 3E 03            ld   a,03
ROM0:02B0 EA 07 C8         ld   (C807),a
ROM0:02B3 3E 01            ld   a,01
ROM0:02B5 EA A0 C6         ld   (C6A0),a
ROM0:02B8 3E 04            ld   a,04
ROM0:02BA EA C0 C5         ld   (C5C0),a
ROM0:02BD C3 E4 02         jp   02E4
ROM0:02C0 FA 38 CA         ld   a,(CA38)
ROM0:02C3 C3 FE 01         jp   01FE
ROM0:02C6 FA 07 DA         ld   a,(DA07)
ROM0:02C9 F5               push af
ROM0:02CA CD 4A 28         call 284A
ROM0:02CD F1               pop  af
ROM0:02CE 3C               inc  a
ROM0:02CF EA 07 DA         ld   (DA07),a
ROM0:02D2 C9               ret  

Bank 1

Joypad input - Stages

ROM1:468D CD ED 46         call 46ED
ROM1:4690 FA 1D C8         ld   a,(C81D)
ROM1:4693 A7               and  a
ROM1:4694 C2 C0 61         jp   nz,61C0
ROM1:4697 F0 8D            ld   a,(ff00+8D)
ROM1:4699 E6 01            and  a,01
ROM1:469B C4 0B 4A         call nz,4A0B
ROM1:469E F0 8D            ld   a,(ff00+8D)
ROM1:46A0 E6 02            and  a,02
ROM1:46A2 C4 C7 47         call nz,47C7
ROM1:46A5 F0 8C            ld   a,(ff00+8C)
ROM1:46A7 E6 10            and  a,10
ROM1:46A9 C4 E1 4C         call nz,4CE1
ROM1:46AC F0 8C            ld   a,(ff00+8C)
ROM1:46AE E6 20            and  a,20
ROM1:46B0 C4 63 4D         call nz,4D63
ROM1:46B3 F0 8C            ld   a,(ff00+8C)
ROM1:46B5 E6 40            and  a,40
ROM1:46B7 C4 E6 4D         call nz,4DE6
ROM1:46BA F0 8C            ld   a,(ff00+8C)
ROM1:46BC E6 80            and  a,80
ROM1:46BE C4 1D 4E         call nz,4E1D
ROM1:46C1 F0 8D            ld   a,(ff00+8D)
ROM1:46C3 E6 08            and  a,08
ROM1:46C5 C4 19 4A         call nz,4A19
ROM1:46C8 F0 8D            ld   a,(ff00+8D)
ROM1:46CA E6 04            and  a,04
ROM1:46CC C4 75 61         call nz,6175        ;Speed Boost
ROM1:46CF FA 0C C8         ld   a,(C80C)
ROM1:46D2 FE 0B            cp   a,0B
ROM1:46D4 CA EC 46         jp   z,46EC
ROM1:46D7 3C               inc  a
ROM1:46D8 EA 0C C8         ld   (C80C),a
ROM1:46DB FE 0A            cp   a,0A
ROM1:46DD C0               ret  nz
ROM1:46DE FA 0C C8         ld   a,(C80C)
ROM1:46E1 3D               dec  a
ROM1:46E2 EA 0C C8         ld   (C80C),a
ROM1:46E5 CD BB 4E         call 4EBB
ROM1:46E8 CD 53 4E         call 4E53
ROM1:46EB C9               ret  

Increment rebound count

ROM1:5E00 FA 20 C8         ld   a,(C820)
ROM1:5E03 3C               inc  a              ;rebounds_count ++
ROM1:5E04 EA 20 C8         ld   (C820),a       ;store rebounds_count to wC820
ROM1:5E07 FE 28            cp   a,28
ROM1:5E09 C0               ret  nz             ;if(rebounds_count < 40), exit this function
ROM1:5E0A CD 75 61         call 6175           ;Speed Boost
ROM1:5E0D AF               xor  a
ROM1:5E0E EA 20 C8         ld   (C820),a
ROM1:5E11 C9               ret  

Speed Boost

ROM1:6175 FA 1B C8         ld   a,(C81B)
ROM1:6178 FE 09            cp   a,09
ROM1:617A C8               ret  z              ;if(ball_speed == 9), exit this function
ROM1:617B 3E 19            ld   a,19
ROM1:617D E0 A1            ld   (ff00+A1),a
ROM1:617F FA 1B C8         ld   a,(C81B)
ROM1:6182 21 22 9A         ld   hl,9A22
ROM1:6185 5F               ld   e,a
ROM1:6186 16 00            ld   d,00
ROM1:6188 19               add  hl,de
ROM1:6189 C6 1E            add  a,1E
ROM1:618B CD 9B 01         call 019B
ROM1:618E 2B               dec  hl
ROM1:618F C6 09            add  a,09
ROM1:6191 CD 9B 01         call 019B
ROM1:6194 FA 1B C8         ld   a,(C81B)
ROM1:6197 3C               inc  a              ;ball_speed ++
ROM1:6198 EA 1B C8         ld   (C81B),a       ;store ball_speed to wC81B
ROM1:619B C9               ret  

Boss Program

Initialize Boss

ROM1:6635 3E 0C            ld   a,0C
ROM1:6637 CD 74 01         call 0174
ROM1:663A 3E 01            ld   a,01
ROM1:663C EA 25 CA         ld   (CA25),a
ROM1:663F AF               xor  a
ROM1:6640 EA 0A CA         ld   (CA0A),a
ROM1:6643 3E 01            ld   a,01
ROM1:6645 EA 17 CA         ld   (CA17),a
ROM1:6648 AF               xor  a
ROM1:6649 EA 23 CA         ld   (CA23),a
ROM1:664C EA 4E CA         ld   (CA4E),a
ROM1:664F EA 4F CA         ld   (CA4F),a
ROM1:6652 AF               xor  a
ROM1:6653 EA 29 CA         ld   (CA29),a
ROM1:6656 EA 2A CA         ld   (CA2A),a
ROM1:6659 AF               xor  a
ROM1:665A EA 1C CA         ld   (CA1C),a
ROM1:665D EA 3A CA         ld   (CA3A),a
ROM1:6660 EA 23 CA         ld   (CA23),a
ROM1:6663 EA 32 CA         ld   (CA32),a
ROM1:6666 EA 3F CA         ld   (CA3F),a
ROM1:6669 EA 26 CA         ld   (CA26),a
ROM1:666C EA 22 CA         ld   (CA22),a
ROM1:666F EA 3B CA         ld   (CA3B),a
ROM1:6672 FA 23 C8         ld   a,(C823)
ROM1:6675 0E 00            ld   c,00
ROM1:6677 57               ld   d,a
ROM1:6678 0C               inc  c
ROM1:6679 D6 0A            sub  a,0A
ROM1:667B D2 77 66         jp   nc,6677
ROM1:667E 0D               dec  c
ROM1:667F 0D               dec  c
ROM1:6680 79               ld   a,c
ROM1:6681 EA 31 CA         ld   (CA31),a
ROM1:6684 3E 0D            ld   a,0D
ROM1:6686 81               add  c
ROM1:6687 CD 74 01         call 0174
ROM1:668A FA 31 CA         ld   a,(CA31)
ROM1:668D 4F               ld   c,a
ROM1:668E 21 F1 7D         ld   hl,7DF1
ROM1:6691 06 00            ld   b,00
ROM1:6693 09               add  hl,bc
ROM1:6694 7E               ld   a,(hl)
ROM1:6695 EA 2B CA         ld   (CA2B),a       ;boss_life = (1:7DF1 + wCA31)
ROM1:6698 21 0F 7E         ld   hl,7E0F
ROM1:669B 09               add  hl,bc
ROM1:669C 7E               ld   a,(hl)
ROM1:669D EA 20 CA         ld   (CA20),a
ROM1:66A0 21 FB 7D         ld   hl,7DFB
ROM1:66A3 CB 21            sla  c
ROM1:66A5 09               add  hl,bc
ROM1:66A6 7E               ld   a,(hl)
ROM1:66A7 EA 1A CA         ld   (CA1A),a
ROM1:66AA 23               inc  hl
ROM1:66AB 7E               ld   a,(hl)
ROM1:66AC EA 1B CA         ld   (CA1B),a
ROM1:66AF 21 41 7E         ld   hl,7E41
ROM1:66B2 09               add  hl,bc
ROM1:66B3 7E               ld   a,(hl)
ROM1:66B4 EA 36 CA         ld   (CA36),a
ROM1:66B7 23               inc  hl
ROM1:66B8 7E               ld   a,(hl)
ROM1:66B9 EA 37 CA         ld   (CA37),a
ROM1:66BC 21 55 7E         ld   hl,7E55
ROM1:66BF 09               add  hl,bc
ROM1:66C0 7E               ld   a,(hl)
ROM1:66C1 EA 3D CA         ld   (CA3D),a
ROM1:66C4 23               inc  hl
ROM1:66C5 7E               ld   a,(hl)
ROM1:66C6 EA 3E CA         ld   (CA3E),a
ROM1:66C9 21 5A 7D         ld   hl,7D5A
ROM1:66CC 09               add  hl,bc
ROM1:66CD 2A               ldi  a,(hl)
ROM1:66CE 66               ld   h,(hl)
ROM1:66CF 6F               ld   l,a
ROM1:66D0 7E               ld   a,(hl)
ROM1:66D1 EA 1D CA         ld   (CA1D),a
ROM1:66D4 23               inc  hl
ROM1:66D5 7E               ld   a,(hl)
ROM1:66D6 EA 1E CA         ld   (CA1E),a
ROM1:66D9 23               inc  hl
ROM1:66DA 7E               ld   a,(hl)
ROM1:66DB EA 1F CA         ld   (CA1F),a
ROM1:66DE FA 23 C8         ld   a,(C823)
ROM1:66E1 FE 28            cp   a,28
ROM1:66E3 C0               ret  nz
ROM1:66E4 C9               ret  
ROM1:66E5 FA 3A CA         ld   a,(CA3A)
ROM1:66E8 A7               and  a
ROM1:66E9 C0               ret  nz
ROM1:66EA 3E 01            ld   a,01
ROM1:66EC EA 3A CA         ld   (CA3A),a
ROM1:66EF 3E 03            ld   a,03
ROM1:66F1 EA 5A CA         ld   (CA5A),a
ROM1:66F4 FA 23 C8         ld   a,(C823)
ROM1:66F7 FE 28            cp   a,28
ROM1:66F9 CA 4D 67         jp   z,674D
ROM1:66FC 3E 01            ld   a,01
ROM1:66FE EA 20 C3         ld   (C320),a
ROM1:6701 FA 31 CA         ld   a,(CA31)
ROM1:6704 47               ld   b,a
ROM1:6705 CB 27            sla  a
ROM1:6707 80               add  b
ROM1:6708 21 19 7E         ld   hl,7E19
ROM1:670B 16 00            ld   d,00
ROM1:670D 5F               ld   e,a
ROM1:670E 19               add  hl,de
ROM1:670F 7E               ld   a,(hl)
ROM1:6710 EA 21 C3         ld   (C321),a
ROM1:6713 FA 1A CA         ld   a,(CA1A)
ROM1:6716 C6 08            add  a,08
ROM1:6718 EA 22 C3         ld   (C322),a
ROM1:671B FA 1B CA         ld   a,(CA1B)
ROM1:671E C6 10            add  a,10
ROM1:6720 EA 23 C3         ld   (C323),a
ROM1:6723 FA 23 C8         ld   a,(C823)
ROM1:6726 FE 0A            cp   a,0A
ROM1:6728 CA 3B 67         jp   z,673B
ROM1:672B FE 1E            cp   a,1E
ROM1:672D CA 44 67         jp   z,6744
ROM1:6730 FE 32            cp   a,32
ROM1:6732 CA 5B 67         jp   z,675B
ROM1:6735 FE 5A            cp   a,5A
ROM1:6737 CA 6C 67         jp   z,676C
ROM1:673A C9               ret  

Final Boss - Phase 2

ROM1:6884 FA 4E CA         ld   a,(CA4E)
ROM1:6887 A7               and  a
ROM1:6888 C2 B6 68         jp   nz,68B6
ROM1:688B 3E 96            ld   a,96
ROM1:688D EA 2B CA         ld   (CA2B),a       ;boss_life = 150
ROM1:6890 3E 08            ld   a,08
ROM1:6892 EA 36 CA         ld   (CA36),a
ROM1:6895 EA 37 CA         ld   (CA37),a
ROM1:6898 AF               xor  a
ROM1:6899 EA 29 CA         ld   (CA29),a
ROM1:689C EA 2A CA         ld   (CA2A),a
ROM1:689F 3E 01            ld   a,01
ROM1:68A1 EA 4E CA         ld   (CA4E),a
ROM1:68A4 3E 02            ld   a,02
ROM1:68A6 EA C2 C5         ld   (C5C2),a
ROM1:68A9 3E 08            ld   a,08
ROM1:68AB E0 A0            ld   (ff00+A0),a
ROM1:68AD 11 20 C3         ld   de,C320
ROM1:68B0 3E 0B            ld   a,0B
ROM1:68B2 CD 7D 01         call 017D
ROM1:68B5 C9               ret  

Inflict Damage to the Boss

ROM1:7656 FA 25 CA         ld   a,(CA25)
ROM1:7659 A7               and  a
ROM1:765A CA E4 76         jp   z,76E4
ROM1:765D FA 23 C8         ld   a,(C823)
ROM1:7660 FE 28            cp   a,28
ROM1:7662 CA AE 77         jp   z,77AE
ROM1:7665 FE 46            cp   a,46
ROM1:7667 CA D4 77         jp   z,77D4
ROM1:766A FA 0F C8         ld   a,(C80F)
ROM1:766D 5F               ld   e,a
ROM1:766E FA 0E C8         ld   a,(C80E)
ROM1:7671 4F               ld   c,a
ROM1:7672 FA 1B CA         ld   a,(CA1B)
ROM1:7675 47               ld   b,a
ROM1:7676 7B               ld   a,e
ROM1:7677 B8               cp   b
ROM1:7678 DA E4 76         jp   c,76E4
ROM1:767B FA 3E CA         ld   a,(CA3E)
ROM1:767E 80               add  b
ROM1:767F 47               ld   b,a
ROM1:7680 7B               ld   a,e
ROM1:7681 B8               cp   b
ROM1:7682 D2 E4 76         jp   nc,76E4
ROM1:7685 FA 1A CA         ld   a,(CA1A)
ROM1:7688 47               ld   b,a
ROM1:7689 FA 23 C8         ld   a,(C823)
ROM1:768C FE 14            cp   a,14
ROM1:768E CC 86 77         call z,7786
ROM1:7691 79               ld   a,c
ROM1:7692 B8               cp   b
ROM1:7693 DA E4 76         jp   c,76E4
ROM1:7696 FA 3D CA         ld   a,(CA3D)
ROM1:7699 80               add  b
ROM1:769A 47               ld   b,a
ROM1:769B 79               ld   a,c
ROM1:769C B8               cp   b
ROM1:769D D2 E4 76         jp   nc,76E4
ROM1:76A0 FA 39 C8         ld   a,(C839)
ROM1:76A3 A7               and  a
ROM1:76A4 C4 49 77         call nz,7749
ROM1:76A7 FA 38 C8         ld   a,(C838)
ROM1:76AA FE 04            cp   a,04
ROM1:76AC CC 40 77         call z,7740
ROM1:76AF FA 26 CA         ld   a,(CA26)
ROM1:76B2 A7               and  a
ROM1:76B3 3E 01            ld   a,01
ROM1:76B5 C0               ret  nz
ROM1:76B6 FA 23 C8         ld   a,(C823)
ROM1:76B9 FE 14            cp   a,14
ROM1:76BB CA 7A 77         jp   z,777A
ROM1:76BE FE 5A            cp   a,5A
ROM1:76C0 CA 7A 77         jp   z,777A
ROM1:76C3 FA 2B CA         ld   a,(CA2B)
ROM1:76C6 D6 05            sub  a,05           ;boss_life -= 5
ROM1:76C8 EA 2B CA         ld   (CA2B),a       ;store boss_life to wCA2B
ROM1:76CB FE F0            cp   a,F0
ROM1:76CD D4 E6 76         call nc,76E6        ;if(boss_life ≥ 240), call Destroy Boss
ROM1:76D0 3E 32            ld   a,32
ROM1:76D2 E0 A1            ld   (ff00+A1),a
ROM1:76D4 3E 0A            ld   a,0A
ROM1:76D6 EA 26 CA         ld   (CA26),a
ROM1:76D9 FA 23 C8         ld   a,(C823)
ROM1:76DC FE 46            cp   a,46
ROM1:76DE CA DE 77         jp   z,77DE
ROM1:76E1 3E 01            ld   a,01
ROM1:76E3 C9               ret  

1:76E4 (xor a)

ROM1:76E4 AF               xor  a
ROM1:76E5 C9               ret  

Destroy Boss

ROM1:76E6 FA 23 C8         ld   a,(C823)
ROM1:76E9 FE 28            cp   a,28
ROM1:76EB CA 58 77         jp   z,7758
ROM1:76EE 3E 00            ld   a,00
ROM1:76F0 EA 40 C1         ld   (C140),a
ROM1:76F3 3E 00            ld   a,00
ROM1:76F5 EA A0 C0         ld   (C0A0),a
ROM1:76F8 3E 00            ld   a,00
ROM1:76FA EA 40 C3         ld   (C340),a
ROM1:76FD AF               xor  a
ROM1:76FE EA 23 CA         ld   (CA23),a
ROM1:7701 3E 00            ld   a,00
ROM1:7703 EA 60 C3         ld   (C360),a
ROM1:7706 AF               xor  a
ROM1:7707 EA 32 CA         ld   (CA32),a
ROM1:770A 3E 00            ld   a,00
ROM1:770C EA 80 C3         ld   (C380),a
ROM1:770F AF               xor  a
ROM1:7710 EA 3F CA         ld   (CA3F),a
ROM1:7713 3E 01            ld   a,01
ROM1:7715 EA 20 C6         ld   (C620),a
ROM1:7718 FA 1A CA         ld   a,(CA1A)
ROM1:771B C6 10            add  a,10
ROM1:771D EA 0E C8         ld   (C80E),a
ROM1:7720 FA 1B CA         ld   a,(CA1B)
ROM1:7723 C6 0C            add  a,0C
ROM1:7725 EA 0F C8         ld   (C80F),a
ROM1:7728 3E 02            ld   a,02
ROM1:772A E0 A0            ld   (ff00+A0),a
ROM1:772C 3E 05            ld   a,05
ROM1:772E EA C2 C5         ld   (C5C2),a
ROM1:7731 FA 4E CA         ld   a,(CA4E)
ROM1:7734 A7               and  a
ROM1:7735 C8               ret  z
ROM1:7736 06 07            ld   b,07
ROM1:7738 0E 02            ld   c,02
ROM1:773A 1E 1D            ld   e,1D
ROM1:773C CD 6E 01         call 016E
ROM1:773F C9               ret

Heal 4 HP to the Boss

ROM1:7740 FA 2B CA         ld   a,(CA2B)
ROM1:7743 C6 04            add  a,04           ;boss_life += 4
ROM1:7745 EA 2B CA         ld   (CA2B),a       ;store boss_life to wCA2B
ROM1:7748 C9               ret  

1:77EA

ROM1:77EA FA 23 C8         ld   a,(C823)
ROM1:77ED FE 1E            cp   a,1E
ROM1:77EF CA 0E 78         jp   z,780E
ROM1:77F2 FE 3C            cp   a,3C
ROM1:77F4 CA 0E 78         jp   z,780E
ROM1:77F7 FE 46            cp   a,46
ROM1:77F9 CA 0E 78         jp   z,780E
ROM1:77FC FE 50            cp   a,50
ROM1:77FE CA 0E 78         jp   z,780E
ROM1:7801 FA 4E CA         ld   a,(CA4E)
ROM1:7804 A7               and  a
ROM1:7805 C2 CC 79         jp   nz,79CC
ROM1:7808 FA 0B C8         ld   a,(C80B)
ROM1:780B E6 07            and  a,07
ROM1:780D C0               ret  nz
ROM1:780E FA 23 C8         ld   a,(C823)
ROM1:7811 FE 28            cp   a,28
ROM1:7813 CA 26 79         jp   z,7926
ROM1:7816 FA 20 CA         ld   a,(CA20)
ROM1:7819 A7               and  a
ROM1:781A C8               ret  z
ROM1:781B 3D               dec  a
ROM1:781C EA 20 CA         ld   (CA20),a
ROM1:781F FA 23 C8         ld   a,(C823)
ROM1:7822 FE 3C            cp   a,3C
ROM1:7824 CA 37 79         jp   z,7937
ROM1:7827 FE 46            cp   a,46
ROM1:7829 CA 78 79         jp   z,7978
ROM1:782C FA 1E CA         ld   a,(CA1E)
ROM1:782F 47               ld   b,a
ROM1:7830 FA 1A CA         ld   a,(CA1A)
ROM1:7833 80               add  b
ROM1:7834 D6 04            sub  a,04
ROM1:7836 EA 1A CA         ld   (CA1A),a
ROM1:7839 CD 56 76         call 7656
ROM1:783C F5               push af
ROM1:783D A7               and  a
ROM1:783E C4 0F 5D         call nz,5D0F
ROM1:7841 F1               pop  af
ROM1:7842 A7               and  a
ROM1:7843 CA 63 78         jp   z,7863
ROM1:7846 FA 1E CA         ld   a,(CA1E)
ROM1:7849 47               ld   b,a
ROM1:784A FA 0E C8         ld   a,(C80E)
ROM1:784D 80               add  b
ROM1:784E D6 04            sub  a,04
ROM1:7850 EA 0E C8         ld   (C80E),a
ROM1:7853 FA 23 C8         ld   a,(C823)
ROM1:7856 FE 1E            cp   a,1E
ROM1:7858 CC 21 79         call z,7921
ROM1:785B FA 23 C8         ld   a,(C823)
ROM1:785E FE 50            cp   a,50
ROM1:7860 CC B0 79         call z,79B0
ROM1:7863 FA 1F CA         ld   a,(CA1F)
ROM1:7866 47               ld   b,a
ROM1:7867 FA 1B CA         ld   a,(CA1B)
ROM1:786A 80               add  b
ROM1:786B D6 04            sub  a,04
ROM1:786D EA 1B CA         ld   (CA1B),a
ROM1:7870 CD 56 76         call 7656
ROM1:7873 F5               push af
ROM1:7874 A7               and  a
ROM1:7875 C4 A8 5D         call nz,5DA8
ROM1:7878 F1               pop  af
ROM1:7879 A7               and  a
ROM1:787A CA 9A 78         jp   z,789A
ROM1:787D FA 1F CA         ld   a,(CA1F)
ROM1:7880 47               ld   b,a
ROM1:7881 FA 0F C8         ld   a,(C80F)
ROM1:7884 80               add  b
ROM1:7885 D6 04            sub  a,04
ROM1:7887 EA 0F C8         ld   (C80F),a
ROM1:788A FA 23 C8         ld   a,(C823)
ROM1:788D FE 1E            cp   a,1E
ROM1:788F CC 21 79         call z,7921
ROM1:7892 FA 23 C8         ld   a,(C823)
ROM1:7895 FE 50            cp   a,50
ROM1:7897 CC BE 79         call z,79BE
ROM1:789A FA 1D CA         ld   a,(CA1D)
ROM1:789D 3D               dec  a
ROM1:789E EA 1D CA         ld   (CA1D),a
ROM1:78A1 A7               and  a
ROM1:78A2 C0               ret  nz
ROM1:78A3 FA 1C CA         ld   a,(CA1C)
ROM1:78A6 C6 03            add  a,03
ROM1:78A8 EA 1C CA         ld   (CA1C),a
ROM1:78AB FA 31 CA         ld   a,(CA31)
ROM1:78AE CB 27            sla  a
ROM1:78B0 4F               ld   c,a
ROM1:78B1 21 5A 7D         ld   hl,7D5A
ROM1:78B4 06 00            ld   b,00
ROM1:78B6 09               add  hl,bc
ROM1:78B7 2A               ldi  a,(hl)
ROM1:78B8 66               ld   h,(hl)
ROM1:78B9 6F               ld   l,a
ROM1:78BA FA 1C CA         ld   a,(CA1C)
ROM1:78BD 5F               ld   e,a
ROM1:78BE 16 00            ld   d,00
ROM1:78C0 19               add  hl,de
ROM1:78C1 7E               ld   a,(hl)
ROM1:78C2 FE FF            cp   a,FF
ROM1:78C4 CA D5 78         jp   z,78D5
ROM1:78C7 EA 1D CA         ld   (CA1D),a
ROM1:78CA 23               inc  hl
ROM1:78CB 7E               ld   a,(hl)
ROM1:78CC EA 1E CA         ld   (CA1E),a
ROM1:78CF 23               inc  hl
ROM1:78D0 7E               ld   a,(hl)
ROM1:78D1 EA 1F CA         ld   (CA1F),a
ROM1:78D4 C9               ret  

Final Boss Phase 2 - Top center of screen w/ big attack at HP < 100

ROM1:79CC FA 2B CA         ld   a,(CA2B)
ROM1:79CF FE 64            cp   a,64
ROM1:79D1 D2 08 78         jp   nc,7808        ;if(boss_life ≥ 100), jump to 1:7808
ROM1:79D4 FA 0B C8         ld   a,(C80B)
ROM1:79D7 E6 03            and  a,03
ROM1:79D9 C0               ret  nz
ROM1:79DA FA 20 CA         ld   a,(CA20)
ROM1:79DD A7               and  a
ROM1:79DE C8               ret  z
ROM1:79DF 3D               dec  a
ROM1:79E0 EA 20 CA         ld   (CA20),a
ROM1:79E3 FA 4F CA         ld   a,(CA4F)
ROM1:79E6 A7               and  a
ROM1:79E7 C0               ret  nz
ROM1:79E8 3E 01            ld   a,01
ROM1:79EA EA 4F CA         ld   (CA4F),a
ROM1:79ED FA 1A CA         ld   a,(CA1A)
ROM1:79F0 FE 38            cp   a,38
ROM1:79F2 CA 0E 7A         jp   z,7A0E
ROM1:79F5 DA 03 7A         jp   c,7A03
ROM1:79F8 3D               dec  a
ROM1:79F9 EA 1A CA         ld   (CA1A),a
ROM1:79FC AF               xor  a
ROM1:79FD EA 4F CA         ld   (CA4F),a
ROM1:7A00 C3 0E 7A         jp   7A0E
ROM1:7A03 3C               inc  a
ROM1:7A04 EA 1A CA         ld   (CA1A),a
ROM1:7A07 AF               xor  a
ROM1:7A08 EA 4F CA         ld   (CA4F),a
ROM1:7A0B C3 0E 7A         jp   7A0E
ROM1:7A0E FA 1B CA         ld   a,(CA1B)
ROM1:7A11 FE 10            cp   a,10
ROM1:7A13 CA 2B 7A         jp   z,7A2B
ROM1:7A16 DA 22 7A         jp   c,7A22
ROM1:7A19 3D               dec  a
ROM1:7A1A EA 1B CA         ld   (CA1B),a
ROM1:7A1D AF               xor  a
ROM1:7A1E EA 4F CA         ld   (CA4F),a
ROM1:7A21 C9               ret

1:7D5A (Array)

ROM1:7D5A
6E
7D
7B
7D
94
7D
A7
7D
AB
7D
B8
7D
BF
7D
C3
7D
CD
7D
DA
7D
15
04
02
2A
06
05
15
04
02
2A
02
05
FF

Boss HP Array

ROM1:7DF1
64 - 100 HP - Stage 10
32 -  50 HP - Stage 20
46 -  70 HP - Stage 30
C8 - 200 HP - Wall Boss
64 - 100 HP - Stage 50
46 -  60 HP - Stage 60
46 -  60 HP - Stage 70
AA - 170 HP - Stage 80
28 -  40 HP - Stage 90
78 - 120 HP - Final Boss Phase 1

Bank 4

Password

Password check

  • 0x115EE-0x1165A - Retrieves the entered password, and compares it with the position of level IDs in the array at 0x11900.
ROM4:55EE FA 48 CA         ld   a,(CA48)
ROM4:55F1 FE 04            cp   a,04
ROM4:55F3 C2 E9 55         jp   nz,55E9
ROM4:55F6 FA 49 CA         ld   a,(CA49)
ROM4:55F9 CB 27            sla  a
ROM4:55FB 47               ld   b,a
ROM4:55FC CB 27            sla  a
ROM4:55FE CB 27            sla  a
ROM4:5600 80               add  b
ROM4:5601 47               ld   b,a
ROM4:5602 FA 4A CA         ld   a,(CA4A)
ROM4:5605 80               add  b
ROM4:5606 EA 45 CA         ld   (CA45),a
ROM4:5609 FA 4B CA         ld   a,(CA4B)
ROM4:560C CB 27            sla  a
ROM4:560E 47               ld   b,a
ROM4:560F CB 27            sla  a
ROM4:5611 CB 27            sla  a
ROM4:5613 80               add  b
ROM4:5614 47               ld   b,a
ROM4:5615 FA 4C CA         ld   a,(CA4C)
ROM4:5618 80               add  b
ROM4:5619 EA 46 CA         ld   (CA46),a
ROM4:561C C3 20 56         jp   5620
ROM4:561F C9               ret  
ROM4:5620 FA 45 CA         ld   a,(CA45)
ROM4:5623 21 00 59         ld   hl,5900
ROM4:5626 5F               ld   e,a
ROM4:5627 16 00            ld   d,00
ROM4:5629 19               add  hl,de
ROM4:562A 7E               ld   a,(hl)
ROM4:562B 3C               inc  a
ROM4:562C 47               ld   b,a
ROM4:562D FA 46 CA         ld   a,(CA46)
ROM4:5630 21 64 59         ld   hl,5964
ROM4:5633 5F               ld   e,a
ROM4:5634 16 00            ld   d,00
ROM4:5636 19               add  hl,de
ROM4:5637 7E               ld   a,(hl)
ROM4:5638 3C               inc  a
ROM4:5639 B8               cp   b
ROM4:563A C2 5B 56         jp   nz,565B
ROM4:563D 78               ld   a,b
ROM4:563E EA 09 C8         ld   (C809),a
ROM4:5641 EA 23 C8         ld   (C823),a
ROM4:5644 3E 02            ld   a,02
ROM4:5646 E0 A0            ld   (ff00+A0),a
ROM4:5648 3E 03            ld   a,03
ROM4:564A E0 A1            ld   (ff00+A1),a
ROM4:564C 3E 04            ld   a,04
ROM4:564E CD 92 01         call 0192
ROM4:5651 3E 05            ld   a,05
ROM4:5653 EA C2 C5         ld   (C5C2),a
ROM4:5656 AF               xor  a
ROM4:5657 EA C4 C5         ld   (C5C4),a
ROM4:565A C9               ret

Level list

  • 0x11900-0x119C7 - Level list used for Password. Simply look the position of the desired level + 1 in both lists. e.g. 1027 for level 100 (0x63 + 1)
ROM4:5900
1F 0E 4A 29 5C 3E 2D 48 17 14 63 5D 11 21 01 33
40 0C 18 30 09 2C 62 08 12 4C 61 1D 36 1B 46 00
45 0D 57 34 42 4F 51 5F 3D 03 5A 59 15 06 38 52
13 3B 49 0F 23 50 1C 3F 2E 55 3C 31 3A 28 05 37
10 54 24 60 4B 20 1E 4E 07 32 02 44 19 56 47 25
35 26 2F 5E 41 39 4D 22 5B 2B 2A 58 04 0B 53 27
43 1A 16 0A
ROM4:5964
1C 61 22 3F 18 1E 5C 47 0F 2A 0D 36 14 0A 46 08
52 4D 3C 26 0C 28 4B 33 04 5E 1D 63 00 1A 05 2F
3B 38 02 54 50 49 13 4F 15 2E 09 5A 42 62 29 1F
3A 43 5D 17 5B 58 0B 59 21 40 30 20 12 45 4C 03
39 56 2C 31 51 3D 0E 07 4E 25 55 16 3E 11 48 27
24 44 10 60 23 4A 41 5F 35 37 2B 34 06 32 19 57
53 01 2D 1B

Bank 5

Game Text

  • 0x124C6 - Ending Credits
YOU'VE MASTERED
THE ART OF
THE DRAGON DANCE
YOUR STRENGTH
AND
BRAVERY SHALL
BE REWARDED
WITH
GOOD FORTUNE!
YOU DID IT
TAKASHI MATSUMOTO
KIMIO HIROTA
SHINJI MORIMITSU
MITSUGU TAKAMIYA
IKU MIZUTANI
KINUYO UEDA
SHINJI MORIMITSU
MITSUGU TAKAMIYA
TAKASHI MAEDA
NAOMI SAGARA
HIROSHI SAITOU
TOSHIAKI KANAME
WATARU KITAMURA
NATSUME
EXECUTIVE PRODUCER
PRODUCER
DIRECTOR
PLANNER
SOUND
PROGRAMMER
GRAPHIC
DEBUG
SPECIAL THANKS
PRODUCED BY
  • 0x156C6 - Game Text
GAME START
PASS CODE
VS MODE
OPTION
OPTION
SPEED
REFRECT
BGM
EXIT
SOUND.CHECK
BGM
SE
EXIT
:NORMAL
:FAST
:SPECIAL
:ON
:OFF
START
GAME OVER
TIME OVER
CLEAR
PASSCODE:999
DIFFICULTY:
WAIT
PAUSE
CONTINUE:
WARNING
PASS.CODE.:
ERROR
COMPLETE
BGM
SE
EXIT
SPEED
REFLECT
BGM
SOUNDTEST
BG COLOR EDITOR
EXIT
STAFF
:1998 NATSUME
PASS CODE :
PALLET1
R:
G:
B:
PALLET2
R:
G:
B:
OK
DEFAULT
STAGE