Jump to content
IGNORED

First person shooter on the TI? :)


Bones-69

Recommended Posts

Found this looking for spinning cubes for the other thread - Atari VCS:

 

 

Mole, I think your 8x2 version looks pretty damn good all considering. I definitely think the fluidity wins over the higher resolution version. Not so sure about the colour choice but nice job making something that seems very playable.

Link to comment
Share on other sites

Mole, I think your 8x2 version looks pretty damn good all considering. I definitely think the fluidity wins over the higher resolution version. Not so sure about the colour choice but nice job making something that seems very playable.

 

Thanks, although it's actually 4x2 :). I agree on the color choice, it doesn't really look all that perty but I just wanted to test two different colored walls with two shades each and a different colored floor/ceiling. In a game I would probably try to emulate a sort of green-screen scanline sort of look to hide the low fidelity nature of the graphics in the artistic choice (we have three shades of green + black and perhaps white, should give plenty of room for neat looking 3D).

 

I haven't looked at this in ages though, and doubt if I can make it fast enough for my tastes and needs...

Link to comment
Share on other sites

 

Did you consider doing a multicolor mode version? Multicolor mode is pretty efficient for drawing vertical bars if you choose the right memory layout for the name table.

Yeah, that was the original plan. But then sometimes99er came up with the idea of using bitmap mode via the color table for improved vertical resolution. Although much prettier, I never found a way of making that fast enough for real world use (given the need to push 4k to the VDP every frame). In the end I ended up doing the nametable version with the idea of supporting 4x2 via pattern definitions, but apparently never got to it.

Link to comment
Share on other sites

Yeah, that was the original plan. But then sometimes99er came up with the idea of using bitmap mode via the color table for improved vertical resolution. Although much prettier, I never found a way of making that fast enough for real world use (given the need to push 4k to the VDP every frame). In the end I ended up doing the nametable version with the idea of supporting 4x2 via pattern definitions, but apparently never got to it.

 

I have pursued my idea for a raycaster engine in multicolor mode. I haven't programmed a raycaster, I have only programmed the routine to display the results on screen, but it turns out that it's possible to display a full multicolor screen in slightly more than 30 FPS.

 

 

The good thing about multicolor mode is that you can display a whole screen of the vertical bars you need for a raycaster without changing the VDP write address more than once. The drawing in multicolor mode is a bit complicated because there are two horizontal pixels per byte, so the are five regions for each vertical strip:

  • Sky
  • Sky and 1 pixel wall
  • 2 pixels wall
  • Floor and 1 pixel wall
  • Floor

Still the inner loops to copy the bytes to the VDP can be unrolled nicely. So my drawing routine would fit straight into a raycaster routine where you have to draw 64 columns of 48 pixels each.

 

To run the demo, run EA#3:DSK1.MS from the disk. Use joystick 1 to pan/zoom. The 3D is all bogus, but the drawing engine is real.

 

The is also a spinning multicolor cube demo on the disk (EA#3: P3D3) if you have difficulties falling asleep :-). Use joystick 1 to rotate in different directions,

Multicolor.zip

  • Like 6
Link to comment
Share on other sites

Still the inner loops to copy the bytes to the VDP can be unrolled nicely. So my drawing routine would fit straight into a raycaster routine where you have to draw 64 columns of 48 pixels each.

 

So I've been looking at how I can plug this into my raycaster. If I see it correctly, you would expect the engine to call DSPSCR after 64 columns have been cast into a structure somewhere in memory pointed at by r0? Can you tell me how this structure must be defined?

 

I think it might be something like this:

typedef struct
{
	unsigned char	top, height, color;
} coldef;

unsigned coldef* slices[64];

And then when calling DSPSCR, I'd need to make sure r0 contains the address of slices.

Or am I completely off base?

Edited by TheMole
Link to comment
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...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...