Screen blink

For anything related to VDP (plane, color, sprite, tiles)

Moderators: BigEvilCorporation, Mask of Destiny

Post Reply
HCKTROX
Interested
Posts: 27
Joined: Wed Mar 24, 2010 1:15 am
Location: Chile

Screen blink

Post by HCKTROX » Mon Sep 05, 2011 12:49 am

Hello guys, I have a problem doing a vertical deformation. The screen blinks while the Plane A deforms vertically. How I may solve that?

Here's the ASM code (Yes, ASM, C sucks):

Code: Select all

Deform_Title_FG:
		;Preparar index en RAM
		moveq	#0,d0
		move.b	($FFFFFFA6).w,d0
		move.w	DeformTitleFG_index(pc,d0.w),d0
		jmp	DeformTitleFG_index(pc,d0.w)

DeformTitleFG_Index:
		dc.w	Deform_Title_Fg_1-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Fg_2-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Fg_3-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Fg_4-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Fg_5-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Fg_4-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Wait-DeformTitleFG_Index
		dc.w	Deform_Title_Fg_3-DeformTitleFG_Index
		dc.w	Deform_Title_FG_Return-DeformTitleFG_Index

Deform_Title_Fg_1:
		move.w	#$8B07,($C00004).l	; Enable Vertical Deform.
		move.l	#$40000010,($C00004).l
		moveq	#0,d0
		move.b	#20,d2
		move.w	#$310,d1
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0

Deform_Title_FG_1_Loop:
		move.l	d0,($C00000).l
		sub.w	#2,d1
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0
		dbf	d2,Deform_Title_FG_1_Loop
		add.b	#$2,($FFFFFFA6).w

Deform_Title_FG_Return:
		rts

Deform_Title_Wait:
		add.b	#$2,($FFFFFFA6).w
		rts

Deform_Title_Fg_2:
		move.l	#$40000010,($C00004).l
		moveq	#0,d0
		move.b	#20,d2
		move.w	#$308,d1
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0

Deform_Title_FG_2_Loop:
		move.l	d0,($C00000).l
		sub.w	#1,d1
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0
		dbf	d2,Deform_Title_FG_2_Loop
		add.b	#$2,($FFFFFFA6).w
		rts

Deform_Title_Fg_3:
		move.l	#$40000010,($C00004).l
		moveq	#0,d0
		move.b	#19,d2
		move.w	#$FFFE,d1
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0

Deform_Title_FG_3_Loop:
		move.l	d0,($C00000).l
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0
		dbf	d2,Deform_Title_FG_3_Loop
		add.b	#$2,($FFFFFFA6).w
		rts

Deform_Title_Fg_4:
		move.l	#$40000010,($C00004).l
		moveq	#0,d0
		move.b	#19,d2
		move.w	#-$308,d1
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0

Deform_Title_FG_4_Loop:
		move.l	d0,($C00000).l
		add.w	#1,d1
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0
		dbf	d2,Deform_Title_FG_4_Loop
		add.b	#$2,($FFFFFFA6).w
		rts

Deform_Title_Fg_5:
		move.l	#$40000010,($C00004).l
		moveq	#0,d0
		move.b	#19,d2
		move.w	#-$310,d1
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0

Deform_Title_FG_5_Loop:
		move.l	d0,($C00000).l
		add.w	#2,d1
		move.w	d1,d0
		swap	d0
		move.w	#$0000,d0
		dbf	d2,Deform_Title_FG_5_Loop
		add.b	#$2,($FFFFFFA6).w
		rts
skype: hcktrox

HCKTROX
Interested
Posts: 27
Joined: Wed Mar 24, 2010 1:15 am
Location: Chile

Post by HCKTROX » Fri Sep 16, 2011 8:35 pm

Nevermind, I've fixed this by myself by using DMA for the vertical deform. too.
skype: hcktrox

Post Reply