Guest User

Zelda 1 MMC3 Conversion

a guest
May 20th, 2020
389
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //**********************************************
  2. // MMC1 to MMC3 hack for Zelda 1 (by Infidelity)
  3. //  Disassembled by ShadowOne333
  4. //**********************************************
  5.  
  6. //------------------------------------
  7. //  iNES Header
  8. //------------------------------------
  9.  
  10. // 0x00006 - 42
  11.     db $4E,$45,$53,$1A  // Header (NES $1A)
  12.     db 08           // 08 x 16k PRG banks
  13.     db 00           // 0 x 8k CHR banks
  14.     db %01000010        // Mirroring: Vertical
  15.     // SRAM: Not used
  16.     // 512k Trainer: Not used
  17.     // 4 Screen VRAM: Not used
  18.     // Mapper: 5
  19.     db %00000000        // RomType: NES
  20.     db $00,$00,$00,$00  // iNES Tail
  21.     db $00,$00,$00,$00
  22.  
  23. //------------------------------------
  24. //  ROM Start
  25. //------------------------------------
  26.  
  27. bank 0;     // HEADER change
  28. org $8006   // 0x00004
  29.     db $42
  30.  
  31. org $BF76   // 0x03F86
  32.     lda.b #$80
  33.     sta.w $A001
  34.     lda.b #$C0
  35.     jsr $BF98
  36.     lda.b #$00
  37.     sta.w $8001
  38.     jmp $BF90
  39.  
  40.     fill $00,$08
  41.  
  42.     lda.b #$07
  43.     jsr $FFAC
  44.     jmp $FFCD
  45.     sta.w $8000
  46.     rts
  47.  
  48. org $BFAC   // 0x03FBC
  49.     asl
  50.     pha
  51.     lda.b #$86
  52.     sta.w $8000
  53.     pla
  54.     sta.w $8001
  55.     ora.b #$01
  56.     pha
  57.     lda.b #$87
  58.     sta.w $8000
  59.     pla
  60.     sta.w $8001
  61.     rts
  62.     sta.w $0302
  63.     lda.b #$01
  64.     sta.w $A000
  65.     rts
  66.  
  67. org $BFDF   // 0x03FEF
  68.     sta.w $0302
  69.     lda.b #$01
  70.     sta.w $A000
  71.     rts
  72.  
  73. //------------------------------------
  74.  
  75. bank 1;
  76. org $AACB   // 0x06ADB
  77.     lda.b #$C0
  78.  
  79. org $BF76   // 0x07F86
  80.     lda.b #$80
  81.     sta.w $A001
  82.     lda.b #$C0
  83.     jsr $BF98
  84.     lda.b #$00
  85.     sta.w $8001
  86.     jmp $BF90
  87.  
  88.     fill $00,$08
  89.  
  90.     lda.b #$07
  91.     jsr $FFAC
  92.     jmp $FFCD
  93.     sta.w $8000
  94.     rts
  95.  
  96. org $BFAC   // 0x07FBC
  97.     asl
  98.     pha
  99.     lda.b #$86
  100.     sta.w $8000
  101.     pla
  102.     sta.w $8001
  103.     ora.b #$01
  104.     pha
  105.     lda.b #$87
  106.     sta.w $8000
  107.     pla
  108.     sta.w $8001
  109.     rts
  110.     sta.w $0302
  111.     lda.b #$01
  112.     sta.w $A000
  113.     rts
  114.  
  115. org $BFDF   // 0x07FEF
  116.     sta.w $0302
  117.     lda.b #$01
  118.     sta.w $A000
  119.     rts
  120.  
  121. //------------------------------------
  122.  
  123. bank 2;
  124. org $BF76   // 0x0BF86
  125.     lda.b #$80
  126.     sta.w $A001
  127.     lda.b #$C0
  128.     jsr $BF98
  129.     lda.b #$00
  130.     sta.w $8001
  131.     jmp $BF90
  132.  
  133.     fill $00,$08
  134.  
  135.     lda.b #$07
  136.     jsr $FFAC
  137.     jmp $FFCD
  138.     sta.w $8000
  139.     rts
  140.  
  141. org $BFAC   // 0x0BFBC
  142.     asl
  143.     pha
  144.     lda.b #$86
  145.     sta.w $8000
  146.     pla
  147.     sta.w $8001
  148.     ora.b #$01
  149.     pha
  150.     lda.b #$87
  151.     sta.w $8000
  152.     pla
  153.     sta.w $8001
  154.     rts
  155.     sta.w $0302
  156.     lda.b #$01
  157.     sta.w $A000
  158.     rts
  159.  
  160. org $BFDF   // 0x0BFEF
  161.     sta.w $0302
  162.     lda.b #$01
  163.     sta.w $A000
  164.     rts
  165.  
  166. //------------------------------------
  167.  
  168. bank 3;
  169. org $BF76   // 0x0FF86
  170.     lda.b #$80
  171.     sta.w $A001
  172.     lda.b #$C0
  173.     jsr $BF98
  174.     lda.b #$00
  175.     sta.w $8001
  176.     jmp $BF90
  177.  
  178.     fill $00,$08
  179.  
  180.     lda.b #$07
  181.     jsr $FFAC
  182.     jmp $FFCD
  183.     sta.w $8000
  184.     rts
  185.  
  186. org $BFAC   // 0x0FFBC
  187.     asl
  188.     pha
  189.     lda.b #$86
  190.     sta.w $8000
  191.     pla
  192.     sta.w $8001
  193.     ora.b #$01
  194.     pha
  195.     lda.b #$87
  196.     sta.w $8000
  197.     pla
  198.     sta.w $8001
  199.     rts
  200.     sta.w $0302
  201.     lda.b #$01
  202.     sta.w $A000
  203.     rts
  204.  
  205. org $BFDF   // 0x0FFEF
  206.     sta.w $0302
  207.     lda.b #$01
  208.     sta.w $A000
  209.     rts
  210.  
  211. //------------------------------------
  212.  
  213. bank 4;
  214. org $BF76   // 0x13F86
  215.     lda.b #$80
  216.     sta.w $A001
  217.     lda.b #$C0
  218.     jsr $BF98
  219.     lda.b #$00
  220.     sta.w $8001
  221.     jmp $BF90
  222.  
  223.     fill $00,$08
  224.  
  225.     lda.b #$07
  226.     jsr $FFAC
  227.     jmp $FFCD
  228.     sta.w $8000
  229.     rts
  230.  
  231. org $BFAC   // 0x13FBC
  232.     asl
  233.     pha
  234.     lda.b #$86
  235.     sta.w $8000
  236.     pla
  237.     sta.w $8001
  238.     ora.b #$01
  239.     pha
  240.     lda.b #$87
  241.     sta.w $8000
  242.     pla
  243.     sta.w $8001
  244.     rts
  245.     sta.w $0302
  246.     lda.b #$01
  247.     sta.w $A000
  248.     rts
  249.  
  250. org $BFDF   // 0x13FEF
  251.     sta.w $0302
  252.     lda.b #$01
  253.     sta.w $A000
  254.     rts
  255.  
  256. //------------------------------------
  257.  
  258. bank 5;
  259. org $BF76   // 0x17F86
  260.     lda.b #$80
  261.     sta.w $A001
  262.     lda.b #$C0
  263.     jsr $BF98
  264.     lda.b #$00
  265.     sta.w $8001
  266.     jmp $BF90
  267.  
  268.     fill $00,$08
  269.  
  270.     lda.b #$07
  271.     jsr $FFAC
  272.     jmp $FFCD
  273.     sta.w $8000
  274.     rts
  275.  
  276. org $BFAC   // 0x17FBC
  277.     asl
  278.     pha
  279.     lda.b #$86
  280.     sta.w $8000
  281.     pla
  282.     sta.w $8001
  283.     ora.b #$01
  284.     pha
  285.     lda.b #$87
  286.     sta.w $8000
  287.     pla
  288.     sta.w $8001
  289.     rts
  290.     sta.w $0302
  291.     lda.b #$01
  292.     sta.w $A000
  293.     rts
  294.  
  295. org $BFDF   // 0x17FEF
  296.     sta.w $0302
  297.     lda.b #$01
  298.     sta.w $A000
  299.     rts
  300.  
  301. //------------------------------------
  302.  
  303. bank 6;
  304. org $BF76   // 0x1BF86
  305.     lda.b #$80
  306.     sta.w $A001
  307.     lda.b #$C0
  308.     jsr $BF98
  309.     lda.b #$00
  310.     sta.w $8001
  311.     jmp $BF90
  312.  
  313.     fill $00,$08
  314.  
  315.     lda.b #$07
  316.     jsr $FFAC
  317.     jmp $FFCD
  318.     sta.w $8000
  319.     rts
  320.  
  321. org $BFAC   // 0x1BFBC
  322.     asl
  323.     pha
  324.     lda.b #$86
  325.     sta.w $8000
  326.     pla
  327.     sta.w $8001
  328.     ora.b #$01
  329.     pha
  330.     lda.b #$87
  331.     sta.w $8000
  332.     pla
  333.     sta.w $8001
  334.     rts
  335.     sta.w $0302
  336.     lda.b #$01
  337.     sta.w $A000
  338.     rts
  339.  
  340. org $BFDF   // 0x1BFEF
  341.     sta.w $0302
  342.     lda.b #$01
  343.     sta.w $A000
  344.     rts
  345.  
  346. //------------------------------------
  347.  
  348. bank 7;
  349. org $E621   // 0x1E631
  350.     jsr $FFC4
  351.  
  352. org $E9BD   // 0x1E9CD
  353.     lda.b #$00
  354.     sta.w $A000
  355.  
  356. org $EB71   // 0x1EB81
  357.     lda.b #$C0
  358.  
  359. org $EBB2   // 0x1EBC2
  360.     lda.b #$C0
  361.  
  362. org $FF76   // 0x1FF86
  363.     lda.b #$80
  364.     sta.w $A001
  365.     lda.b #$C0
  366.     jsr label1
  367. label2:
  368.     lda.b #$00
  369.     sta.w $8001
  370.     jmp label2
  371. label1:
  372.     db $00,$00,$00,$02
  373.     db $04,$05,$06,$07
  374.  
  375.     lda.b #$07
  376.     jsr $FFAC
  377.     jmp $FFCD
  378.     sta.w $8000
  379.     rts
  380.  
  381. org $FFAC   // 0x1FFBC
  382. FFAC:
  383.     asl
  384.     pha
  385.     lda.b #$86
  386.     sta.w $8000
  387.     pla
  388.     sta.w $8001
  389.     ora.b #$01
  390.     pha
  391.     lda.b #$87
  392.     sta.w $8000
  393.     pla
  394.     sta.w $8001
  395.     rts
  396.  
  397.     sta.w $0302
  398.     lda.b #$01
  399.     sta.w $A000
  400.     rts
  401. FFCD:
  402.     ldx.b #$05
  403. label3:
  404.     stx.w $8000
  405.     lda.w $FF8A,x
  406.     sta.w $8001
  407.     dex
  408.     bpl label3
  409.     jmp $E440
  410.     db $FF
  411.     sta.w $0302
  412.     lda.b #$01
  413.     sta.w $A000
  414.     rts
RAW Paste Data