Jump to content
IGNORED

Circus AtariAge (2600)


Omegamatrix

Recommended Posts

Oh, btw, Instigators does masking by substituting RESPn with a dummy register, like:

 

sta RESP1,x ;4

sta RESP0,x ;4

sta RESP1,x ;4

sta $80,x ;4 (skip this one)

sta RESP1,x ;4

sta RESP0,x ;4

sta RESP1,x ;4

sta RESP0,x ;4

 

Problems do arise and exceptions need to be handled when gaps are too wide for NUSIZn copying. However, this gives you another option for masking that might be useful when you run into the display priority problem. ie; when the stickman is over a baloon, mask it by skipping the NUSIZn strobe instead of using the playfield. You'll only ever have a gap one sprite wide so no exception handling...

Link to comment
Share on other sites

when the stickman is over a baloon, mask it by skipping the NUSIZn strobe instead of using the playfield.

 

Yes, this is how I'm going about it. In the balloon kernel the playfield will always have priority in an asynchronous mode, and the masking will be done by setting up the playfield bits and ball before the balloons are drawn. If the stickman occupies the space a balloon needs to be masked then updating NUSIZ1 to 2 copies or 3 copies medium is done so that the balloon is not drawn. Then NUSIZ1 is immediately set back to 3 copies medium.

 

 

Because the player graphics don't get updated you can use the full 8 bits of GRP1. More time is available in the balloon loop, but limited to 3 cycle intervals between bashing RESP1.

Link to comment
Share on other sites

  • 2 months later...

Just a small update. I have written out all the individual balloon kernels, and I am preparing for a compatibility test. The goal is to see if the balloons will appear the same on different types of consoles, Light and Heavy sixers, 4 switch, Jr's, 7800's, etc...

 

Is anyone willing to conduct a test? :) I'll be posting the rom in a day or so. This is not the game, just a balloon kernel test.

 

 

post-7074-0-06266700-1363818078_thumb.png

 

 

I also uncovered a few different ways to skip the balloon, but It'll have to wait as I'm running out the door right now.

  • Like 1
Link to comment
Share on other sites

 

Is anyone willing to conduct a test? :) I'll be posting the rom in a day or so. This is not the game, just a balloon kernel test.

 

I also uncovered a few different ways to skip the balloon, but It'll have to wait as I'm running out the door right now.

I have about 9 ways to play Atari carts.

Hvy 6ers, Lgt 6, 4 sw, old 7800, new 7800 (doesn't play some homebrews), Coleco Gemini, ColecoVision Exp Module, Flashback 2+ w/cart connector.

Link to comment
Share on other sites

I have about 9 ways to play Atari carts.

Hvy 6ers, Lgt 6, 4 sw, old 7800, new 7800 (doesn't play some homebrews), Coleco Gemini, ColecoVision Exp Module, Flashback 2+ w/cart connector.

 

Awesome! :D

 

I'm really happy about this. :) I'm just changing the test around a little bit more, so hopefully by tomorrow it will be ready. Anyone else willing to help test? The more variety of units the better! These tests are very important to the development (actually mission critical), because the nature of the tricks used might work on some consoles, but not others. Even among consoles of the same type, there could be differences due to revisions of the TIA chip, and different manufactures.

 

 

@AtariBrian I am very sorry for the loss of your Harmony. :( Hopefully it is just the SD card that died, or maybe a BIOS flash will bring it back to life.

Link to comment
Share on other sites

Inside of the Atari 2600 is a chip that is called the TIA, which stands for Television Interface Adaptor. This chip essentially creates the output image from the Atari to the TV. There were many revisions of this chip as can be seen here.

 

The nature of how the balloons will be drawn in Circus AtariAge require extensive testing to see if it is compatible with these different TIA revisions. If you can help, then please do. :)

 

 

First, here is a rom that Eckhard Stolberg made a long time ago. For some consoles you will see two columns of text, and on others you will see three columns of text. I'm wondering which you see (2 or 3) on your consoles.

 

2or3.bin

 

post-7074-0-91926800-1363960200_thumb.png

 

 

Next, here is the balloon test rom. It works quite simply. You press the firebutton and it scrolls along with the frame number at the bottom.

 

I will also add here that I made these balloons a little bit wider in the last minute. This is because I wanted to test 6 bits instead of 5 for extending the string later on in the balloon animations. So in this demo they were made 6 bits wide on purpose, but in the game they will be drawn as 5 bits, and more roundish. Please let me know how the 2or3 and this balloon trial rom performs. Something like this is good:

 

light sixer #1

2or3 - saw 2 columns

balloonTrial - works 100%

 

light sixer #2

2or3 - saw 3 columns

balloonTrial - 2nd row from the top shows the balloon, when it shouldn't.

 

 

BalloonTrial.zip

 

post-7074-0-97870100-1363961210_thumb.png

 

Instructions:

1) Press firebutton to move frame by frame. There are 18 frames total.

2) Look for balloons appearing where they shouldn't, or are missing when they shoudn't.

3) Report any anomaly in the Circus AtariAge thread.

 

Note:

- It's not necessary to test all three versions of the rom (NTSC, PAL50, PAL60),

because the testable part of the code is different from the TV format. Simply

choose whichever rom is best for you, and the test code will run just fine.

- The very bottom row will never have a balloon missing. It shows all

the balloons for a sanity check.

- The very top row starts will 9 balloons being shown. As the balloons move

to the right, then the new balloon moving in from the left side should be

be missing for the top row. The diagonal missing balloons should all line up.

- The players can be seen by using the select switch. The checking of the

balloons should be done first without the players showing, so that no balloon

bits can be covered up by them. After the balloons are confirmed as being where

they should be then the "with players" test can be run.

- Pictures of expected outcomes have been included with this rom from screenshots

made with stella.

 

And we can take it from there! :D

Link to comment
Share on other sites

Just one more note, this is really a hardware only test. It works in Stella as is (at least it matches what I see on my Jr).

 

@Stephena and Joe

Please read the assembly file. I did find one case that didn't work. I have included a switch to build this test case in the assembly file, and a description of it as well.

Link to comment
Share on other sites

Thank you very much for the tests, Stephena and Accousticguitar! If anyone else is willing to help with tests, please do. :) I should also say it really helps to get a distribution of tests from similar types of consoles too, since they may contain different TIA chips inside them. For example, I'd much rather have tests with a eight different light sixer units than just one, but thanks to Stephena I now have at least one!

 

The 7800's and the Coleco adaptor should be some interesting tests, so we'll see what happens. ;)

Link to comment
Share on other sites

Sunnyvale Heavy 6er: 2 columns. Game test no problems.

Sunnyvale light 6 switch: 2 columns. Game test no problems.

Older 7800 (good): 2 columns. Game test no problems.

Last run 7800 (crap): 2 columns & sometimes 3 columns. Game test no problems.

Coleco Exp Module: 3 columns. Game test no problems.

2010 Flashback 2+: 4 columns. Game test failed.

2010 Flashback 2+ pictures to show what fail looks like:

post-29575-0-92548300-1364042675_thumb.jpgpost-29575-0-35434400-1364042696_thumb.jpgpost-29575-0-34959800-1364042709_thumb.jpgpost-29575-0-35716300-1364042764_thumb.jpgpost-29575-0-46989800-1364042777_thumb.jpg

I still have another Sunnyvale H6er, 4 switch, and a Coleco Gemini.

  • Like 1
Link to comment
Share on other sites

Thanks for the continued testing guys! The 2or3 result is interesting. I didn't know it would sometimes behave differently for the same 7800 unit.

 

With the Flashback 2+, I can tell by looking at the photos that there is nothing I can do to make Circus AtariAge run on it. Since the "balloon 2" and "show all balloons" kernels in the assembly file are the same, there are a total of 11 different kernels used to draw the balloons. All of the 11 kernels failed. While I didn't really expect the Flashback 2 to be 100% compatible, I'm honestly surprised that nothing worked at all on it. Thank you Iesposta for the photos too! It makes it clear right away what is going on with it. :)

Link to comment
Share on other sites

On my 4sw woody all the balloons look OK.

 

post-27536-0-33694400-1364059414_thumb.jpgpost-27536-0-07183400-1364059501_thumb.jpg

 

I'm surprised to see 3 columns for the 2or3 test. When it comes to RESP tricks it usually displays the same as Stella.

 

post-27536-0-56728300-1364059585_thumb.jpg

 

Actually it's kind of interesting that some systems display 3 columns. Looking at the kernel then we can see that it does:

 

sta RESP0
nop
sta RESP0

 

When writing to RESP0 (and resetting the counter), the player output of the first copy should start on the next line, however when NUSIZ is set for 3 copies, the counter will trigger output of the second and third copy on the current line. That's why you typically see only two copies when hitting RESP0 only once per line.

 

Now, the code above means that a second write happens 5 cycles or 15 pixels after the first one. Because the second player copy starts 16 pixels after the start of the first copy, the player counter should be reset a second time before scan out starts. So it should behave like RESP was only hit once.

 

This looks to me like on some machines there is a bigger delay for RESP than on others, so probably the scan out has already started before the second RESP hits, and that's why you see three copies. I would guess the delay happens because some of the clock lines are slightly out of phase. It may be possible that it is even a thermal effect.

 

In general, the advice for programmers would be to always make sure that the second RESP for a certain player is at least 16 pixels after the first to guarantee that that scan counter has been started.

 

The pictures of the Flashback seem to indicate that it triggers scan out directly when RESP is hit. That's definitely not what the original hardware does.

Edited by Joe Musashi
  • Like 1
Link to comment
Share on other sites

I'm actually not sure if I have a light or heavy 6'er. I'm sure it's a 6-switch, of course. Is there a way of differentiating? I do know that the starfield effect in Cosmic Ark is different on my console than in Stella. In fact, I released a version of Stella that duplicated what's on my system some years back, but reverted it because it wasn't what most other people were seeing.

Link to comment
Share on other sites

I'm actually not sure if I have a light or heavy 6'er. I'm sure it's a 6-switch, of course. Is there a way of differentiating? I do know that the starfield effect in Cosmic Ark is different on my console than in Stella. In fact, I released a version of Stella that duplicated what's on my system some years back, but reverted it because it wasn't what most other people were seeing.

One quick way to tell (and it's really, really obvious once you've seen the difference) is the width of some of the plastic parts. Looking directly down on the console from the top, there are strips that run front to back forming the left and right edges of the console. If those pieces are in the neighborhood of 1/2" or 1cm wide then it's a heavy sixer. On the "light" version these pieces are closer to 1/8" wide.

 

There are several postings on this topic around here somewhere if my explanation doesn't make sense. There are other details that can be used to make this determination at a glance.

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