Hockey anyone?

Subject: Hockey anyone?
From: "John" <jchamp@xxxxxxxxxxxxxxxx>
Date: Fri, 25 Jun 2004 16:50:49 -0400
Hello all,
 
This is my *first* post to stellalist after about 4 years of lurking.  After gauging interest for an updated hockey game for the 2600, I decided to start my first game (working title is RealSports Hockey).  This game is going to be a vertical scroller, with 32 lines for the status area (clock, period, score), 160 lines for the rink (the total rink length is 400 lines) and 8 on the bottom for the my logo (CHAMPGAMES). 
 
Anyway, I've managed to get a few things working, most notably the clock, period display, score, and the vertical scrolling for the screen.  For the rink, I've decided to make the width such that PF0 is not used (it starts 16 pixels in) and only PF1 and PF2 need to be updated every 4 scanlines.   (Incidentally, Activision's hockey trims 32 pixels off the left and right).  I'm also updating COLUBK every 4 scanlines to simulate the end, blue and center lines, but I'm not sure if I'll have time to do this once everything else is implemented.
 
After some conversations with TJ, I altered my kernel to loop through generating 4 scanlines at a time, with playfield/colubk updated at the end of the 4th line for the start of the first line.  I've started messing around with having the puckl displayed (using the BALL) by doing a simple compare on the 1st and 3rd scanline (which makes the puck 2 scanlines high). 
 
I also want to display players (of course) and multiplex them with vertical seperation so that they never cross.  P0 would display team 1 and P1 team 2.  I think that they're using the missiles to render the hockey sticks in Activision's hockey - I'll probably need those too.
 
Anyway, here's the kernel as of today.  If anybody can give me some insight as to what to do next I'd appreciate it!!  Since this is my first game I'll a little intimidated by how I should proceed.  For example, I'm not even sure how I would display one player (never mind 2).  Is the structure of my kernel half decent?  Any ideas are welcomed!
 
Thanks for letting me present my idea and hopefully I made some sense.
 
- John W. Champeau
aka JohnnyWC
 
Here's the kernel:
 
 LDA  PFData2,X      ; [55] + 4
 STA  PF2                ; [59] + 3 all set for next section
 LDA  PFData1,X      ; [62] + 4
 STA  PF1  ; [66] + 3
ScanLoop
 LDA  IceColor,X  ; [69] + 4 
 STA  COLUBK  ; [73] + 3 end of line 4
 ; -----------------------------------------------------------------------------------
 ;   START OF LINE 1
 CPY  BallY  ; [0] + 3
 BEQ  EnableBall  ; [3] + 2/3
 LDA  #00  ; [5] + 2
 JMP  DrawBall  ; [7] + 3
EnableBall
 LDA  #02  ; [6] + 2
 NOP   ; [8] + 2
DrawBall
 STA  ENABL  ; [10] + 3
 
 
 DEY   ; 2
 STA  WSYNC  ; [13] + 3 end of line 1
 ; -----------------------------------------------------------------------------------
 ;   START OF LINE 2
 
 DEY   ; 2
 STA  WSYNC  ;   end of line 2
 ; -----------------------------------------------------------------------------------
 ;   START OF LINE 3
 CPY  BallY  ; [0] + 3
 BEQ  EnableBall2 ; [3] + 2/3
 LDA  #00  ; [5] + 2
 JMP  DrawBall2  ; [7] + 3
EnableBall2
 LDA  #02  ; [6] + 2
 NOP   ; [8] + 2
DrawBall2
 STA  ENABL  ; [10] + 3
 

 DEY   ; 2 
 STA  WSYNC  ;   end of line 3
 ; -----------------------------------------------------------------------------------
 ;   START OF LINE 4
 
 SLEEP 46  ; [0] + 46
 INX     ; [46] + 2
 DEY   ; [48] + 2 decrement the scanline we're on
 BEQ  DoneLoop  ; [50] + 2
 LDA  PFData2,X  ; [52] + 4
 STA  PF2  ; [56] + 3 all set for next section
 LDA  PFData1,X  ; [59] + 4
 STA  PF1  ; [63] + 3
 JMP  ScanLoop  ; [66] + 3
 
 ; NOTE: Y will be 0 on exit
DoneLoop
        STA  WSYNC    ; [53] + 3 Finish this scanline.
 
 
 
Current Thread