Nightseeker

Sonic 1 prototype FCOL3.ASM source code fragment

Dec 8th, 2022 (edited)
1,170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
M68000 Assembler 1.26 KB | Source Code | 0 0
  1.     ??????? fcol,fcolj,fcole
  2.  
  3. *cd_walk        equ 0*2
  4. *cd_jump        equ 1*2
  5. *cd_up          equ 2*2
  6. *cd_down        equ 3*2
  7.  
  8. updotmax    equ -4
  9. downdotmax  equ 4
  10. jumpdotmax  equ 8
  11.  
  12. ;sprvo      equ $1c     ;1
  13. ;sprho      equ $1d     ;1
  14. ;sprvs      equ $1e     ;1
  15. ;sprhs      equ $1f     ;1
  16. ;------------------------------------------------------------------------------
  17. ;   foot colition
  18. ;
  19. ;col:
  20.     move.w  yposi(a0),d4
  21.     move.b  sprvo(a0),d1
  22.     add.b   sprvs(a0),d1
  23.     ext.w   d1
  24.     add.w   d1,d4
  25.     move.w  xposi(a0),d5
  26.     move.b  sprho(a0),d1
  27.     ext.w   d1
  28.     add.w   d1,d5
  29.     move.w  xspeed(a0),scrhithz
  30. ?loop:
  31.     move.w  d4,d2           ;
  32.     move.w  d5,d3           ;
  33.     moveq   #0,d0
  34.     move.b  sprhs(a0),d0
  35.     tst.w   xspeed(a0)
  36.     bpl.b   ?jump
  37. *   btst.b  #cd_right,cddot(a0)
  38. *   beq.b   ?jump
  39.     neg.w   d0
  40. ?jump:
  41.     add.w   d0,d3
  42.     bsr.w   scdchk          ;
  43.     tst.w   d1
  44.     beq.b   ?end
  45.     bpl.b   ?down
  46. ?up:
  47.     cmp.w   #updotmax,d1
  48.     blt.b   ?nomove
  49.     add.w   d1,yposi(a0)
  50. ?end:
  51.     rts
  52. ?nomove:
  53.     bsr.b   hoseihsub
  54.     bra.b   ?loop
  55.     move.w  #0,xspeed(a0)
  56.     rts
  57. ?down:
  58.     move.w  d1,d6
  59.     swap    d6
  60. ?down2:
  61.     move.w  d4,d2
  62.     move.w  d6,d3
  63.     moveq   #0,d0
  64.     move.b  sprhs(a0),d0
  65.     tst.w   xspeed(a0)
  66.     bpl.b   ?jump3
  67. *   btst    #cd_left,cddot(a0)
  68. *   bne.s   ?jump3
  69.     neg.w   d0
  70. ?jump3:
  71.     add.w   d0,d3
  72.     bsr.w   scdchk
  73.     tst.w   d1
  74.     beq.b   ?end2
  75.     bpl.b   ?down1
  76. ?up2:
  77.     cmp.w   #updotmax,d1
  78.     blt.b   ?nomove2
  79.     add.w   d1,yposi(a0)
  80. ?end2:
  81.     rts
Add Comment
Please, Sign In to add comment