Jump to content
IGNORED

3d Engine for Vanilla Cart


Gip-Gip

Recommended Posts

There haven't been many attempts at a mapped 3d engine/game for the Atari, and I wish to change that with an in-development project I call VePseu, the Very Pseudo 3d engine

 

It works by going through the map and gathering a list of walls to draw, which are then rendered onto the screen. It (should be) very predictable and fast, but also limited (the max. viewing distance is 4 walls away).

 

DASM has been marinating in my brain for about a year now, and I think I am finally prepared to take on a fully featured Atari 2600 program. It's fairly simple, and I hope it isn't absolute crap so you guys can use it.

 

The GitHub page can be accessed here. UP to go forward, DOWN do go backward, LEFT to turn left, RIGHT to turn right

 

Looking for ideas to make in the engine. I'm currently thinking of a zombie shooter and a Wolfenstein 3d "port", any other suggestions would be appreciated

 

The demo for VePseu III.I.MMXIIX Rev. 0 can be downloaded here:

vepseu.bin

post-39755-0-77186600-1491239631_thumb.gifpost-39755-0-08946700-1491239632_thumb.gifpost-39755-0-39234500-1491239632_thumb.gif

Edited by Gip-Gip
  • Like 10
Link to comment
Share on other sites

Looks cool. About what frame rate does it run at?

Approx. 60 fps at about half the screen in resolution. It doesn't take long to render, but it also takes advantage of several quirks of the reverse bits in the playfield. it's not really that impressive, but it's a start

 

I'm thinking about doing a full-screen renderer in the future, but this is more of a proof of concept

  • Like 1
Link to comment
Share on other sites

Cool idea. But how do you move?

When I add the controls (next), it will be the four directions to look around and trigger to move forward

 

With the project you see on GitHub I haven't added that yet. It won't take long, just wanted to get the render code out there

Link to comment
Share on other sites

Ah, OK.

 

BTW: You can save 4 cycles (TAY/TYA) when you call consecutive macros like e.g. Y_POS_ADV and X_POS_GAN.

It's not really worth the addition of more code. The way the code is laid out it would have no impact on the given time to other processes

Link to comment
Share on other sites

I would suggest changing the controls... Left/Right to turn left or right, and Up/Down to move forward and backward. The way the controls work now is very awkward for me at least.

 

Done

 

Also, the minimap seems to bounce around in Stella 4.6.7... which is amusing to watch. :)

 

I think I fixed it. If I didn't, can you tell me which direction it bounces in?

Link to comment
Share on other sites

I see you're making good progress!

 

The minimap and the location indicator bounce all over, the minimap breaks in two, and there's way too many scanlines (varies from 280-284 instead of a constant 262):

 

post-3056-0-00212100-1489970592_thumb.png post-3056-0-04932300-1489970596_thumb.png post-3056-0-94528700-1489970599_thumb.png post-3056-0-90123400-1489970604_thumb.png post-3056-0-90217500-1489970608_thumb.png

 

If I turn off the option to randomly drive unused TIA lines:

post-3056-0-87961200-1489970703_thumb.png

 

then all 3 problems clear up:

post-3056-0-30235500-1489970782_thumb.png

 

That's indicative of a missing # in an LDA, LDX or LDY Immediate Mode instruction - basically something like typing this:

LDA 7


 

when you wanted to put the number 7 in the Accumulator. The correct statement would be this:

LDA #7


 

LDA 7 goes to memory location 7, fetches the contents from there, and stores it into the Accumulator. On the Atari memory location 7 is the CXPPMM register, used for detecting collisions between player0 <--> player1 and missile0 <--> missile1. Only bits 6 and 7 are defined in that register, the other bits are undefined and can cause unexpected results. I go into that in detail in reply #91 of another topic.

  • Like 3
Link to comment
Share on other sites

I see you're making good progress!

 

The minimap and the location indicator bounce all over, the minimap breaks in two, and there's way too many scanlines (varies from 280-284 instead of a constant 262):

 

attachicon.gifScreen Shot 2017-03-19 at 7.39.46 PM.png attachicon.gifScreen Shot 2017-03-19 at 7.39.48 PM.png attachicon.gifScreen Shot 2017-03-19 at 7.40.13 PM.png attachicon.gifScreen Shot 2017-03-19 at 7.41.07 PM.png attachicon.gifScreen Shot 2017-03-19 at 7.41.09 PM.png

 

If I turn off the option to randomly drive used TIA lines:

attachicon.gifScreen Shot 2017-03-19 at 7.44.13 PM.png

 

then all 3 problems clear up:

attachicon.gifScreen Shot 2017-03-19 at 7.44.18 PM.png

 

That's indicative of a missing # in an LDA, LDX or LDY Immediate Mode instruction - basically something like typing this:

LDA 7


 

when you wanted to put the number 7 in the Accumulator. The correct statement would be this:

LDA #7


 

LDA 7 goes to memory location 7, fetches the contents from there, and stores it into the Accumulator. On the Atari memory location 7 is the CXPPMM register, used for detecting collisions between player0 <--> player1 and missile0 <--> missile1. Only bits 6 and 7 are defined in that register, the other bits are undefined and can cause unexpected results. I go into that in detail in reply #91 of another topic.

Missed an LDX in a loop. Should be all good now!

  • Like 1
Link to comment
Share on other sites

First version-ed update!

For VePseu I.I.MMXVII rev. 1 I have added peripheral vision, repeating controls, and a slightly cleaner source code!

 

If anyone has any objections to the source's organization, please tell within the next day before I clean it further

 

In the mean time, I'll work on an upscaler and a sprite kernel

Link to comment
Share on other sites

  • 2 weeks later...

Update:

 

Right now I'm taking the time to re-write half the program to support a full screen and higher-depth shadows. Spring break's coming up so I'm going to have an update out by the end of next week. If anyone wants any new features, now would be the best time to tell me.

Link to comment
Share on other sites

Suggestion.

Take a look at Starpath Escape From The Mindmaster in Stella's debug colors.

I love the way it uses sliding diagonal missiles and/or ball set to the background (invisible) to smooth the tops and bottoms of the walls out.

And a floating rectangle that enlarges the closer you get makes the "doors" to the "rooms".

 

Worth investigating for that less blocky polish, although I like the wide PF pixels also.

 

Gip, did you make that Raycasting demo with the multi-colored Playfield I asked about here?

 

http://atariage.com/forums/topic/229083-ray-casting-engine-demo/?p=3731023

  • Like 1
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...