wallaby Posted October 23, 2016 Share Posted October 23, 2016 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? Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted October 23, 2016 Share Posted October 23, 2016 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. Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted October 23, 2016 Share Posted October 23, 2016 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. Quote Link to comment Share on other sites More sharing options...
wallaby Posted October 23, 2016 Author Share Posted October 23, 2016 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. Quote Link to comment Share on other sites More sharing options...
wallaby Posted October 23, 2016 Author Share Posted October 23, 2016 (edited) 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 October 23, 2016 by wallaby Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.