Gorf Posted April 10, 2007 Share Posted April 10, 2007 (edited) How does 2600 Galaxian.........get all those enemies on the screen at once? Are they using the playfield at a higher resolution and drawing them there? I want to attempt to redo Gorf on the 2600. But I want to figure out how it was done in Galaxian as that seems like the method I would need. Of course this will be a frebbie and called something else however, I hope I can get some of you in on it actually. it would be a new game and a chance for me to really get to know the 2600. Any takers? Im looking for two guys/gals that really know their way around bB and the 2600. Please if interested...PM me. Thanks Edited April 10, 2007 by Gorf Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted April 10, 2007 Share Posted April 10, 2007 (edited) Just-in-time sprite positioning for sprite 0 (that is, resetting the horizontal location of sprite 0 at the moment it's needed within the kernal routines). If you look at a disassembly, you'll see an initial store to GRP0 and GRP1...followed by a number of RESP0/NUSIZ0 stores. This works fine since all copies of sprite 0 look identical and have even spacing...while sprite 1 is allowed to be independant from the group. The kernal routines are really specific in this case...so it might be beyond bB's capability. Are they using the playfield at a higher resolution and drawing them there?Impossible...the 2600 only has 1 resolution for playfield GFX. Edited April 10, 2007 by Nukey Shay Quote Link to comment Share on other sites More sharing options...
SeaGtGruff Posted April 10, 2007 Share Posted April 10, 2007 Just-in-time sprite positioning for sprite 0 (that is, resetting the horizontal location of sprite 0 at the moment it's needed within the kernal routines). If you look at a disassembly, you'll see an initial store to GRP0 and GRP1...followed by a number of RESP0/NUSIZ0 stores. This works fine since all copies of sprite 0 look identical and have even spacing...while sprite 1 is allowed to be independant from the group. That was my understanding, but I wasn't sure how they got single-color-clock positioning, since the best you can do with RESPx is triple-color-clock positioning (because 1 machine cycle equals 3 color clocks). I guess the sprites use only 6 of the 8 pixels, so they can be moved a single color clock by shifting the data left or right 1 bit? That is... RESP0 ending on cycle 24 (for example), and GRP0 contains 11111100 (or some such) - then - RESP0 ending on cycle 24, and GRP0 contains 01111110 - then - RESP0 ending on cycle 24, and GRP0 contains 00111111 - then - RESP0 ending on cycle *25*, and GRP0 contains 11111100 - then - RESP0 ending on cycle 25, and GRP0 contains 01111110 - then - RESP0 ending on cycle 25, and GRP0 contains 00111111 - etc. - Hmm, I'll have to look at this more closely, and peek at a disassembly, but that's the only way I can think of. Michael Quote Link to comment Share on other sites More sharing options...
walter_J64bit Posted April 11, 2007 Share Posted April 11, 2007 Gorf your in the right place, one thing I've seen with the 2600 Development here AA you'll get what your looking plus some! I give two for the 2600 Development at AA! Quote Link to comment Share on other sites More sharing options...
Gorf Posted April 11, 2007 Author Share Posted April 11, 2007 Just-in-time sprite positioning for sprite 0 (that is, resetting the horizontal location of sprite 0 at the moment it's needed within the kernal routines). If you look at a disassembly, you'll see an initial store to GRP0 and GRP1...followed by a number of RESP0/NUSIZ0 stores. This works fine since all copies of sprite 0 look identical and have even spacing...while sprite 1 is allowed to be independant from the group. The kernal routines are really specific in this case...so it might be beyond bB's capability. Then for the moment, it is beyond my scope as well. I never wrote bit one of 2600 asm. Well, not true, I typed in the sample code that came with my Magic Card that I never used after that. Perhaps a sample of such code code be helpful. Like a row of 8 sprites? Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted April 11, 2007 Share Posted April 11, 2007 Cycle-exact timing is required to move beyond the intended hardware capabilities of the 2600, so you might want to start with something simpler A 6-sprite Space Invaders-type display that doesn't need dedicated routines is tricky enough IMO. But anyway... Christopher Tumbler posted an explaination to the Stellalist quite a while ago. Here's an archived link: http://www.biglist.com/lists/stella/archiv...9/msg00172.html Thomas Jentzsch optimized and expanded the method to display 11 sprites on a scanline in this demo: http://www.biglist.com/lists/stella/archiv...1/msg00165.html Quote Link to comment Share on other sites More sharing options...
Gorf Posted April 11, 2007 Author Share Posted April 11, 2007 Have I told you lately, you rule? Thanks Nukey! I'll take a look now! 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.