Advertisement
VladislavSavvateev

Bubble Object

Aug 22nd, 2015
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; ---------------------------------------------------------------------------
  2. ; Object 19 - bubble from Sega Screen
  3. ; ---------------------------------------------------------------------------
  4.  
  5. Obj19:                  ; XREF: Obj_Index
  6.         moveq   #0,d0
  7.         move.b  $24(a0),d0
  8.         move.w  Obj19_Index(pc,d0.w),d0
  9.         jsr     Obj19_Index(pc,d0.w)
  10.         jmp     DisplaySprite
  11. ; ===========================================================================
  12. Obj19_Index:
  13.         dc.w    Obj19_Main-Obj19_Index
  14.         dc.w    Obj19_ToUp-Obj19_Index
  15. ; ===========================================================================
  16. Obj19_Main:
  17.         addi.b  #2,$24(a0)                  ; add 2 to routine number
  18.         move.l  #Map_obj19,4(a0)            ; set mappings
  19.         move.w  #$2AB,2(a0)                 ; set VRAM pointer
  20.         move.b  #0,1(a0)                    ; set render parametrs
  21.         move.b  #$13,$19(a0)                ; set "on object"
  22.         move.b  #0,$18(a0)                  ; set priority back
  23.         addq.l  #2,$FFFFF636                ; add 2 to frame counter
  24.         jsr     RandomNumber                ; get pseudo-random number
  25.         and.b   #%11111111,d0               ; get only 7 bits from number
  26.         move.w  d0,8(a0)                    ; set X-position of bubble
  27.         move.w  #400,$A(a0)                 ; set Y-position of bubble
  28.         addq.l  #2,$FFFFF636                ; add 2 to frame counter
  29.         jsr     RandomNumber                ; get pseudo-random number
  30.         and.b   #3,d0                       ; get only 2 bits from number
  31.         move.b  d0,$1A(a0)                  ; set size (or frame)
  32.         move.w  8(a0),$30(a0)               ; copy X-position (need for waving)
  33.         rts                                 ; return to subroutine
  34.        
  35. Obj19_ToUp:
  36.         moveq   #0,d0                       ; clear d0
  37.         move.w  $FFFFCC02,d0                ; move shift of first row of background
  38.         add.w   #8,d0                       ; add 8 (need for center)
  39.         bpl.s   @cont                       ; if plus, branch
  40.         neg.w   d0                          ; negative number
  41. @cont   add.w   $30(a0),d0                  ; add static copied X-position
  42.         move.w  d0,8(a0)                    ; refresh X-position (waving)
  43.         moveq   #0,d0                       ; clear d0
  44.         move.b  $1A(a0),d0                  ; move size (or frame)
  45.         addq.b  #1,d0                       ; add 1 to size
  46.         sub.w   d0,$A(a0)                   ; subtract from Y-position
  47.         bpl.s   @rts                        ; if bubble is on screen, branch
  48.         addq.l  #2,$FFFFF636                ; add 2 to frame counter
  49.         jsr     RandomNumber                ; get pseudo-random number
  50.         and.b   #%11111111,d0               ; get only 7 bits from number
  51.         move.w  d0,8(a0)                    ; set X-position of bubble
  52.         move.w  #400,$A(a0)                 ; set Y-position of bubble
  53.         addq.l  #2,$FFFFF636                ; add 2 to frame counter
  54.         jsr     RandomNumber                ; get pseudo-random number
  55.         and.b   #3,d0                       ; get only 2 bits from number
  56.         move.b  d0,$1A(a0)                  ; set size (or frame)
  57. @rts    rts
  58. ; ===========================================================================
  59. ; ---------------------------------------------------------------------------
  60. ; Sprite mappings - swinging ball on a chain from GHZ boss
  61. ; ---------------------------------------------------------------------------
  62. Map_obj48:
  63.     include "_maps\obj48.asm"
  64.  
  65. ; ---------------------------------------------------------------------------
  66. ; Sprite mappings - bubbles from Sega Screen
  67. ; ---------------------------------------------------------------------------
  68. Map_obj19:
  69.     include "#SegaScreen\Bubbles_Map.asm"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement