Guest User

Zelda 1 MMC3 Conversion

a guest
May 20th, 2020
448
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

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×