Dragon Dance:ROM map

From Data Crystal
Jump to: navigation, search

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  


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)


Boss HP Array

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 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)
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
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
  • 0x156C6 - Game Text

Internal Data for Dragon Dance

ROM MapRAM MapText TableNotesTutorials