Jump to content
IGNORED

Ghosting at 30 fps and frames below 262


wallaby

Recommended Posts

So I've finally hit a point where the poor Atari 2600 can't handle any more processing in a single frame. I've optimized it, but it still bounces a few frames over. Since I still have things like sound to add, I think this will only get worse.

 

I disabled the score "noscore = 1" and that gives me a lot more processing - BUT, for some reason, the frames aren't set at 262 anymore. They change to 251. And still bounce around (but still below 262). I know it didn't do that before, but I'm so far along, I have absolutely no idea why it isn't syncing at 262 after disabling the score.

 

At any rate, I decided to add another drawscreen in the mix and now the game runs at 30fps. This of course fixes the processing problem completely. But now, when I move my character, it leaves an after image. Only a few milliseconds, but its very irritating. Especially compared to how well it ran at 60fps. I wonder if this is because of the timing of the drawscreen? Actually, maybe the character is updating on the new drawscreen because I've changed the location in the preceding frame but it hadn't updated the drawn position. Hmm. Maybe I'll mess around with where I place this drawscreen.

 

Anything I'm missing?

 

 

 

 

Link to comment
Share on other sites

If you went through and optimized your code, aren't using a bunch of gosubs, and stuff like that, and you're still having problems, you can see if any code can be run every other frame instead of every frame. As you noticed, adding another drawscreen will just slow everything down.

Link to comment
Share on other sites

So I've finally hit a point where the poor Atari 2600 can't handle any more processing in a single frame. I've optimized it, but it still bounces a few frames over. Since I still have things like sound to add, I think this will only get worse.

 

I disabled the score "noscore = 1" and that gives me a lot more processing - BUT, for some reason, the frames aren't set at 262 anymore. They change to 251. And still bounce around (but still below 262). I know it didn't do that before, but I'm so far along, I have absolutely no idea why it isn't syncing at 262 after disabling the score.

 

At any rate, I decided to add another drawscreen in the mix and now the game runs at 30fps. This of course fixes the processing problem completely. But now, when I move my character, it leaves an after image. Only a few milliseconds, but its very irritating. Especially compared to how well it ran at 60fps. I wonder if this is because of the timing of the drawscreen? Actually, maybe the character is updating on the new drawscreen because I've changed the location in the preceding frame but it hadn't updated the drawn position. Hmm. Maybe I'll mess around with where I place this drawscreen.

 

Anything I'm missing?

 

 

 

 

 

The VCS video signal is nonstandard and throws 60 full frame images instead of 60 fields/half frames per second.

 

Because of this, 30fps can only be displayed without ghosting the image if you match the hz - try StarBlitz and toggle the BW switch during play to see if the difference is similar to what you're experiencing.

Link to comment
Share on other sites

 

 

you can see if any code can be run every other frame instead of every frame

 

Ah, that's a good idea. I do use a few gosubs, but they're necessary. Otherwise the game would be too big and too difficult to manage.

 

 

 

Because of this, 30fps can only be displayed without ghosting the image if you match the hz - try StarBlitz and toggle the BW switch during play to see if the difference is similar to what you're experiencing.

 

I don't think I have the ability to change anything fundamental like that with DPC+. One of the drawbacks of DPC+, I guess, but the pros outnumber the cons.

Link to comment
Share on other sites

Well, putting input on alternate frames creates the same ugly effect that running drawscreen twice.

 

Maybe if I pause input for two frames it will look better. But this seems like it's more work than just running drawscreen twice and has the same drawbacks.

 

EDIT: Okay, solved this. I left the movement code in as is, but culled the more complicated collision detection. I also alternated processor intensive code and that finally got me on top!

 

In addition to RT's code ON or OFF suggestion, I also put in a frame counter so code can once every other frame, every 3 frames, or every 4 frames. Hoping I can by with this without complicating anything further.

Edited by wallaby
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...