@Replaces calcFileId
ncp_jump(0x02009394)
nsub_02009394:
	LDR     R1, =0x2085A84 @IsMvsLMode
	LDR     R1, [R1]
	CMP     R1, #2 @If MvsLMode == 2 (Download Play)
	MOVEQ   R1, #0x10000 @Recover replaced instruction
	BEQ     0x2009398 @Goto untouched code

	MOV     R0, R0, LSL#16
	MOV     R0, R0, LSR#16
        
	@If file is NARC-only, lets pray the right NARC is loaded...
	TST     R0, #0x8000
	BXNE    LR
        
	LDR     R1, =0x02085D04
	LDRSH   R1, [R1]
	ADD     R0, R0, R1
	MOV     R0, R0, LSL#16
	MOV     R0, R0, LSR#16
	BX      LR

@Force Tileset 2 to be loaded if MvsLMode is not DLP
ncp_call(0x020B39C8, 0)
repl_020B39C8:
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	BLEQ    0x20B39FC
	BX      LR
ncp_call(0x020B3A80, 0)
repl_020B3A80:
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	BLEQ    0x20B3A9C
	BX      LR
ncp_call(0x020AE018, 0)
repl_020AE018:
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	BLEQ    0x20AE058
	BX      LR
ncp_call(0x020AE070, 0)
repl_020AE070:
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	BLEQ    0x20AE0A4
	BX      LR
ncp_call(0x020AE184, 0)
repl_020AE184:
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	BLEQ    0x20AE1A0
	BX      LR
ncp_call(0x020AE1B8, 0)
repl_020AE1B8: @I have no idea what this is?
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	BLEQ    0x20AE24C
	BX      LR
        
ncp_call(0x020AF9EC, 0)
repl_020AF9EC:
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	MOVNE   R0, #0
	MOVEQ   R0, #1
	BX      LR

@Free something. This is probably good.
ncp_call(0x020B3C4C, 0)
repl_020B3C4C:
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	BLEQ    0x20B3C70
	BX      LR

@Disable spawning of initial VS Battle Star if spriteset 16 value is not 9.
ncp_call(0x0209C4E0, 0)
nsub_0209C4E0_ov_00:
	LDR     R5, =0x208B000
	LDR     R5, [R5,#0x19C]
	LDRB    R5, [R5,#0xF]
	@R5 = Spriteset 16 value
	CMP     R5, #9
	BLEQ    0x20A0B64
	B       0x209C4E4

@Force all player animations to be loaded (plnovs) if not DLP
ncp_jump(0x02020728)
nsub_02020728:
	CMP     R0, #2
	BEQ     0x2020748 @If DLP jump through code that loads singleplayer animations.
	B       0x202073C @Else load the singleplayer animations.

@==============
@ Overlay 53 STUFF
@ Since we arent using it we should really only load it in Download Play mode.
@ Otherwise bye bye free RAM.

@Delete the hardcoded load overlay calls if not DLP.
ncp_call(0x021535BC, 52)
repl_021535BC_ov_34:
ncp_call(0x021535C4, 52)
repl_021535C4_ov_34:
ncp_call(0x021535CC, 52)
repl_021535CC_ov_34:
ncp_call(0x021535D4, 52)
repl_021535D4_ov_34:
ncp_call(0x021535DC, 52)
repl_021535DC_ov_34:
	STMFD   SP!, {LR}
	LDR     R1, =0x2085A84 @MvsLMode
	LDR     R1, [R1]
	CMP     R1, #2
	BLEQ    0x2009510 @LoadOverlayOrPanic
	LDMFD   SP!, {PC}

@Delete ov53:createOv53Heap() call if not DLP.
ncp_call(0x021535EC, 52)
repl_021535EC_ov_34:
	STMFD   SP!, {LR}
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	BLEQ    0x215CC9C @CreateOv53Heap
	LDMFD   SP!, {PC}

@Delete the hardcoded unload overlay calls if not DLP.
ncp_call(0x02152C34, 52)
repl_02152C34_ov_34:
ncp_call(0x02152C3C, 52)
repl_02152C3C_ov_34:
ncp_call(0x02152C44, 52)
repl_02152C44_ov_34:
ncp_call(0x02152C4C, 52)
repl_02152C4C_ov_34:
ncp_call(0x02152C54, 52)
repl_02152C54_ov_34:
	STMFD   SP!, {LR}
	LDR     R1, =0x2085A84 @MvsLMode
	LDR     R1, [R1]
	CMP     R1, #2
	BLEQ    0x20094B8 @UnloadOverlay
	LDMFD   SP!, {PC}

@Delete ov53:destroyOv53Heap() call if not DLP.
ncp_call(0x02152C2C, 52)
repl_02152C2C_ov_34:
	STMFD   SP!, {LR}
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	BLEQ    0x215CC70 @DestroyOv53Heap
	LDMFD   SP!, {PC}
        
@Patch ov53:getPtrToOv53Heap() calls if not DLP.
@If result is 0, it will just use the default heap, which _should_ be fine.
ncp_call(0x021535F0, 52)
repl_021535F0_ov_34:
ncp_call(0x02153600, 52)
repl_02153600_ov_34:
	STMFD   SP!, {LR}
	LDR     R0, =0x2085A84 @MvsLMode
	LDR     R0, [R0]
	CMP     R0, #2
	MOVNE   R0, #0
	BLEQ    0x215CC60 @GetPtrToOv53Heap
	LDMFD   SP!, {PC}

@=============
@NARC STUFF
@Since we are not using some NARCs for 2Cards we should only load them in DLP mode.
@Otherwise bye bye free RAM.

ncp_call(0x02018B58)
repl_02018B58: @LoadNarcForLevel
ncp_call(0x021535FC, 52)
repl_021535FC_ov_34: @Dat_2d.narc
ncp_call(0x0215360C, 52)
repl_0215360C_ov_34: @Dat_enemy.narc
	STMFD   SP!, {LR}
	LDR     R2, =0x2085A84 @MvsLMode
	LDR     R2, [R2]
	CMP     R2, #2
	BLEQ    0x2009190 @loadArchiveById
	LDMFD   SP!, {PC}

@==============
@ANIMATION STUFF
@Some animations are not loaded for Download Play so we replace those with loaded similars.

@Fix slope slide animation for DLP
ncp_call(0x0210F020, 10)
repl_0210F020_ov_0A:
	LDR     R1, =0x2085A84 @MvsLMode
	LDR     R1, [R1]
	CMP     R1, #2
	MOVEQ   R1, #16 @DLP
	MOVNE   R1, #20 @2Cards
	BX      LR
	
@Fix vine climbing animation for DLP
ncp_call(0x0210D984, 10)
repl_0210D984_ov_0A:
	LDR     R1, =0x2085A84 @MvsLMode
	LDR     R1, [R1]
	CMP     R1, #2
	MOVEQ   R1, #2 @DLP
	MOVNE   R1, #144 @2Cards
	BX      LR

@Fix vine started climbing animation for DLP
ncp_call(0x0210D634, 10)
repl_0210D634_ov_0A:
	LDR     R1, =0x2085A84 @MvsLMode
	LDR     R1, [R1]
	CMP     R1, #2
	MOVEQ   R1, #5 @DLP
	MOVNE   R1, #145 @2Cards
	BX      LR

@Fix vine standing animation for DLP
ncp_call(0x0210D584, 10)
repl_0210D584_ov_0A:
	BNE     .IsIDLEinVine
	BX      LR
.IsIDLEinVine:
	LDR     R5, =0x2085A84 @MvsLMode
	LDR     R5, [R5]
	CMP     R5, #2
	MOVEQ   R5, #5 @DLP
	MOVNE   R5, #146 @2Cards
	BX      LR

@Fix fence up/down animation for DLP
ncp_call(0x0210D978, 10)
repl_0210D978_ov_0A:
	BNE     .IsYMovingInFence
	BX      LR
.IsYMovingInFence:
	LDR     R1, =0x2085A84 @MvsLMode
	LDR     R1, [R1]
	CMP     R1, #2
	MOVEQ   R1, #2 @DLP
	MOVNE   R1, #112 @2Cards
	BX      LR

@Fix fence left/right animation for DLP
ncp_call(0x0210D97C, 10)
repl_0210D97C_ov_0A:
	BEQ     .IsXMovingInFence
	BX      LR
.IsXMovingInFence:
	LDR     R1, =0x2085A84 @MvsLMode
	LDR     R1, [R1]
	CMP     R1, #2
	MOVEQ   R1, #2 @DLP
	MOVNE   R1, #117 @2Cards
	BX      LR

@Fix fence standing animation for DLP
ncp_call(0x0210D578, 10)
repl_0210D578_ov_0A:
	BEQ     .IsIdleInFence
	BX      LR
.IsIdleInFence:
	LDR     R5, =0x2085A84 @MvsLMode
	LDR     R5, [R5]
	CMP     R5, #2
	MOVEQ   R5, #5 @DLP
	MOVNE   R5, #113 @2Cards
	BX      LR

@Fix fence hit animation for DLP
ncp_call(0x0210D094, 10)
repl_0210D094_ov_0A:
	LDR     R1, =0x2085A84 @MvsLMode
	LDR     R1, [R1]
	CMP     R1, #2
	MOVEQ   R1, #18 @DLP
	MOVNE   R1, #116 @2Cards
	BX      LR