Christopher Tumber Posted January 17, 2013 Share Posted January 17, 2013 (edited) And just realized that because the hard scroll is 3 pixels with a 4 pixel gap between sprites, the widest object that can be scrolled smoothly is 5 pixels. So somewhat limited in usefulness. Edited January 17, 2013 by Christopher Tumber Quote Link to comment Share on other sites More sharing options...
Christopher Tumber Posted January 17, 2013 Share Posted January 17, 2013 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... Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted January 17, 2013 Author Share Posted January 17, 2013 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. Quote Link to comment Share on other sites More sharing options...
Christopher Tumber Posted January 17, 2013 Share Posted January 17, 2013 Sorry, I mistyped, Instigators masks by skipping a strobe to RESPn. Not sure it makes a difference in the end but NUSIZn never changes. (we'll, may be a little simpler than changing NUSIZn). Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted March 20, 2013 Author Share Posted March 20, 2013 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. 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. 1 Quote Link to comment Share on other sites More sharing options...
AtariBrian Posted March 20, 2013 Share Posted March 20, 2013 Wish my harmony cart didnt just quit working on me the other night ! :mad: Quote Link to comment Share on other sites More sharing options...
iesposta Posted March 21, 2013 Share Posted March 21, 2013 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. Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted March 21, 2013 Author Share Posted March 21, 2013 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! 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. Quote Link to comment Share on other sites More sharing options...
Joe Musashi Posted March 21, 2013 Share Posted March 21, 2013 I could test on a PAL 4-switch woody over the weekend. This kernel should also make a nice test for the TIA simulator (if I find the time to implement the RES circuit, that is). Quote Link to comment Share on other sites More sharing options...
+stephena Posted March 21, 2013 Share Posted March 21, 2013 This kernel should also make a nice test for the TIA simulator (if I find the time to implement the RES circuit, that is). Please do. Quote Link to comment Share on other sites More sharing options...
accousticguitar Posted March 21, 2013 Share Posted March 21, 2013 I have a Jr. and a vader to complete the list of Atari models. Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted March 22, 2013 Author Share Posted March 22, 2013 Thank you Joe and Accousticguitar for offering to help! The more consoles that get tested the better this will be! If anyone else can do tests, then by all means do as well. Quote Link to comment Share on other sites More sharing options...
cd-w Posted March 22, 2013 Share Posted March 22, 2013 Wish my harmony cart didnt just quit working on me the other night ! :mad: Have you tried cleaning the contacts and re-flashing the bios? Chris Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted March 22, 2013 Author Share Posted March 22, 2013 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 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 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! Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted March 22, 2013 Author Share Posted March 22, 2013 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. Quote Link to comment Share on other sites More sharing options...
+stephena Posted March 22, 2013 Share Posted March 22, 2013 On my system (I think it's a light 6'er), the 2or3 ROM shows 3 columns, and the balloons/man are the same as Stella, and your snapshots. 1 Quote Link to comment Share on other sites More sharing options...
accousticguitar Posted March 23, 2013 Share Posted March 23, 2013 My vader shows three columns of text and everything seems to work fine with the balloon test rom. 1 Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted March 23, 2013 Author Share Posted March 23, 2013 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. Quote Link to comment Share on other sites More sharing options...
accousticguitar Posted March 23, 2013 Share Posted March 23, 2013 I have several other consoles I can test on. I will plan on doing some more testing soon. Quote Link to comment Share on other sites More sharing options...
accousticguitar Posted March 23, 2013 Share Posted March 23, 2013 That's weird, I just tried it on my 7800 and sometimes the first rom will show two columns of text and other times it will show three columns of text. Otherwise it seems to display just fine. 1 Quote Link to comment Share on other sites More sharing options...
iesposta Posted March 23, 2013 Share Posted March 23, 2013 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: I still have another Sunnyvale H6er, 4 switch, and a Coleco Gemini. 1 Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted March 23, 2013 Author Share Posted March 23, 2013 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. Quote Link to comment Share on other sites More sharing options...
Joe Musashi Posted March 23, 2013 Share Posted March 23, 2013 (edited) On my 4sw woody all the balloons look OK. I'm surprised to see 3 columns for the 2or3 test. When it comes to RESP tricks it usually displays the same as Stella. 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 March 23, 2013 by Joe Musashi 1 Quote Link to comment Share on other sites More sharing options...
+stephena Posted March 23, 2013 Share Posted March 23, 2013 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. Quote Link to comment Share on other sites More sharing options...
BigO Posted March 23, 2013 Share Posted March 23, 2013 (edited) 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 March 23, 2013 by BigO 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.