Jump to content
Sign in to follow this  
PacManPlus

Question for you guys about a game I'm working on :)

Recommended Posts

Hey!

 

Some of you may know, I am working on a port of Defender while I am working on ReZolve:

post-1787-0-41121400-1420632172_thumb.png

 

I've had some challenges already with this port, as I started with 320B resolution, and quickly realized that the terrain would not play well (I tried using 'sprites' as well as 'character mode'; niether worked out for me). So, I used 320B mode for the scanner area, 160B (12-color) mode for the sprites, and 160A mode for the bachground (terrain).

I watched a video of the later levels of Defender, and saw the sheer amount of enemy shots, mutants, and baiters and got concerned.

 

I think what I may end up doing:

- changing the sprites to 160A (3-color) mode to cut the number of bytes to read for each sprite in half (each byte read for the DL takes cycles)

- hard code 3 player shots and 10 enemy shots in the DL, and dynamically add the sprites. The reason why I want ot hard code the shots is because there are quite a few of them, and it will take too long during vblank to add all of them dynamically (along with the sprites) if they are all being used.

 

This may require more memory than is available in the stock 7800 (I have to try it and find out), but I want to keep this port as close to the arcade as I can.

 

This is an example of the DL I am talking about changing my current one to:

;  DEFAULT TEMPLATE FOR SCANNER DISPLAY LIST (320B MODE, SO WE NEED TWO CHARACTER MODES TO SPAN THE SCREEN)
SCDLIST
	.byte <(SCRZN00),$E0,>(SCRZN00),$80+$0C,#LEFTSIDE							;CHARACTER MODE, LEFT SIDE
	.byte <(SCRZN00),$E0,>(SCRZN00),$80+$0C,#LEFTSIDE + ((#LASTCOL / 2) * 4)	;CHARACTER MODE, RIGHT SIDE
	.byte $00,$00
SCDLISTEND

;	DEFAULT TEMPLATE FOR PLAYFIELD DISPLAY LIST
PFDLIST
	.byte <(SCRZN00),$60,>(SCRZN00),$A0+$0B,#LEFTSIDE	; CHARACTER MODE FOR TERRAIN + 2 COLUMNS FOR SCROLLING
	.byte <(STAMPS),$40,>(STAMPS),$00+$1F,#OFFSCRN		; STARS
	.byte <(STAMPS),$00+$1E,>(STAMPS),#OFFSCRN			; PLAYER SHOT 1
	.byte <(STAMPS),$00+$1E,>(STAMPS),#OFFSCRN			; PLAYER SHOT 2
	.byte <(STAMPS),$00+$1E,>(STAMPS),#OFFSCRN			; PLAYER SHOT 3
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 01
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 02
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 03
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 04
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 05
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 06
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 07
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 08
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 09
	.byte <(STAMPS),$20+$1F,>(STAMPS),#OFFSCRN			; ENEMY SHOT 10
	;PLAYER SPRITES START HERE...
PFDLISTEND

Does anyone have any other ideas?

 

Thanks!

Bob

Defender.A78

Edited by PacManPlus
  • Like 7

Share this post


Link to post
Share on other sites

Maybe less hardcoded sprites for shots and use flicker?

 

Understood, yes there is a lot of object processing. Even offscreen enemies go through the movement process as can be seen from the radar.

 

Also, worthwhile reading up on any reverse-engineering and playing tricks. Little stuff like the International Date Line (Baiters and I think certain enemies don't cross a certain part of the map and will chase you the long way if you cross it with them in pursuit).

Share this post


Link to post
Share on other sites

Looking good!

 

It looks like pretty much all scanner area objects can be baked into the DLs too, but I'm sure you had that planned.

 

The nice bit about the Defender layout is you can build the non-scanner DLs starting from after your last visible zone, and carrying on (past vblank) until the last scanner zone is displayed. That's a nice chunk of extra cycles for the dynamic non-scanner DL updates.

 

When you say the character mode didn't work out for the terrain, was it a cycle issue, or ? I'm thinking of a DL-baked ROM based character map, with the usual X change for fine scroll and pointer change for coarse. What am I missing? (likely something Defender specific)

 

[edit] I'm quite sure you've already considered this, but just to get it in up on the chalk board... you can spread enemy logic across multiple frames. If necessary, non-visible enemies can be spread across more frames, with correspondingly coarser position updates.

Share this post


Link to post
Share on other sites

That demo looks very nice, even with the lower res sprites. The ship looks awsome! We already have a graphically impressive port on the computers, so the key to differentiating this one will be to get the game play spot on. I'm seriously looking forward to this. :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...