Guest User

Zelda Optimum (MMC5) disassembly

a guest
May 17th, 2020
128
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //**********************************************
  2. // MMC1 to MMC5 hack for Zelda 1 (by RetroRain)
  3. //**********************************************
  4.  
  5. bank 0;     // HEADER change
  6. org $8004   // 0x00004
  7.     db $40,$80,$52
  8.  
  9. org $8000   // 0x00010
  10.     lda.b #$02
  11.     sta.w $5101
  12.     lda.b #$50
  13.     sta.w $5105
  14.     lda.b #$00
  15.     sta.w $5113
  16.     lda.b #$0F
  17.     sta.w $5015
  18.     lda.b #$FE
  19.     sta.w $5117
  20.     lda.b #$00
  21.     sta.w $5127
  22.     sta.w $5130
  23.     ldx.b #$00
  24. lbl1:
  25.     lda.w $8034,X
  26.     sta.w $0100,X
  27.     inx
  28.     cpx.b #$06
  29.     bne lbl1
  30.     lda.b #$00
  31.     sta.w $2000
  32.     rts
  33.  
  34.     db $00,$01,$02,$03,$02,$03
  35.  
  36. org $BF7B   // 0x03F8B
  37.     fill $15,nop
  38.  
  39. org $BF98   // 0x03FA8
  40.     fill $13,nop
  41.  
  42. org $BFAC   // 0x03FBC
  43.     jsr $FF43
  44.     fill $10,nop
  45.  
  46. //---------------------------
  47.  
  48. bank 1;
  49. org $8DB4   // 0x04DC4
  50.     fill $1108,$00
  51.  
  52. org $BF7B   // 0x07F8B
  53.     fill $15,nop
  54.  
  55. org $BF98   // 0x07FA9
  56.     fill $13,nop
  57.  
  58. org $BFAC   // 0x07FBC
  59.     jsr $FF43
  60.     fill $10,nop
  61.  
  62. //---------------------------
  63.  
  64. bank 2;
  65. org $807F   // 0x0808F
  66.     ldx.b #$00
  67. lbl2:
  68.     lda.w $8092,X
  69.     sta.w $0100,X
  70.     inx
  71.     cpx.b #$06
  72.     bne lbl2
  73.     lda.b #$00
  74.     sta.w $0607
  75.     rts
  76.  
  77.     db $00,$04,$05,$06,$05,$06
  78.  
  79. org $8098   // 0x080A8
  80.     fill $0EC6,$00
  81.  
  82. org $A5DF   // 0x0A5EF
  83.     jsr $807F
  84.     nop
  85.     nop
  86.  
  87. org $BF7B   // 0x0BF8B
  88.     fill $15,nop
  89.  
  90. org $BF98   // 0x0BFA8
  91.     fill $13,nop
  92.  
  93. org $BFAC   // 0x0BFBC
  94.     jsr $FF43
  95.     fill $10,nop
  96.  
  97. //---------------------------
  98.  
  99. bank 3;
  100. org $8065   // 0x0C075
  101.     dw $811B
  102.  
  103. org $811B   // 0x0C12B
  104.     ldx.b #$00
  105. lbl3:
  106.     lda.w $8149,X
  107.     sta.w $0102,X
  108.     inx
  109.     cpx.b #$04
  110.     bne lbl3
  111.     ldx.b $16
  112.     lda.w $062D,X
  113.     beq lbl4
  114.     jmp $813D
  115. lbl4:
  116.     ldx.b $10
  117.     lda.w $814C,X
  118.     sta.w $0101
  119.     jmp $8145
  120.     ldx.b $10
  121.     lda.w $8155,X
  122.     sta.w $0101
  123.     jsr $8080
  124.     rts
  125.  
  126.     db $08,$09,$08,$09,$07,$07,$0A,$0B
  127.     db $0C,$0B,$07,$0A,$0D,$07,$07,$0A
  128.     db $0B,$0C,$0B,$07,$0A,$0D,$00,$00
  129.  
  130. org $815F   // 0x0C16F
  131.     fill $2A78,$00
  132.  
  133. org $BF7B   // 0x0FF8B
  134.     fill $15,nop
  135.  
  136. org $BF98   // 0x0FFA8
  137.     fill $13,nop
  138.  
  139. org $BFAC   // 0x0FFBC
  140.     jsr $FF43
  141.     fill $10,nop
  142.  
  143. //---------------------------
  144.  
  145. bank 4;
  146. org $BF7B   // 0x13F8B
  147.     fill $15,nop
  148.  
  149. org $BF98   // 0x13FA8
  150.     fill $13,nop
  151.  
  152. org $BFAC   // 0x13FBC
  153.     jsr $FF43
  154.     fill $10,nop
  155.  
  156. //---------------------------
  157.  
  158. bank 5;
  159. org $859D   // 0x145AD
  160.     ldx.b #$00
  161. lbl5:
  162.     lda.w $85AE,X
  163.     sta.w $0100,X
  164.     inx
  165.     cpx.b #$06
  166.     bne lbl5
  167.     jsr $EBA3
  168.     rts
  169.  
  170.     db $00,$04,$05,$06,$05,$06
  171.  
  172. org $B1D3   // 0x171E3
  173.     dw $FFCE
  174.  
  175. org $B548   // 0x17558
  176.     dw $859D
  177.  
  178. org $BF7B   // 0x17F8B
  179.     fill $15,nop
  180.  
  181. org $BF98   // 0x17FA8
  182.     fill $13,nop
  183.  
  184. org $BFAC   // 0x17FBC
  185.     jsr $FF43
  186.     fill $10,nop
  187.  
  188. //---------------------------
  189.  
  190. bank 6;
  191. org $BF7B   // 0x1BF8B
  192.     fill $15,nop
  193.  
  194. org $BF98   // 0x1BFA8
  195.     fill $13,nop
  196.  
  197. org $BFAC   // 0x1BFBC
  198.     jsr $FF43
  199.     fill $10,nop
  200.  
  201. //---------------------------
  202.  
  203. bank 7;
  204. org $C000
  205.     fill $FFFF,$00  // 0x1C010
  206.     fill $FFFF,$00  // 0x2C00F
  207.     fill $FFFF,$00  // 0x3C00E
  208.     fill $FFFF,$00  // 0x4C00D
  209.     fill $FFFF,$00  // 0x5C00C
  210.     fill $FFFF,$00  // 0x6C00B
  211.     fill $FFFF,$00  // 0x7C00A
  212.     fill $FFFF,$00  // 0x8C009
  213.     fill $FFFF,$00  // 0x9C008
  214.     fill $FFFF,$00  // 0xAC007
  215.     fill $FFFF,$00  // 0xBC006
  216.     fill $FFFF,$00  // 0xCC005
  217.     fill $FFFF,$00  // 0xDC004
  218.     fill $FFFF,$00  // 0xEC003
  219.     fill $0E,$00    // 0xFC002
  220.  
  221.     incbin code/mmc5gfx.bin
  222.  
  223.     fill $FFFF,$00  // 0x107010
  224.     fill $FFFF,$00  // 0x11700F
  225.     fill $FFFF,$00  // 0x12700E
  226.     fill $FFFF,$00  // 0x13700D
  227.     fill $FFFF,$00  // 0x14700C
  228.     fill $FFFF,$00  // 0x15700B
  229.     fill $FFFF,$00  // 0x16700A
  230.     fill $FFFF,$00  // 0x177009
  231.     fill $FFFF,$00  // 0x187008
  232.     fill $FFFF,$00  // 0x197007
  233.     fill $FFFF,$00  // 0x1A7006
  234.     fill $FFFF,$00  // 0x1B7005
  235.     fill $FFFF,$00  // 0x1C7004
  236.     fill $FFFF,$00  // 0x1D7003
  237.     fill $FFFF,$00  // 0x1E7002
  238.     fill $900F,$00  // 0x1F7001
RAW Paste Data