Посмотрите на Sonic the Hedgehog REV01.Что вы видите?Вы видите эффекты бэкграунда,типо летящих облаков в Green Hill,искажения в воде в Labyrinth Zone и т.д.В этом гиде расскажется,как портировать эти эффекты.
Шаг1.
Идём к Obj0A_WobbleData в Hivebrain's 2005 disassembly и заменяем на это:

Код:
Obj0A_WobbleData:
    dc.b 0, 0, 0, 0, 0, 0,	1, 1, 1, 1, 1, 2, 2, 2,	2, 2, 2
    dc.b 2,	3, 3, 3, 3, 3, 3, 3, 3,	3, 3, 3, 3, 3, 3, 4, 3
    dc.b 3,	3, 3, 3, 3, 3, 3, 3, 3,	3, 3, 3, 3, 2, 2, 2, 2
    dc.b 2,	2, 2, 1, 1, 1, 1, 1, 0,	0, 0, 0, 0, 0, -1, -1
    dc.b -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3
    dc.b -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4
    dc.b -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4
    dc.b -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3, -3, -2
    dc.b -2, -2, -2, -2, -1, -1, -1, -1, -1
    dc.b 0, 0, 0, 0, 0, 0,	1, 1, 1, 1, 1, 2, 2, 2,	2, 2, 2
    dc.b 2,	3, 3, 3, 3, 3, 3, 3, 3,	3, 3, 3, 3, 3, 3, 4, 3
    dc.b 3,	3, 3, 3, 3, 3, 3, 3, 3,	3, 3, 3, 3, 2, 2, 2, 2
    dc.b 2,	2, 2, 1, 1, 1, 1, 1, 0,	0, 0, 0, 0, 0, -1, -1
    dc.b -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3
    dc.b -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4
    dc.b -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4
    dc.b -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3, -3, -2
    dc.b -2, -2, -2, -2, -1, -1, -1, -1, -1

Шаг2:
Идем к BGScroll_GHZ и всё до конца BGScroll_End заменяем на это:

Код:
BgScroll_GHZ:        ; XREF: BgScroll_Index
    clr.l	($FFFFF708).w
    clr.l	($FFFFF70C).w
    clr.l	($FFFFF714).w
    clr.l	($FFFFF71C).w
    lea	($FFFFA800).w,a2
    clr.l	(a2)+
    clr.l	(a2)+
    clr.l	(a2)+
    rts 
; ===========================================================================
 
BgScroll_LZ:        ; XREF: BgScroll_Index
    asr.l	#1,d0
    move.w	d0,($FFFFF70C).w
    rts	
; ===========================================================================
 
BgScroll_MZ:        ; XREF: BgScroll_Index
    rts	
; ===========================================================================
 
BgScroll_SLZ:        ; XREF: BgScroll_Index
    asr.l	#1,d0
    addi.w	#$C0,d0
    move.w	d0,($FFFFF70C).w
    clr.l	($FFFFF708).w
    rts	
; ===========================================================================
 
BgScroll_SYZ:        ; XREF: BgScroll_Index
    asl.l	#4,d0
    move.l	d0,d2
    asl.l	#1,d0
    add.l	d2,d0
    asr.l	#8,d0
    addq.w	#1,d0
    move.w	d0,($FFFFF70C).w
    clr.l	($FFFFF708).w
    rts	
; ===========================================================================
 
BgScroll_SBZ:        ; XREF: BgScroll_Index
    andi.w	#$7F8,d0
    asr.w	#3,d0
    addq.w	#1,d0
    move.w	d0,($FFFFF70C).w
    rts	
; ===========================================================================
 
BgScroll_End:        ; XREF: BgScroll_Index
    move.w	($FFFFF700).w,d0
    asr.w	#1,d0
    move.w	d0,($FFFFF708).w
    move.w	d0,($FFFFF710).w
    asr.w	#2,d0
    move.w	d0,d1
    add.w	d0,d0
    add.w	d1,d0
    move.w	d0,($FFFFF718).w
    clr.l	($FFFFF70C).w
    clr.l	($FFFFF714).w
    clr.l	($FFFFF71C).w
    lea	($FFFFA800).w,a2
    clr.l	(a2)+
    clr.l	(a2)+
    clr.l	(a2)+
    rts

Шаг3:
Идём к Deform_GHZ и заменяем всё до конца Deform_SBZ на это:

Код:
Deform_GHZ:
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#5,d4
    move.l	d4,d1
    asl.l	#1,d4
    add.l	d1,d4
    moveq	#0,d6
    bsr.w	ScrollBlock6
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#7,d4
    moveq	#0,d6
    bsr.w	ScrollBlock5
    lea	($FFFFCC00).w,a1
    move.w	($FFFFF704).w,d0
    andi.w	#$7FF,d0
    lsr.w	#5,d0
    neg.w	d0
    addi.w	#$20,d0	; ' '
    bpl.s	Deform_GHZ_1
    moveq	#0,d0
 
Deform_GHZ_1:        ; XREF: Deform_GHZ
    move.w	d0,d4
    move.w	d0,($FFFFF618).w
    move.w	($FFFFF700).w,d0
    cmpi.b	#4,($FFFFF600).w
    bne.s	Deform_GHZ_2
    moveq	#0,d0
 
Deform_GHZ_2:        ; XREF: Deform_GHZ
    neg.w	d0
    swap	d0
    lea	($FFFFA800).w,a2
    addi.l	#$10000,(a2)+
    addi.l	#$C000,(a2)+
    addi.l	#$8000,(a2)+
    move.w	($FFFFA800).w,d0
    add.w	($FFFFF718).w,d0
    neg.w	d0
    move.w	#$1F,d1
    sub.w	d4,d1
    bcs.s	Deform_GHZ_4
 
Deform_GHZ_3:        ; XREF: Deform_GHZ
    move.l	d0,(a1)+
    dbf	d1,Deform_GHZ_3
 
Deform_GHZ_4:        ; XREF: Deform_GHZ
    move.w	($FFFFA804).w,d0
    add.w	($FFFFF718).w,d0
    neg.w	d0
    move.w	#$F,d1
 
Deform_GHZ_5:        ; XREF: Deform_GHZ
    move.l	d0,(a1)+
    dbf	d1,Deform_GHZ_5
    move.w	($FFFFA808).w,d0
    add.w	($FFFFF718).w,d0
    neg.w	d0
    move.w	#$F,d1
 
Deform_GHZ_6:        ; XREF: Deform_GHZ
    move.l	d0,(a1)+
    dbf	d1,Deform_GHZ_6
    move.w	#$2F,d1	; '/'
    move.w	($FFFFF718).w,d0
    neg.w	d0
 
Deform_GHZ_7:        ; XREF: Deform_GHZ
    move.l	d0,(a1)+
    dbf	d1,Deform_GHZ_7
    move.w	#$27,d1	; '''
    move.w	($FFFFF710).w,d0
    neg.w	d0
 
Deform_GHZ_8:        ; XREF: Deform_GHZ
    move.l	d0,(a1)+
    dbf	d1,Deform_GHZ_8
    move.w	($FFFFF710).w,d0
    move.w	($FFFFF700).w,d2
    sub.w	d0,d2
    ext.l	d2
    asl.l	#8,d2
    divs.w	#$68,d2	; 'h'
    ext.l	d2
    asl.l	#8,d2
    moveq	#0,d3
    move.w	d0,d3
    move.w	#$47,d1	; 'G'
    add.w	d4,d1
 
Deform_GHZ_9:        ; XREF: Deform_GHZ
    move.w	d3,d0
    neg.w	d0
    move.l	d0,(a1)+
    swap	d3
    add.l	d2,d3
    swap	d3
    dbf	d1,Deform_GHZ_9
    rts	
; End of function Deform_GHZ
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
Deform_LZ:
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#7,d4
    move.w	($FFFFF73C).w,d5
    ext.l	d5
    asl.l	#7,d5
    bsr.w	ScrollBlock1
    move.w	($FFFFF70C).w,($FFFFF618).w
    lea	(LZ_Wave_Data).l,a3
    lea	(Obj0A_WobbleData).l,a2
    move.b	($FFFFF7D8).w,d2
    move.b	d2,d3
    addi.w	#$80,($FFFFF7D8).w ; '€'
    add.w	($FFFFF70C).w,d2
    andi.w	#$FF,d2
    add.w	($FFFFF704).w,d3
    andi.w	#$FF,d3
    lea	($FFFFCC00).w,a1
    move.w	#$DF,d1	; 'ß'
    move.w	($FFFFF700).w,d0
    neg.w	d0
    move.w	d0,d6
    swap	d0
    move.w	($FFFFF708).w,d0
    neg.w	d0
    move.w	($FFFFF646).w,d4
    move.w	($FFFFF704).w,d5
 
Deform_LZ_1:        ; XREF: Deform_LZ
    cmp.w	d4,d5
    bge.s	Deform_LZ_2
    move.l	d0,(a1)+
    addq.w	#1,d5
    addq.b	#1,d2
    addq.b	#1,d3
    dbf	d1,Deform_LZ_1
    rts	
; ===========================================================================
 
Deform_LZ_2:        ; XREF: Deform_LZ
    move.b	(a3,d3.w),d4
    ext.w	d4
    add.w	d6,d4
    move.w	d4,(a1)+
    move.b	(a2,d2.w),d4
    ext.w	d4
    add.w	d0,d4
    move.w	d4,(a1)+
    addq.b	#1,d2
    addq.b	#1,d3
    dbf	d1,Deform_LZ_2
    rts	
; End of function Deform_LZ
 
; ===========================================================================
LZ_Wave_Data:	dc.b   1,  1,  2,  2,  3,  3,  3,  3,  2,  2,  1,  1,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b $FF,$FF,$FE,$FE,$FD,$FD,$FD,$FD,$FE,$FE,$FF,$FF,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   1,  1,  2,  2,  3,  3,  3,  3,  2,  2,  1,  1,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    dc.b   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
Deform_MZ:
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#6,d4
    move.l	d4,d1
    asl.l	#1,d4
    add.l	d1,d4
    moveq	#2,d6
    bsr.w	ScrollBlock4
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#6,d4
    moveq	#6,d6
    bsr.w	ScrollBlock6
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#7,d4
    moveq	#4,d6
    bsr.w	ScrollBlock5
    move.w	#$200,d0
    move.w	($FFFFF704).w,d1
    subi.w	#$1C8,d1
    bcs.s	Deform_MZ_1
    move.w	d1,d2
    add.w	d1,d1
    add.w	d2,d1
    asr.w	#2,d1
    add.w	d1,d0
 
Deform_MZ_1:        ; XREF: Deform_MZ
    move.w	d0,($FFFFF714).w
    move.w	d0,($FFFFF71C).w
    bsr.w	ScrollBlock3
    move.w	($FFFFF70C).w,($FFFFF618).w
    move.b	($FFFFF756).w,d0
    or.b	($FFFFF758).w,d0
    or.b	d0,($FFFFF75A).w
    clr.b	($FFFFF756).w
    clr.b	($FFFFF758).w
    lea	($FFFFA800).w,a1
    move.w	($FFFFF700).w,d2
    neg.w	d2
    move.w	d2,d0
    asr.w	#2,d0
    sub.w	d2,d0
    ext.l	d0
    asl.l	#3,d0
    divs.w	#5,d0
    ext.l	d0
    asl.l	#4,d0
    asl.l	#8,d0
    moveq	#0,d3
    move.w	d2,d3
    asr.w	#1,d3
    move.w	#4,d1
 
Deform_MZ_2:        ; XREF: Deform_MZ
    move.w	d3,(a1)+
    swap	d3
    add.l	d0,d3
    swap	d3
    dbf	d1,Deform_MZ_2
    move.w	($FFFFF718).w,d0
    neg.w	d0
    move.w	#1,d1
 
Deform_MZ_3:        ; XREF: Deform_MZ
    move.w	d0,(a1)+
    dbf	d1,Deform_MZ_3
    move.w	($FFFFF710).w,d0
    neg.w	d0
    move.w	#8,d1
 
Deform_MZ_4:        ; XREF: Deform_MZ
    move.w	d0,(a1)+
    dbf	d1,Deform_MZ_4
    move.w	($FFFFF708).w,d0
    neg.w	d0
    move.w	#$F,d1
 
Deform_MZ_5:        ; XREF: Deform_MZ
    move.w	d0,(a1)+
    dbf	d1,Deform_MZ_5
    lea	($FFFFA800).w,a2
    move.w	($FFFFF70C).w,d0
    subi.w	#$200,d0
    move.w	d0,d2
    cmpi.w	#$100,d0
    bcs.s	Deform_MZ_6
    move.w	#$100,d0
 
Deform_MZ_6:        ; XREF: Deform_MZ
    andi.w	#$1F0,d0
    lsr.w	#3,d0
    lea	(a2,d0.w),a2
    bra.w	Deform_All
; ===========================================================================
 
Deform_SLZ:
    move.w	($FFFFF73C).w,d5
    ext.l	d5
    asl.l	#7,d5
    bsr.w	ScrollBlock2
    move.w	($FFFFF70C).w,($FFFFF618).w
    lea	($FFFFA800).w,a1
    move.w	($FFFFF700).w,d2
    neg.w	d2
    move.w	d2,d0
    asr.w	#3,d0
    sub.w	d2,d0
    ext.l	d0
    asl.l	#4,d0
    divs.w	#$1C,d0
    ext.l	d0
    asl.l	#4,d0
    asl.l	#8,d0
    moveq	#0,d3
    move.w	d2,d3
    move.w	#$1B,d1
 
Deform_SLZ_1:        ; XREF: Deform_MZ
    move.w	d3,(a1)+
    swap	d3
    add.l	d0,d3
    swap	d3
    dbf	d1,Deform_SLZ_1
    move.w	d2,d0
    asr.w	#3,d0
    move.w	d0,d1
    asr.w	#1,d1
    add.w	d1,d0
    move.w	#4,d1
 
Deform_SLZ_2:        ; XREF: Deform_MZ
    move.w	d0,(a1)+
    dbf	d1,Deform_SLZ_2
    move.w	d2,d0
    asr.w	#2,d0
    move.w	#4,d1
 
Deform_SLZ_3:        ; XREF: Deform_MZ
    move.w	d0,(a1)+
    dbf	d1,Deform_SLZ_3
    move.w	d2,d0
    asr.w	#1,d0
    move.w	#$1D,d1
 
Deform_SLZ_4:        ; XREF: Deform_MZ
    move.w	d0,(a1)+
    dbf	d1,Deform_SLZ_4
    lea	($FFFFA800).w,a2
    move.w	($FFFFF70C).w,d0
    move.w	d0,d2
    subi.w	#$C0,d0	; 'À'
    andi.w	#$3F0,d0
    lsr.w	#3,d0
    lea	(a2,d0.w),a2
 
Deform_All:        ; XREF: Deform_MZ, Deform_SYZ, ...
    lea	($FFFFCC00).w,a1
    move.w	#$E,d1
    move.w	($FFFFF700).w,d0
    neg.w	d0
    swap	d0
    andi.w	#$F,d2
    add.w	d2,d2
    move.w	(a2)+,d0
    jmp	Deform_All_2(pc,d2.w)
; End of function Deform_MZ
 
; ===========================================================================
 
Deform_All_1:        ; XREF: Deform_All
    move.w	(a2)+,d0
 
Deform_All_2:
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    move.l	d0,(a1)+
    dbf	d1,Deform_All_1
    rts	
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
Deform_SYZ:
    move.w	($FFFFF73C).w,d5
    ext.l	d5
    asl.l	#4,d5
    move.l	d5,d1
    asl.l	#1,d5
    add.l	d1,d5
    bsr.w	ScrollBlock2
    move.w	($FFFFF70C).w,($FFFFF618).w
    lea	($FFFFA800).w,a1
    move.w	($FFFFF700).w,d2
    neg.w	d2
    move.w	d2,d0
    asr.w	#3,d0
    sub.w	d2,d0
    ext.l	d0
    asl.l	#3,d0
    divs.w	#8,d0
    ext.l	d0
    asl.l	#4,d0
    asl.l	#8,d0
    moveq	#0,d3
    move.w	d2,d3
    asr.w	#1,d3
    move.w	#7,d1
 
Deform_SYZ_1:        ; XREF: Deform_SYZ
    move.w	d3,(a1)+
    swap	d3
    add.l	d0,d3
    swap	d3
    dbf	d1,Deform_SYZ_1
    move.w	d2,d0
    asr.w	#3,d0
    move.w	#4,d1
 
Deform_SYZ_2:        ; XREF: Deform_SYZ
    move.w	d0,(a1)+
    dbf	d1,Deform_SYZ_2
    move.w	d2,d0
    asr.w	#2,d0
    move.w	#5,d1
 
Deform_SYZ_3:        ; XREF: Deform_SYZ
    move.w	d0,(a1)+
    dbf	d1,Deform_SYZ_3
    move.w	d2,d0
    move.w	d2,d1
    asr.w	#1,d1
    sub.w	d1,d0
    ext.l	d0
    asl.l	#4,d0
    divs.w	#$E,d0
    ext.l	d0
    asl.l	#4,d0
    asl.l	#8,d0
    moveq	#0,d3
    move.w	d2,d3
    asr.w	#1,d3
    move.w	#$D,d1
 
Deform_SYZ_4:        ; XREF: Deform_SYZ
    move.w	d3,(a1)+
    swap	d3
    add.l	d0,d3
    swap	d3
    dbf	d1,Deform_SYZ_4
    lea	($FFFFA800).w,a2
    move.w	($FFFFF70C).w,d0
    move.w	d0,d2
    andi.w	#$1F0,d0
    lsr.w	#3,d0
    lea	(a2,d0.w),a2
    bra.w	Deform_All
; End of function Deform_SYZ
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
Deform_SBZ:
    tst.b	($FFFFFE11).w
    bne.w	Deform_SBZ_Act2
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#7,d4
    moveq	#2,d6
    bsr.w	ScrollBlock4
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#6,d4
    moveq	#6,d6
    bsr.w	ScrollBlock6
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#5,d4
    move.l	d4,d1
    asl.l	#1,d4
    add.l	d1,d4
    moveq	#4,d6
    bsr.w	ScrollBlock5
    moveq	#0,d4
    move.w	($FFFFF73C).w,d5
    ext.l	d5
    asl.l	#5,d5
    bsr.w	ScrollBlock1_2
    move.w	($FFFFF70C).w,d0
    move.w	d0,($FFFFF714).w
    move.w	d0,($FFFFF71C).w
    move.w	d0,($FFFFF618).w
    move.b	($FFFFF756).w,d0
    or.b	($FFFFF75A).w,d0
    or.b	d0,($FFFFF758).w
    clr.b	($FFFFF756).w
    clr.b	($FFFFF75A).w
    lea	($FFFFA800).w,a1
    move.w	($FFFFF700).w,d2
    neg.w	d2
    asr.w	#2,d2
    move.w	d2,d0
    asr.w	#1,d0
    sub.w	d2,d0
    ext.l	d0
    asl.l	#3,d0
    divs.w	#4,d0
    ext.l	d0
    asl.l	#4,d0
    asl.l	#8,d0
    moveq	#0,d3
    move.w	d2,d3
    move.w	#3,d1
 
Deform_SBZ_1:        ; XREF: Deform_SBZ
    move.w	d3,(a1)+
    swap	d3
    add.l	d0,d3
    swap	d3
    dbf	d1,Deform_SBZ_1
    move.w	($FFFFF718).w,d0
    neg.w	d0
    move.w	#9,d1
 
Deform_SBZ_2:        ; XREF: Deform_SBZ
    move.w	d0,(a1)+
    dbf	d1,Deform_SBZ_2
    move.w	($FFFFF710).w,d0
    neg.w	d0
    move.w	#6,d1
 
Deform_SBZ_3:        ; XREF: Deform_SBZ
    move.w	d0,(a1)+
    dbf	d1,Deform_SBZ_3
    move.w	($FFFFF708).w,d0
    neg.w	d0
    move.w	#$A,d1
 
Deform_SBZ_4:        ; XREF: Deform_SBZ
    move.w	d0,(a1)+
    dbf	d1,Deform_SBZ_4
    lea	($FFFFA800).w,a2
    move.w	($FFFFF70C).w,d0
    move.w	d0,d2
    andi.w	#$1F0,d0
    lsr.w	#3,d0
    lea	(a2,d0.w),a2
    bra.w	Deform_All
; ===========================================================================
 
Deform_SBZ_Act2:    	; XREF: Deform_SBZ
    move.w	($FFFFF73A).w,d4
    ext.l	d4
    asl.l	#6,d4
    move.w	($FFFFF73C).w,d5
    ext.l	d5
    asl.l	#5,d5
    bsr.w	ScrollBlock1
    move.w	($FFFFF70C).w,($FFFFF618).w
    lea	($FFFFCC00).w,a1
    move.w	#$DF,d1	; 'ß'
    move.w	($FFFFF700).w,d0
    neg.w	d0
    swap	d0
    move.w	($FFFFF708).w,d0
    neg.w	d0
 
Deform_SBZ_Act2_1:    	; XREF: Deform_SBZ
    move.l	d0,(a1)+
    dbf	d1,Deform_SBZ_Act2_1
    rts	
; End of function Deform_SBZ

Шаг4:
Идём к ScrollBlock1 и заменяем всё до конца ScrollBlock4 на этот код:

Код:
ScrollBlock1:        ; XREF: Deform_LZ, Deform_SBZ
    move.l	($FFFFF708).w,d2
    move.l	d2,d0
    add.l	d4,d0
    move.l	d0,($FFFFF708).w
    move.l	d0,d1
    swap	d1
    andi.w	#$10,d1
    move.b	($FFFFF74C).w,d3
    eor.b	d3,d1
    bne.s	ScrollBlock1_2
    eori.b	#$10,($FFFFF74C).w
    sub.l	d2,d0
    bpl.s	ScrollBlock1_1
    bset	#2,($FFFFF756).w
    bra.s	ScrollBlock1_2
; ===========================================================================
 
ScrollBlock1_1:        ; XREF: ScrollBlock1
    bset	#3,($FFFFF756).w
 
ScrollBlock1_2:        ; XREF: ScrollBlock1, Deform_SBZ, ...
    move.l	($FFFFF70C).w,d3
    move.l	d3,d0
    add.l	d5,d0
    move.l	d0,($FFFFF70C).w
    move.l	d0,d1
    swap	d1
    andi.w	#$10,d1
    move.b	($FFFFF74D).w,d2
    eor.b	d2,d1
    bne.s	ScrollBlock1_End
    eori.b	#$10,($FFFFF74D).w
    sub.l	d3,d0
    bpl.s	ScrollBlock1_3
    bset	#0,($FFFFF756).w
    rts	
; ===========================================================================
 
ScrollBlock1_3:        ; XREF: ScrollBlock1
    bset	#1,($FFFFF756).w
 
ScrollBlock1_End:    	; XREF: ScrollBlock1
    rts	
; End of function ScrollBlock1
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
ScrollBlock2:        ; XREF: Deform_MZ, Deform_SYZ
    move.l	($FFFFF70C).w,d3
    move.l	d3,d0
    add.l	d5,d0
    move.l	d0,($FFFFF70C).w
    move.l	d0,d1
    swap	d1
    andi.w	#$10,d1
    move.b	($FFFFF74D).w,d2
    eor.b	d2,d1
    bne.s	ScrollBlock2_End
    eori.b	#$10,($FFFFF74D).w
    sub.l	d3,d0
    bpl.s	ScrollBlock2_1
    bset	#4,($FFFFF756).w
    rts	
; ===========================================================================
 
ScrollBlock2_1:        ; XREF: ScrollBlock2
    bset	#5,($FFFFF756).w
 
ScrollBlock2_End:    	; XREF: ScrollBlock2
    rts	
; End of function ScrollBlock2
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
ScrollBlock3:        ; XREF: Deform_MZ
    move.w	($FFFFF70C).w,d3
    move.w	d0,($FFFFF70C).w
    move.w	d0,d1
    andi.w	#$10,d1
    move.b	($FFFFF74D).w,d2
    eor.b	d2,d1
    bne.s	ScrollBlock3_End
    eori.b	#$10,($FFFFF74D).w
    sub.w	d3,d0
    bpl.s	ScrollBlock3_1
    bset	#0,($FFFFF756).w
    rts	
; ===========================================================================
 
ScrollBlock3_1:        ; XREF: ScrollBlock3
    bset	#1,($FFFFF756).w
 
ScrollBlock3_End:    	; XREF: ScrollBlock3
    rts	
; End of function ScrollBlock3
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
ScrollBlock4:        ; XREF: Deform_MZ, Deform_SBZ
    move.l	($FFFFF708).w,d2
    move.l	d2,d0
    add.l	d4,d0
    move.l	d0,($FFFFF708).w
    move.l	d0,d1
    swap	d1
    andi.w	#$10,d1
    move.b	($FFFFF74C).w,d3
    eor.b	d3,d1
    bne.s	ScrollBlock4_End
    eori.b	#$10,($FFFFF74C).w
    sub.l	d2,d0
    bpl.s	ScrollBlock4_1
    bset	d6,($FFFFF756).w
    bra.s	ScrollBlock4_End
; ===========================================================================
 
ScrollBlock4_1:        ; XREF: ScrollBlock4
    addq.b	#1,d6
    bset	d6,($FFFFF756).w
 
ScrollBlock4_End:    	; XREF: ScrollBlock4
    rts	
; End of function ScrollBlock4
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
ScrollBlock5:        ; XREF: Deform_GHZ, Deform_MZ, ...
    move.l	($FFFFF710).w,d2
    move.l	d2,d0
    add.l	d4,d0
    move.l	d0,($FFFFF710).w
    move.l	d0,d1
    swap	d1
    andi.w	#$10,d1
    move.b	($FFFFF74E).w,d3
    eor.b	d3,d1
    bne.s	ScrollBlock5_End
    eori.b	#$10,($FFFFF74E).w
    sub.l	d2,d0
    bpl.s	ScrollBlock5_1
    bset	d6,($FFFFF758).w
    bra.s	ScrollBlock5_End
; ===========================================================================
 
ScrollBlock5_1:        ; XREF: ScrollBlock5
    addq.b	#1,d6
    bset	d6,($FFFFF758).w
 
ScrollBlock5_End:    	; XREF: ScrollBlock5
    rts	
; End of function ScrollBlock5
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
ScrollBlock6:        ; XREF: Deform_GHZ, Deform_MZ, ...
    move.l	($FFFFF718).w,d2
    move.l	d2,d0
    add.l	d4,d0
    move.l	d0,($FFFFF718).w
    move.l	d0,d1
    swap	d1
    andi.w	#$10,d1
    move.b	($FFFFF750).w,d3
    eor.b	d3,d1
    bne.s	ScrollBlock6_End
    eori.b	#$10,($FFFFF750).w
    sub.l	d2,d0
    bpl.s	ScrollBlock6_1
    bset	d6,($FFFFF75A).w
    bra.s	ScrollBlock6_End
; ===========================================================================
 
ScrollBlock6_1:        ; XREF: ScrollBlock6
    addq.b	#1,d6
    bset	d6,($FFFFF75A).w
 
ScrollBlock6_End:    	; XREF: ScrollBlock6
    rts	
; End of function ScrollBlock6

Шаг5:
Идём к sub_6886 и заменяем всё до конца LoadTilesFromStart2(это очень длинный путь) на это:

Код:
sub_6886:    
    lea	($C00004).l,a5
    lea	($C00000).l,a6
    lea	($FFFFF756).w,a2
    lea	($FFFFF708).w,a3
    lea	($FFFFA440).w,a4
    move.w	#$6000,d2
    bsr.w	sub_6D0A
    lea	($FFFFF758).w,a2
    lea	($FFFFF710).w,a3
    bra.w	sub_6DA6
; End of function sub_6886
 
; ---------------------------------------------------------------------------
; Subroutine to	display	correct	tiles as you move
; ---------------------------------------------------------------------------
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
LoadTilesAsYouMove:    	; XREF: Demo_Time
    lea	($C00004).l,a5
    lea	($C00000).l,a6
    lea	($FFFFFF32).w,a2
    lea	($FFFFFF18).w,a3
    lea	($FFFFA440).w,a4
    move.w	#$6000,d2
    bsr.w	sub_6D0A
    lea	($FFFFFF34).w,a2
    lea	($FFFFFF20).w,a3
    bsr.w	sub_6DA6
    lea	($FFFFFF36).w,a2
    lea	($FFFFFF28).w,a3
    bsr.w	sub_6EA4
    lea	($FFFFFF30).w,a2
    lea	($FFFFFF10).w,a3
    lea	($FFFFA400).w,a4
    move.w	#$4000,d2
    tst.b	($FFFFF745).w
    beq.s	Draw_FG
    move.b	#0,($FFFFF745).w	;Reset the redraw flag
    moveq	#-$10,d4    	;Go to top line oflevel data relative camera position
    moveq	#$F,d6        ;
 
Draw_All:
    movem.l	d4-d6,-(sp)    	; This whole routine basically redraws the whole
    moveq	#-$10,d5    	; area instead of merely a line of tiles
    move.w	d4,d1
    bsr.w	Calc_VRAM_Pos
    move.w	d1,d4
    moveq	#-$10,d5
    bsr.w	DrawTiles_LR
    movem.l	(sp)+,d4-d6
    addi.w	#$10,d4
    dbf	d6,Draw_All
    rts	
 
Draw_FG:
    tst.b	(a2)
    beq.s	locret_6D08
    bclr	#0,(a2)
    beq.s	loc_6CBE
    moveq	#-$10,d4
    moveq	#-$10,d5
    bsr.w	Calc_VRAM_Pos
    moveq	#-$10,d4
    moveq	#-$10,d5
    bsr.w	DrawTiles_LR
 
loc_6CBE:
    bclr	#1,(a2)
    beq.s	loc_6CD8
    move.w	#$E0,d4	; 'à'
    moveq	#-$10,d5
    bsr.w	Calc_VRAM_Pos
    move.w	#$E0,d4	; 'à'
    moveq	#-$10,d5
    bsr.w	DrawTiles_LR
 
loc_6CD8:
    bclr	#2,(a2)
    beq.s	loc_6CEE
    moveq	#-$10,d4
    moveq	#-$10,d5
    bsr.w	Calc_VRAM_Pos
    moveq	#-$10,d4
    moveq	#-$10,d5
    bsr.w	DrawTiles_TB
 
loc_6CEE:
    bclr	#3,(a2)
    beq.s	locret_6D08
    moveq	#-$10,d4
    move.w	#$140,d5
    bsr.w	Calc_VRAM_Pos
    moveq	#-$10,d4
    move.w	#$140,d5
    bsr.w	DrawTiles_TB
 
locret_6D08:
    rts	
 
; End of function LoadTilesAsYouMove
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
sub_6D0A:
    tst.b	(a2)
    beq.w	locret_6DA4
    bclr	#0,(a2)
    beq.s	loc_6D26
    moveq	#-$10,d4
    moveq	#-$10,d5
    bsr.w	Calc_VRAM_Pos
    moveq	#-$10,d4
    moveq	#-$10,d5
    bsr.w	DrawTiles_LR
 
loc_6D26:
    bclr	#1,(a2)
    beq.s	loc_6D40
    move.w	#$E0,d4	; 'à'
    moveq	#-$10,d5
    bsr.w	Calc_VRAM_Pos
    move.w	#$E0,d4	; 'à'
    moveq	#-$10,d5
    bsr.w	DrawTiles_LR
 
loc_6D40:
    bclr	#2,(a2)
    beq.s	loc_6D56
    moveq	#-$10,d4
    moveq	#-$10,d5
    bsr.w	Calc_VRAM_Pos
    moveq	#-$10,d4
    moveq	#-$10,d5
    bsr.w	DrawTiles_TB
 
loc_6D56:
    bclr	#3,(a2)
    beq.s	loc_6D70
    moveq	#-$10,d4
    move.w	#$140,d5
    bsr.w	Calc_VRAM_Pos
    moveq	#-$10,d4
    move.w	#$140,d5
    bsr.w	DrawTiles_TB
 
loc_6D70:
    bclr	#4,(a2)
    beq.s	loc_6D88
    moveq	#-$10,d4
    moveq	#0,d5
    bsr.w	loc_7176
    moveq	#-$10,d4
    moveq	#0,d5
    moveq	#$1F,d6
    bsr.w	DrawTiles_LR3
 
loc_6D88:
    bclr	#5,(a2)
    beq.s	locret_6DA4
    move.w	#$E0,d4	; 'à'
    moveq	#0,d5
    bsr.w	loc_7176
    move.w	#$E0,d4	; 'à'
    moveq	#0,d5
    moveq	#$1F,d6
    bsr.w	DrawTiles_LR3
 
locret_6DA4:
    rts	
; End of function sub_6D0A
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
sub_6DA6:
    tst.b	(a2)
    beq.w	locret_6DF2
    cmpi.b	#5,($FFFFFE10).w
    beq.w	loc_6E16
    bclr	#0,(a2)
    beq.s	loc_6DD2
    move.w	#$70,d4	; 'p'
    moveq	#-$10,d5
    bsr.w	Calc_VRAM_Pos
    move.w	#$70,d4	; 'p'
    moveq	#-$10,d5
    moveq	#2,d6
    bsr.w	DrawTiles_TB2
 
loc_6DD2:
    bclr	#1,(a2)
    beq.s	locret_6DF2
    move.w	#$70,d4	; 'p'
    move.w	#$140,d5
    bsr.w	Calc_VRAM_Pos
    move.w	#$70,d4	; 'p'
    move.w	#$140,d5
    moveq	#2,d6
    bsr.w	DrawTiles_TB2
 
locret_6DF2:
    rts	
; ===========================================================================
unk_6DF4:	dc.b   0 ;	 
unk_6DF5:	dc.b   0 ;	 
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   0 ;  
; ===========================================================================
 
loc_6E16:
    moveq	#-$10,d4
    bclr	#0,(a2)
    bne.s	loc_6E28
    bclr	#1,(a2)
    beq.s	loc_6E72
    move.w	#$E0,d4	; 'à'
 
loc_6E28:
    lea	(unk_6DF5).l,a0
    move.w	($FFFFF70C).w,d0
    add.w	d4,d0
    andi.w	#$1F0,d0
    lsr.w	#4,d0
    move.b	(a0,d0.w),d0
    lea	(unk_6FE4).l,a3
    movea.w	(a3,d0.w),a3
    beq.s	loc_6E5E
    moveq	#-$10,d5
    movem.l	d4-d5,-(sp)
    bsr.w	Calc_VRAM_Pos
    movem.l	(sp)+,d4-d5
    bsr.w	DrawTiles_LR
    bra.s	loc_6E72
; ===========================================================================
 
loc_6E5E:
    moveq	#0,d5
    movem.l	d4-d5,-(sp)
    bsr.w	loc_7176
    movem.l	(sp)+,d4-d5
    moveq	#$1F,d6
    bsr.w	DrawTiles_LR3
 
loc_6E72:
    tst.b	(a2)
    bne.s	loc_6E78
    rts	
; ===========================================================================
 
loc_6E78:
    moveq	#-$10,d4
    moveq	#-$10,d5
    move.b	(a2),d0
    andi.b	#-$58,d0
    beq.s	loc_6E8C
    lsr.b	#1,d0
    move.b	d0,(a2)
    move.w	#$140,d5
 
loc_6E8C:
    lea	(unk_6DF4).l,a0
    move.w	($FFFFF70C).w,d0
    andi.w	#$1F0,d0
    lsr.w	#4,d0
    lea	(a0,d0.w),a0
    bra.w	loc_6FEC
; End of function sub_6DA6
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
sub_6EA4:
    tst.b	(a2)
    beq.w	locret_6EF0
    cmpi.b	#2,($FFFFFE10).w
    beq.w	loc_6F54
    bclr	#0,(a2)
    beq.s	loc_6ED0_2
    move.w	#$40,d4	; '@'
    moveq	#-$10,d5
    bsr.w	Calc_VRAM_Pos
    move.w	#$40,d4	; '@'
    moveq	#-$10,d5
    moveq	#2,d6
    bsr.w	DrawTiles_TB2
 
loc_6ED0_2:
    bclr	#1,(a2)
    beq.s	locret_6EF0
    move.w	#$40,d4	; '@'
    move.w	#$140,d5
    bsr.w	Calc_VRAM_Pos
    move.w	#$40,d4	; '@'
    move.w	#$140,d5
    moveq	#2,d6
    bsr.w	DrawTiles_TB2
 
locret_6EF0:
    rts	
; ===========================================================================
unk_6EF2:	dc.b   0 ;	 
unk_6EF3:	dc.b   0 ;	 
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   2 ;  
    dc.b   0 ;  
; ===========================================================================
 
loc_6F54:
    moveq	#-$10,d4
    bclr	#0,(a2)
    bne.s	loc_6F66
    bclr	#1,(a2)
    beq.s	loc_6FAE
    move.w	#$E0,d4	; 'à'
 
loc_6F66:
    lea	(unk_6EF3).l,a0
    move.w	($FFFFF70C).w,d0
    subi.w	#$200,d0
    add.w	d4,d0
    andi.w	#$7F0,d0
    lsr.w	#4,d0
    move.b	(a0,d0.w),d0
    movea.w	unk_6FE4(pc,d0.w),a3
    beq.s	loc_6F9A
    moveq	#-$10,d5
    movem.l	d4-d5,-(sp)
    bsr.w	Calc_VRAM_Pos
    movem.l	(sp)+,d4-d5
    bsr.w	DrawTiles_LR
    bra.s	loc_6FAE
; ===========================================================================
 
loc_6F9A:
    moveq	#0,d5
    movem.l	d4-d5,-(sp)
    bsr.w	loc_7176
    movem.l	(sp)+,d4-d5
    moveq	#$1F,d6
    bsr.w	DrawTiles_LR3
 
loc_6FAE:
    tst.b	(a2)
    bne.s	loc_6FB4
    rts	
; ===========================================================================
 
loc_6FB4:
    moveq	#-$10,d4
    moveq	#-$10,d5
    move.b	(a2),d0
    andi.b	#-$58,d0
    beq.s	loc_6FC8
    lsr.b	#1,d0
    move.b	d0,(a2)
    move.w	#$140,d5
 
loc_6FC8:
    lea	(unk_6EF2).l,a0
    move.w	($FFFFF70C).w,d0
    subi.w	#$200,d0
    andi.w	#$7F0,d0
    lsr.w	#4,d0
    lea	(a0,d0.w),a0
    bra.w	loc_6FEC
; ===========================================================================
unk_6FE4:	dc.b $FF ;  
    dc.b $18 ;  
    dc.b $FF ;  
    dc.b $18 ;  
    dc.b $FF ;  
    dc.b $20 ;  
    dc.b $FF ;  
    dc.b $28 ; (
; ===========================================================================
 
loc_6FEC:
    moveq	#$F,d6
    move.l	#$800000,d7
 
loc_6FF4:
    moveq	#0,d0
    move.b	(a0)+,d0
    btst	d0,(a2)
    beq.s	loc_701C
    movea.w	unk_6FE4(pc,d0.w),a3
    movem.l	d4-d5/a0,-(sp)
    movem.l	d4-d5,-(sp)
    bsr.w	sub_712A
    movem.l	(sp)+,d4-d5
    bsr.w	Calc_VRAM_Pos
    bsr.w	sub_70AC
    movem.l	(sp)+,d4-d5/a0
 
loc_701C:
    addi.w	#$10,d4
    dbf	d6,loc_6FF4
    clr.b	(a2)
    rts	
; End of function sub_6EA4
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
DrawTiles_LR:
    moveq	#$15,d6
; End of function DrawTiles_LR
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
DrawTiles_LR2:
    move.l	#$800000,d7
    move.l	d0,d1
 
loc_7032:
    movem.l	d4-d5,-(sp)
    bsr.w	sub_712A
    move.l	d1,d0
    bsr.w	sub_70AC
    addq.b	#4,d1
    andi.b	#$7F,d1	; ''
    movem.l	(sp)+,d4-d5
    addi.w	#$10,d5
    dbf	d6,loc_7032
    rts	
; End of function DrawTiles_LR2
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
DrawTiles_LR3:
    move.l	#$800000,d7
    move.l	d0,d1
 
loc_705C:
    movem.l	d4-d5,-(sp)
    bsr.w	loc_712C
    move.l	d1,d0
    bsr.w	sub_70AC
    addq.b	#4,d1
    andi.b	#$7F,d1	; ''
    movem.l	(sp)+,d4-d5
    addi.w	#$10,d5
    dbf	d6,loc_705C
    rts	
; End of function DrawTiles_LR3
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
DrawTiles_TB:
    moveq	#$F,d6
; End of function DrawTiles_TB
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
DrawTiles_TB2:
    move.l	#$800000,d7
    move.l	d0,d1
 
loc_7088:
    movem.l	d4-d5,-(sp)
    bsr.w	sub_712A
    move.l	d1,d0
    bsr.w	sub_70AC
    addi.w	#$100,d1
    andi.w	#$FFF,d1
    movem.l	(sp)+,d4-d5
    addi.w	#$10,d4
    dbf	d6,loc_7088
    rts	
; End of function DrawTiles_TB2
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
sub_70AC:
    or.w	d2,d0
    swap	d0
    btst	#4,(a0)
    bne.s	loc_70E8
    btst	#3,(a0)
    bne.s	loc_70C8
    move.l	d0,(a5)
    move.l	(a1)+,(a6)
    add.l	d7,d0
    move.l	d0,(a5)
    move.l	(a1)+,(a6)
    rts	
; ===========================================================================
 
loc_70C8:
    move.l	d0,(a5)
    move.l	(a1)+,d4
    eori.l	#$8000800,d4
    swap	d4
    move.l	d4,(a6)
    add.l	d7,d0
    move.l	d0,(a5)
    move.l	(a1)+,d4
    eori.l	#$8000800,d4
    swap	d4
    move.l	d4,(a6)
    rts	
; ===========================================================================
 
loc_70E8:
    btst	#3,(a0)
    bne.s	loc_710A
    move.l	d0,(a5)
    move.l	(a1)+,d5
    move.l	(a1)+,d4
    eori.l	#$10001000,d4
    move.l	d4,(a6)
    add.l	d7,d0
    move.l	d0,(a5)
    eori.l	#$10001000,d5
    move.l	d5,(a6)
    rts	
; ===========================================================================
 
loc_710A:
    move.l	d0,(a5)
    move.l	(a1)+,d5
    move.l	(a1)+,d4
    eori.l	#$18001800,d4
    swap	d4
    move.l	d4,(a6)
    add.l	d7,d0
    move.l	d0,(a5)
    eori.l	#$18001800,d5
    swap	d5
    move.l	d5,(a6)
    rts	
; End of function sub_70AC
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
sub_712A:
    add.w	(a3),d5
 
loc_712C:
    add.w	4(a3),d4
    lea	($FFFFB000).w,a1
    move.w	d4,d3
    lsr.w	#1,d3
    andi.w	#$380,d3
    lsr.w	#3,d5
    move.w	d5,d0
    lsr.w	#5,d0
    andi.w	#$7F,d0	; ''
    add.w	d3,d0
    moveq	#-1,d3
    move.b	(a4,d0.w),d3
    beq.s	locret_7172
    subq.b	#1,d3
    andi.w	#$7F,d3	; ''
    ror.w	#7,d3
    add.w	d4,d4
    andi.w	#$1E0,d4
    andi.w	#$1E,d5
    add.w	d4,d3
    add.w	d5,d3
    movea.l	d3,a0
    move.w	(a0),d3
    andi.w	#$3FF,d3
    lsl.w	#3,d3
    adda.w	d3,a1
 
locret_7172:
    rts	
; End of function sub_712A
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
Calc_VRAM_Pos:
    add.w	(a3),d5
 
loc_7176:
    add.w	4(a3),d4
    andi.w	#$F0,d4	; 'ð'
    andi.w	#$1F0,d5
    lsl.w	#4,d4
    lsr.w	#2,d5
    add.w	d5,d4
    moveq	#3,d0
    swap	d0
    move.w	d4,d0
    rts	
; End of function Calc_VRAM_Pos
 
; ===========================================================================
    add.w	4(a3),d4
    add.w	(a3),d5
    andi.w	#$F0,d4	; 'ð'
    andi.w	#$1F0,d5
    lsl.w	#4,d4
    lsr.w	#2,d5
    add.w	d5,d4
    moveq	#2,d0
    swap	d0
    move.w	d4,d0
    rts	
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
LoadTilesFromStart:
    lea	($C00004).l,a5
    lea	($C00000).l,a6
    lea	($FFFFF700).w,a3
    lea	($FFFFA400).w,a4
    move.w	#$4000,d2
    bsr.s	LoadTilesFromStart2
    lea	($FFFFF708).w,a3
    lea	($FFFFA440).w,a4
    move.w	#$6000,d2
    tst.b	($FFFFFE10).w
    beq.w	loc_7220
    cmpi.b	#2,($FFFFFE10).w
    beq.w	loc_725A
    cmpi.w	#$500,($FFFFFE10).w
    beq.w	loc_7288
    cmpi.b	#6,($FFFFFE10).w
    beq.w	loc_7220
; End of function LoadTilesFromStart
 
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
LoadTilesFromStart2:
    moveq	#-$10,d4
    moveq	#$F,d6
 
loc_71FC:
    movem.l	d4-d6,-(sp)
    moveq	#0,d5
    move.w	d4,d1
    bsr.w	Calc_VRAM_Pos
    move.w	d1,d4
    moveq	#0,d5
    moveq	#$1F,d6
    bsr.w	DrawTiles_LR2
    movem.l	(sp)+,d4-d6
    addi.w	#$10,d4
    dbf	d6,loc_71FC
    rts	
; End of function LoadTilesFromStart2
 
; ===========================================================================
 
loc_7220:
    moveq	#0,d4
    moveq	#$F,d6
 
loc_7224:
    movem.l	d4-d6,-(sp)
    lea	(unk_724A).l,a0
    move.w	($FFFFF70C).w,d0
    add.w	d4,d0
    andi.w	#$F0,d0	; 'ð'
    bsr.w	sub_72BA
    movem.l	(sp)+,d4-d6
    addi.w	#$10,d4
    dbf	d6,loc_7224
    rts	
; ===========================================================================
unk_724A:	dc.b   0 ;	 
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   6 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   4 ;  
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   0 ;  
    dc.b   0 ;  
; ===========================================================================
 
loc_725A:
    moveq	#-$10,d4
    moveq	#$F,d6
 
loc_725E:
    movem.l	d4-d6,-(sp)
    lea	(unk_6EF3).l,a0
    move.w	($FFFFF70C).w,d0
    subi.w	#$200,d0
    add.w	d4,d0
    andi.w	#$7F0,d0
    bsr.w	sub_72BA
    movem.l	(sp)+,d4-d6
    addi.w	#$10,d4
    dbf	d6,loc_725E
    rts	
; ===========================================================================
 
loc_7288:
    moveq	#-$10,d4
    moveq	#$F,d6
 
loc_728C:
    movem.l	d4-d6,-(sp)
    lea	(unk_6DF5).l,a0
    move.w	($FFFFF70C).w,d0
    add.w	d4,d0
    andi.w	#$1F0,d0
    bsr.w	sub_72BA
    movem.l	(sp)+,d4-d6
    addi.w	#$10,d4
    dbf	d6,loc_728C
    rts	
; ===========================================================================
unk_72B2:	dc.b $F7 ; ÷
    dc.b   8 ;  
    dc.b $F7 ; ÷
    dc.b   8 ;  
    dc.b $F7 ; ÷
    dc.b $10 ;  
    dc.b $F7 ; ÷
    dc.b $18 ;  
 
; ||||||||||||||| S U B	R O U T	I N E |||||||||||||||||||||||||||||||||||||||
 
 
sub_72BA:
    lsr.w	#4,d0
    move.b	(a0,d0.w),d0
    movea.w	unk_72B2(pc,d0.w),a3
    beq.s	loc_72DA
    moveq	#-$10,d5
    movem.l	d4-d5,-(sp)
    bsr.w	Calc_VRAM_Pos
    movem.l	(sp)+,d4-d5
    bsr.w	DrawTiles_LR
    bra.s	locret_72EE
; ===========================================================================
 
loc_72DA:
    moveq	#0,d5
    movem.l	d4-d5,-(sp)
    bsr.w	loc_7176
    movem.l	(sp)+,d4-d5
    moveq	#$1F,d6
    bsr.w	DrawTiles_LR3
 
locret_72EE:
    rts	
; End of function sub_72BA

Шаг6:
Компилируем и вперёд,оценивать работу!
Внимание!В коде возможено есть Юникод.Удалите его.