Jump to content
IGNORED

Game test on Harmony Cart.


winkdot

Recommended Posts

Yes, there is definitely a lot of vertical jitter when playing this game on real hardware. The jitter appears to be confined to the playfield area because the lines used to display the score at the bottom of the screen are stable. The black lines above and below the green area where the "Doom Patrol" logo is drawn jitter slowly, with the bottom line faster and more frequent than the top. The gradient near the bottom of the playfield has the most jitter. It bounces up and down very quickly and frequently. It appears the the jitter accumulates from top to bottom. I looked at the syncs on a scope, and your vertical timing is stable, so your cycle count from frame to frame must be constant.

 

I just tried the game on Stella, and it's perfectly stable, which kind of surprises me. I don't recall ever having seen any differences between Stella and real hardware in the past.

Edited by Crispy
Link to comment
Share on other sites

One of the players using this game is having problems with odd screen jitters during the entire game.

 

Can someone else with a Harmony please test this and reply?

 

Game is at:

http://atariage.com/forums/topic/240179-doom-patrol/

 

Thanks much!

 

You can test this out in Stella and see that yes, there is a problem. Turn on the Frame Stats by hitting either Command-L (Mac) or ALT-L(Windows, Linux), they'll appear in the top-left corner:

post-3056-0-76338900-1438125144_thumb.png

 

As you play the game, the 262 should never change, but it does. When that happens the screen will jitter up and down.

 

The other thing you can do is use the integrated debugger. Hit the ` key (above TAB, below ESC) then enter the following in the Prompt:

breakif { _scan > #262 }

If you did that correctly, Stella will respond with:

Added breakif 00
post-3056-0-89929700-1438125392_thumb.png


Hit the ` key again to return to the emulation. If the scanline count ever exceeds 262 the debugger will automatically reopen and you'll see the scanline count shows 263:

post-3056-0-32606000-1438125455_thumb.png

 

The problem is your code is taking too long to run, you need to optimize it.

Link to comment
Share on other sites

I just tried the game on Stella, and it's perfectly stable, which kind of surprises me. I don't recall ever having seen any differences between Stella and real hardware in the past.

If the code running during OverScan takes too long to execute, real hardware will jitter but Stella won't.

Link to comment
Share on other sites

Thanks for all the info Crispy, Spiceware and RevEng. I plan on pulling up the game code again and taking a look to see if I can either rip something out or improve the code. I've been working on a new game which seems to be a problem with me. Pop one out, then move on to the next one.
Before I even look I know I do not execute the DFxFRACINC before a drawscreen in main. Somehow I had missed that big note on the batari commands page (Doh!).

Spice I would try your Stella build but no OS X in the house :) It is a good idea to make Stella much more like a real 2600 though. I toyed with the idea of releasing a Stella and a 2600 hardware based version of the same game.

Link to comment
Share on other sites

I plan on pulling up the game code again and taking a look to see if I can either rip something out or improve the code.

If you post your source code to your topic, I'm sure that quite a few of the others who are proficient with bB will be more than willing to take a look at your code and show you ways to improve its performance.

 

Spice I would try your Stella build but no OS X in the house :)

Once I'm done with the changes I'll submit them to stephena, just like I did when I added the Cartridge RAM Tab to the debugger, so you'll be able to see it then. If you look at my other Stella blog entries you'll see the RAM Tab took 6 weeks to implement - I don't expect this change to take that long.

Link to comment
Share on other sites

If you post your source code to your topic, I'm sure that quite a few of the others who are proficient with bB will be more than willing to take a look at your code and show you ways to improve its performance.

 

Once I'm done with the changes I'll submit them to stephena, just like I did when I added the Cartridge RAM Tab to the debugger, so you'll be able to see it then. If you look at my other Stella blog entries you'll see the RAM Tab took 6 weeks to implement - I don't expect this change to take that long.

So will this change be an option in Stella or on by default? I can imagine lots of homebrews suddenly becoming jittery if it's the default (well at least some of mine anyway).

 

I would post the source but it's pretty ugly :)

 

Link to comment
Share on other sites

So will this change be an option in Stella or on by default? I can imagine lots of homebrews suddenly becoming jittery if it's the default (well at least some of mine anyway).

I didn't set it up as an option - if a real Atari shows jitter then so should Stella.

 

I would post the source but it's pretty ugly :)

Post it anyway - besides figuring out the source of jitter, others may opt to show you ways to "pretty up" your code.

  • Like 1
Link to comment
Share on other sites

The code for my DK Arcade 2600 on the first level is at or over the maximum allowed cycles.

We had to cheat by hacking bB to add overscan time.

So there are ways of making it work.

 

>>Athough it sounds like adding the DFxFRACINC setting before the drawscreen is your problem. <<

 

Note: Don't forget to put ALL 'same values' on ONE LINE. Speeds things up and gives back ROM space.

 

Psuedo code:

  DF0FRACINC=255: DF1FRACINC=255: DF2FRACINC=255: DF3FRACINC=255
  DF6FRACINC=128
Edited by iesposta
  • Like 1
Link to comment
Share on other sites

I believe the Overscan Jitter routines are finished; however, after running the ROM on my Harmony I saw that this was another jitter issue that needed to be emulated in Stella:

 

Are you setting the DFxFRACINC registers in the main loop, right before the drawscreen command? Drawscreen messes up the values, so you need to set them each frame. Otherwise the game can jitter with certain values, IIRC.

For this the screen itself doesn't jitter, as can be seen by looking at the score and other elements, just the playfield. I took a look and think I've fixed it so Stella emulates this jitter correctly as well. OS X test build of Stella in my latest blog entry.

  • Like 1
Link to comment
Share on other sites

For those with a Mac, I need some more testing of these changes to make sure they're correct - especially for the DFxFRACINC issue as I'm unfamiliar with other ROMs that should exhibit the problem. What needs to be tested is that DPC+ games jitter or don't jitter in Stella like they do on a real Atari.

 

If you're on Linux or Windows and can build a release of Stella, I've added the three changed source files to the blog entry. It'd be great if somebody could build and post test versions for those platforms.

Link to comment
Share on other sites

I didn't set it up as an option - if a real Atari shows jitter then so should Stella.

 

 

Post it anyway - besides figuring out the source of jitter, others may opt to show you ways to "pretty up" your code.

 

Agree. It would also make testing more accurate for all involved.

Link to comment
Share on other sites

I have make some changes to make the code faster. It still needs some work to stay at 262. I have also added DFxFRACINC code before the drawscreen command.

 

The DPC+ jitter is gone on, the variable scanline count jitter remains. This is true for both the real Atari and my test build of Stella.

  • Like 1
Link to comment
Share on other sites

 

The DPC+ jitter is gone on, the variable scanline count jitter remains. This is true for both the real Atari and my test build of Stella.

So to verify, the DPC+ jitter is now gone, correct?

The scanline jitter still remains? I'm pretty sure it would as my counts exceed 262 in some cases, but not by much. How bad is the remaining jitter? rolling screen stuff?

 

Thanks for looking at this.

Link to comment
Share on other sites

So to verify, the DPC+ jitter is now gone, correct?

Correct.

 

The scanline jitter still remains? I'm pretty sure it would as my counts exceed 262 in some cases, but not by much. How bad is the remaining jitter? rolling screen stuff?

Yep. I only did a quick test before work, but if I recall correctly there was a screen roll when the game first begins (during the transition from the title screen to the game screen).

 

Any jitter is bad, you don't know how forgiving the player's display will be.

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

Forgot to follow up on this - stephena committed the changes to the source repository on the 11th.

 

If you don't wish to wait for the next official release you can build the Development version of Stella so you can test your games for jitter. If you're not able to compile Stella yourself perhaps somebody else could do it for you.

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...