Advertisement
Dotsarecool

One Mind Patch

Jul 13th, 2017
739
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ; Bro Switch SMW
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4.  
  5. !switch_timer = $58
  6. !time_between_switches = $1F3B
  7. !hard_mode = $1F48
  8.  
  9. ORG $00A1DA
  10.         JSR level_hijack
  11. ORG $00A087
  12.         JSR overworld_load_hijack
  13. ORG $0489B1
  14.         JSR hard_mode_display
  15. ORG $008FCB
  16.         JSL update_status_bar
  17.         JMP $8FD8
  18.        
  19. ORG $00A249
  20. level_hijack:
  21.         JSL level_tick
  22.         LDA $1426
  23.         RTS
  24. overworld_load_hijack:
  25.         JSR $937D
  26.         JSL overworld_load
  27.         RTS
  28.  
  29. ORG $04FFB1
  30. hard_mode_display:
  31.         PHA
  32.         LDA !hard_mode
  33.         LSR A
  34.         PLA
  35.         BCC .no
  36.         CLC
  37.         ADC #$0400
  38.     .no:
  39.         RTS
  40.        
  41. ORG $05DC46
  42. level_tick:
  43.         LDA $13
  44.         AND #$03
  45.         BNE .done
  46.         LDA !switch_timer
  47.         BNE .no_init
  48.         LDA !time_between_switches
  49.     .no_init:
  50.         DEC A
  51.         STA !switch_timer
  52.         BEQ .switch
  53.         AND #%11100111
  54.         BNE .done
  55.         LDA #$23
  56.         STA $1DFC
  57.     .done:
  58.         RTL
  59.     .switch:
  60.         LDA #$29
  61.         STA $1DFC
  62.         JSL get_new_switch_time
  63.         LDA !time_between_switches
  64.         STA !switch_timer
  65.         LDA $0DB3
  66.         EOR #$01
  67.         STA $0DB3
  68.         RTL
  69.        
  70. overworld_load:
  71.         STZ $0DB3
  72.         LDA $0DA2
  73.         ORA $0DA3
  74.         AND #%00110000
  75.         CMP #%00110000
  76.         BNE .no_hard_mode
  77.         LDA !hard_mode
  78.         EOR #$01
  79.         STA !hard_mode
  80.     .no_hard_mode:
  81.         JSL get_new_switch_time
  82.         RTL
  83.        
  84. get_new_switch_time:
  85.         LDA !hard_mode
  86.         BEQ .no_hard_mode
  87.         LDA #$08
  88.         BRA .done
  89.     .no_hard_mode:
  90.         LDA $13
  91.         EOR $94
  92.         ORA #$1C
  93.         AND #$7F
  94.     .done:
  95.         STA !time_between_switches
  96.         RTL
  97.  
  98. update_status_bar:
  99.         PHP
  100.         PHB
  101.         PHK
  102.         PLB
  103.        
  104.         ASL A
  105.         TAX
  106.         LDY #$04
  107.     .loop:
  108.         REP #$20
  109.         LDA status_bar_names,X
  110.         STA $00
  111.         SEP #$20
  112.         LDA ($00),Y
  113.         STA $0EF9,Y
  114.         DEY
  115.         BPL .loop
  116.        
  117.         PLB
  118.         PLP
  119.         RTL
  120.    
  121.     status_bar_names:
  122.         dw mario,luigi
  123.     mario:
  124.         db $30,$31,$32,$33,$34
  125.     luigi:
  126.         db $40,$41,$42,$43,$44
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement