some work on the hardware bouncing. Happy to see a screen full

of crappy grafics distorting. Maybe I should sort out that font
issue...
master
Georges Kesseler 2012-02-21 00:28:01 +01:00
parent b39a40fd86
commit b240884460
2 changed files with 58 additions and 90 deletions

Binary file not shown.

View File

@ -3,7 +3,8 @@ overscan:equ 0
; Double Megadistorter by Gunstick (c) ULM 1990 ; Double Megadistorter by Gunstick (c) ULM 1990
; we know! it's long, but it works ! And it's from ULM !!! ; we know! it's long, but it works ! And it's from ULM !!!
parallax equ 10 parallax equ 0
parallay equ 0
bus equ 10 bus equ 10
@ -366,7 +367,7 @@ looop:
movem.l black,d0-d7 movem.l black,d0-d7
movem.l d0-d7,$ffff8240.w movem.l d0-d7,$ffff8240.w
asd equ 244 ;blaf equ 174-55
blaf equ 174 blaf equ 174
move.w #1500-30,d0 move.w #1500-30,d0
opentopwait: opentopwait:
@ -387,10 +388,10 @@ loop:
not.w $ffff8240.w not.w $ffff8240.w
move.b #0,$fffffa19.w ;stop timer move.b #0,$fffffa19.w ;stop timer
move.b #asd,$fffffa1f.w move.b #244,$fffffa1f.w ;244
asd equ 7
move.b #32,$fffffa07.w move.b #32,$fffffa07.w
move.b #0,$fffffa0b.w move.b #0,$fffffa0b.w ;clr pending
not.w $ffff8240.w not.w $ffff8240.w
move.b #2,$ffff820a.w move.b #2,$ffff820a.w
;ULM Hardware Scrolling PART 2 ;ULM Hardware Scrolling PART 2
@ -440,7 +441,7 @@ mitte:
move.b #2,$ffff8260.w move.b #2,$ffff8260.w
move.b #0,$ffff8260.w move.b #0,$ffff8260.w
cont3: cont3:
move.b #7,$fffffa19.w move.b #asd,$fffffa19.w
dcb $4e71,28 dcb $4e71,28
tst.b (a0)+ tst.b (a0)+
bne.s rechts1 bne.s rechts1
@ -495,6 +496,7 @@ _scrnok:
;do some hardwarebouncing ;do some hardwarebouncing
move.l hwbounceptr-nextscrn(a2),a0 ;~20 move.l hwbounceptr-nextscrn(a2),a0 ;~20
move.w (a0)+,d1 ;~8 move.w (a0)+,d1 ;~8
cmpi.w #-1,d1
bne.s hwbounceok ;~8 bne.s hwbounceok ;~8
lea hwbouncetab-nextscrn(a2),a0 ;~8 lea hwbouncetab-nextscrn(a2),a0 ;~8
move.w (a0)+,d1 ;~8 move.w (a0)+,d1 ;~8
@ -512,8 +514,7 @@ _hwbounceok:
;free: d0-a6/usp ;free: d0-a6/usp
dcb $4e71,4+4-6 dcb $4e71,2
dcb $4e71,25-23
calc_mdist calc_mdist
move.b #0,$ffff820a.w ;Open right border move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w move.b #2,$ffff820a.w
@ -617,10 +618,10 @@ _notnextwavetab:
do_mdist2 do_mdist2
move.w d_3,distcalc ;~16 move.w d_3,distcalc ;~16
scrhigh equ 20
lea disttable+4,a_2 ;~12 scroll begins 18 lines before end of screen lea disttable+0,a_2 ;~12 scroll begins 18 lines before end of screen
lea shift,a_0 ;~12 pointer to the shifts lea shift,a_0 ;~12 pointer to the shifts
move.w #-(18*8),count ;~20 scroll has 18 lines move.w #-(scrhigh*8),count ;~20 scroll has 18 lines
distcalcloop: ;(~12) distcalcloop: ;(~12)
;free: d0/d3-d7/a1-a2/a4-a6/usp cpy:d0/d3/a1/a2 ;free: d0/d3-d7/a1-a2/a4-a6/usp cpy:d0/d3/a1/a2
@ -755,7 +756,7 @@ _nottextend:
move.l a_1,textptr-shift(a_0) ;~16 textptr points to K move.l a_1,textptr-shift(a_0) ;~16 textptr points to K
clr.b d_1 ;~4 C clr.b d_1 ;~4 C
clr.b d_2 ;~4 K clr.b d_2 ;~4 K
lea font+(18*8),a_1 ;~8 lea font+(scrhigh*8),a_1 ;~8
add.w count,a_1 ;~20 add.w count,a_1 ;~20
lea (a_1,d_1),a_2 ;~12 C lea (a_1,d_1),a_2 ;~12 C
; lea (a_1),a_2 ;C ; lea (a_1),a_2 ;C
@ -1084,7 +1085,7 @@ _rueckbufok:
move.l a_1,textptr-shift(a_0) ;~16 textptr points to I move.l a_1,textptr-shift(a_0) ;~16 textptr points to I
clr.b d_1 ;~4 E clr.b d_1 ;~4 E
clr.b d_2 ;~4 A clr.b d_2 ;~4 A
lea font+(18*8),a_1 ;~12 lea font+(scrhigh*8),a_1 ;~12
add.w count,a_1 ;~20 add.w count,a_1 ;~20
lea (a_1,d_1),a_2 ;~12 E lea (a_1,d_1),a_2 ;~12 E
movem.l (a_1,d_2),d_1/d_3 ;~36 A movem.l (a_1,d_2),d_1/d_3 ;~36 A
@ -1146,7 +1147,7 @@ copydistscroll:
move.l logbase,a0 ;put it there move.l logbase,a0 ;put it there
add.l #6*160+230*(280-20),a0 ;for hwscroll add.l #6*160+230*(280-20),a0 ;for hwscroll
move.w #16,count ;scrollhigh:18 move.w #13,count ;scrollhigh:18
lea openlowtab,a1 lea openlowtab,a1
@ -1221,7 +1222,7 @@ c9 equr a5
c10 equr a1 c10 equr a1
;let's copy the rest ;let's copy the rest
move.w #2,count move.w #7,count
scrollcpy2: scrollcpy2:
move.w shift-buffer(a6),d1 move.w shift-buffer(a6),d1
mulu #208,d1 mulu #208,d1
@ -1363,8 +1364,13 @@ codmod:
;-------------------------------------------------------------- ;--------------------------------------------------------------
; bra looop ; bra looop
movem.l black,d0-d7
movem.l d0-d7,$ffff8240.w
move.l mdistadjustptr,a4 move.l mdistadjustptr,a4
lea shift,a0 sss equ 15
lea shift+sss*(linebuffend-linebuffbegin),a0
lea sss*2(a4),a4
moveq #4,d0 moveq #4,d0
adjloop: adjloop:
move.w (a0),d1 move.w (a0),d1
@ -1379,6 +1385,7 @@ adjloop:
move.w d1,14*20*2(a4) move.w d1,14*20*2(a4)
move.w d1,(a4)+ move.w d1,(a4)+
dbf d0,adjloop dbf d0,adjloop
sub.w #sss*2,a4
cmp.l #mdistadjust+14*20*2,a4 cmp.l #mdistadjust+14*20*2,a4
blo.s adjok blo.s adjok
lea mdistadjust,a4 lea mdistadjust,a4
@ -1388,13 +1395,27 @@ adjok:
lea mdistgraph,a5 lea mdistgraph,a5
move.l mdistadjustptr,a4 move.l mdistadjustptr,a4
lea mdistcurv,a3 lea mdistcurv,a3
lea 16*2(a4),a4 move.l hwbounceptr,a0
move.w -2(a0),d0
cmpi.w #-1,d0
bne.s bounceok
move.w hwbouncetab,d0
bounceok:
ext.l d0
divs #230/2,d0
adda.w d0,a4
ifeq parallay
andi.w #$fffc,d0
asl.w #4,d0
adda.w d0,a5
endc
lea 15*2(a4),a4
calc_mdist calc_mdist
movem.l d3/d4/d5/d6,hwpalette movem.l d3/d4/d5/d6,hwpalette
lea 64(a5),a5 lea 64(a5),a5
movem.l black,d0-d7
movem.l d0-d7,$ffff8240.w
move.b #0,$fffffa0b.w ;clr pending
no_int: no_int:
tst.b $fffffa0b.w tst.b $fffffa0b.w
beq.s no_int beq.s no_int
@ -3184,52 +3205,28 @@ mdistcurv:
hwbounceptr: dc.l hwbouncetab hwbounceptr: dc.l hwbouncetab
hwbouncetab: hwbouncetab:
dc.w 230 ; dc.w 0,0,0,0,0,0,-1
dc.w 0 ; dc.w 0,0,230,230,230*2,230,230,0,0,-1
dc.w 230*16,230*16 dc.w 230*12,230*12
dc.w 230*16,230*16 dc.w 230*12,230*12
dc.w 230*15,230*15
dc.w 230*15,230*15
dc.w 230*14,230*14
dc.w 230*14,230*14
dc.w 230*13,230*13
dc.w 230*12,230*12 dc.w 230*12,230*12
dc.w 230*11,230*10 dc.w 230*11,230*10
dc.w 230*9,230*8 dc.w 230*9,230*8
dc.w 230*7 dc.w 230*7
dc.w 230*6 dc.w 230*6
dc.w 230*5,230*3 dc.w 230*5
dc.w 230*3,230*3 dc.w 230*3
dc.w 230*3,230*3 dc.w 230*1
dc.w 230*2,230*2 dc.w 0
dc.w 230*2,230*2 dc.w 230*1
dc.w 230*1,230*1 dc.w 230*3
dc.w 230*1,230*1
dc.w 230*1,230*1
dc.w 230*1,230*1
dc.w 230*2,230*2
dc.w 230*2,230*2
dc.w 230*2,230*2
dc.w 230*2,230*2
dc.w 230*2,230*2
dc.w 230*3,230*3
dc.w 230*3,230*3
dc.w 230*5 dc.w 230*5
dc.w 230*6,230*7 dc.w 230*6,230*7
dc.w 230*8,230*9 dc.w 230*8,230*9
dc.w 230*10,230*11 dc.w 230*10,230*11
dc.w 230*11,230*11
dc.w 230*12,230*12 dc.w 230*12,230*12
dc.w 230*13,230*13 dc.w -1
dc.w 230*14,230*14
dc.w 230*14,230*14
dc.w 230*15,230*15
dc.w 230*15,230*15
dc.w 230*16,230*16
dc.w 230*16,230*16
dc.w 230*17,230*17
dc.w 230*17,230*17
dc.w 230*17,230*17
dc.w 0
scrbase equ 0 scrbase equ 0
scrnadrs: scrnadrs:
dc.l screen-scrbase*230+64400*0 dc.l screen-scrbase*230+64400*0
@ -3291,9 +3288,9 @@ scrnadrs:
; dc.l screen-scrbase*230+64400*0+230*280 ; dc.l screen-scrbase*230+64400*0+230*280
dc.l 0 dc.l 0
openlowtab: openlowtab:
dc.b 2,2,2,2,2,2 ; dc.b 2,2,2,2,2,2
dc.b 2,2,2,2,2,2 ; dc.b 2,2,2,2,2,2
dc.b 2,2,2,2,2,2 ; dc.b 2,2,2,2,2,2
dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2
dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2
dc.b 2,2,2,0,2,2 ;old dc.b 2,2,2,0,2,2 ;old
@ -3320,6 +3317,8 @@ font equ *-32*8
even even
wavetab: wavetab:
; dc.l byteschief,0 ; dc.l byteschief,0
dc.l wordschief
dc.l wordschief
dc.l wordschief dc.l wordschief
dc.l byteschief dc.l byteschief
dc.l nix dc.l nix
@ -3327,38 +3326,7 @@ wavetab:
dc.l wordhinher dc.l wordhinher
dc.l nix dc.l nix
dc.l nix dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l wordhinher
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l wordhinher
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l wordhinher
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l nix
dc.l hacker,hacker,hacker dc.l hacker,hacker,hacker
dc.l hacker,hacker,hacker
; dc.l dreieck
dc.l dreieck dc.l dreieck
dc.l dreieck dc.l dreieck
dc.l slowdist,slowdist,slowdist,slowdist dc.l slowdist,slowdist,slowdist,slowdist
@ -3740,7 +3708,7 @@ shift:
buffer: buffer:
ds.l 2*26*16 ;16 shifts of the 1st line of the scrolling ds.l 2*26*16 ;16 shifts of the 1st line of the scrolling
linebuffend: linebuffend:
rept 17 ;18 lines scroll rept scrhigh ;18 lines scroll
; ds.l 1 ; ds.l 1
; ds.l 1 ; ds.l 1
; ds.w 1 ; ds.w 1