Jump to content

solidcorp

Members
  • Content Count

    459
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by solidcorp


  1.  

     

    Thanks a bunch. I believe that Crimefighter had the high score and it was between 33,000 and 37,000 at VGS. Next time I show the game we will need to start over though because several bugs have been fixed including collision and scoring issues that make playing the different versions of the game an unfair comparison. (Crimefighter, it looks like your VGS 2010 record will stand for eternity :))

     

    D. Scott Williamson

     

    I shot it up well over 50,000 before I stopped...I bet I could rack up 100,000 on the finished product.

     

    We'll see about that. The collision bugs are fixed and progressive difficulty goes in tonight :evil:

     

    Mwah hah ha ha ha!

     

    D. Scott Williamson


  2. distellamap.png

     

    I'm sure this is old news too but have you guys seen distellamap?

     

    He disassembles cartridges intelligently and shows a dump of the code with graphics and jumps graphically illustrated. It's been around a looooong time, at least since 2005, but it's very cool nonetheless.

     

     

     

    D. Scott Williamson

    Cool! What does Star Castle look like? ;-)

     

    ROFL :lol:


  3. distellamap.png

     

    I'm sure this is old news too but have you guys seen distellamap?

     

    He disassembles cartridges intelligently and shows a dump of the code with graphics and jumps graphically illustrated. It's been around a looooong time, at least since 2005, but it's very cool nonetheless.

     

    Here's Atari 2600 Pac-Man

     

    pacman-illus-150dpi.png

     

    D. Scott Williamson


  4. On a random note, have you given any more thought to jstella emulation?

    That would allow us to try it out, or to even see some demo mode stuff. :)

     

    I just recently found an example that I can share.

    The author of Medieval Mayhem (SpiceWare on these forums) has a website where you can play his release "Medieval Mayhem":

    http://www.spiceware.org/atari_medieval_mayhem_play_online.html

     

    I assume that the ROM is protected, but I may be incorrect in that regard.

    You could always give it a funny randomized long binary name, in the event that it just sits there (Accessible), if that was an issue, to make sure it's not easily found.

     

    Info on setting up jstella is here:

    http://jstella.sourceforge.net/jstella_applet.htm

     

    I've never seen anyone use this during development to protect the ROM's-- I'm starting to think that may be a good idea for future reference.

     

    -John

     

    That's a nice idea but it looks to me like jstella needs your ROM to emulate which it looks like it just downloads unprotected from your website.

     

    From your link...

    How do I set up JStella as an applet?

     

    Download the most recent JStella JAR. Put the JStella JAR and the desired ROM file in the same directory as the web page. Add the an applet tag to the web page that resembles the following::

     

    <applet archive="jstella_0_7.jar" code="jstella.runner.JStellaApplet.class" height="480" width="480">

     

    <PARAM NAME=ROM VALUE="myROM.bin">

     

    Even if it were more secure, Java would likely have a raw version of the ROM in memory to emulate it and a core dump would show the graphics and 6502 code pretty easily.

     

    :|

     

    D. Scott Williamson


  5. ...so I can play it via emulation. Just digitally sign the ROM or something so every ROM can be traced to the original purchaser (I'm assuming you can do that?)

     

    I really and truly appreciate the unexpected interest in this port of Star Castle I created but...

     

    Do your Wii and PSP emulation packages have DRM? Do they read and honor any kind of digital signature.

     

     

    I don't know of any emulator that honors a digital signature or DRM of any kind. In my opinion, DRM only hurts those people that are honest and want to use the media that they've bought in ways that they want to use it. DRM never deters piracy because pirates will always find away around it. Based on your posts you obviously understand this, and you're right...the only way to ensure that your game isn't played by someone that didn't buy it is to not make it available for anyone but yourself.

     

    The game looks great, and I'm sure you've enjoyed the challenge so far and proving that it can be done. As I'm sure you've noticed, the 2600 still has a dedicated following. We're always excited for new games, especially arcade ports from the 80's that were never released or developed.

     

    Congratulations on your (continued) success with Star Castle. I hope you enjoy playing it as much as you have enjoyed developing it.

     

    I humbly thank you Lord Helmet,

     

    D. Scott Williamson


  6. Your shield seems 46 pixel wide and about 90 pixel tall. Most rows seem interlaced, but not all (top left outer shield, why that?)

     

    It's a timing glitch actually. When optimizing the code, that section of the shields filled in solid so I left it thinking that having some solid was better than all louvered. It bugs me though so I'll probably rearrange the code to make the rings consistent all the way around. I do have one byte of ROM free so I could even insert a NOP :D

     

    It may be possible to make them solid but that would double the scanlines and since it's all one unsynced perfectly timed function, idk how I'd fit the cycles to add loops to double scanlines or alternatively double the code to render each scanline twice within ROM.

     

    D. Scott Williamson


  7. Yeah, they made their own little CPU! Wonder what the instructions were like? I think the sizes of things are very interesting all considered. Thanks for tracking down the doc. I had not seen it before. This is a very curious arcade game. No wonder it's got such a unique feel.

     

    There are only two other coin ops games I know that had no CPU, TailGunner and breakout were all TTL. I suspect other Cinematronics vector games including the other popular Tim Skelly games Rip Off and Armor Attack probably didn't have off the shelf CPUs either but I don't know that for a fact.

     

    D. Scott Williamson


  8. I find it disappointing that this game may never be released one way or another..

    ...

    I don't own any 2600 homebrews, but Star Castle I would seriously consider purchasing. It was one of my favourite arcade games growing up. I'd probably have to make an all-button controller, though, to get the proper effect.

    I am currently analyzing the game mechanics and how the shields are drawn in Scott's game.

     

    Maybe, if someone comes up with a demo, this will encourage Scott to release his game before someone else does the same game. ;)

     

    I strongly support the effort for others to try to make this game <edit...> - and for them to pave their own way for them to explore their own ideas. I don't mind having others try to recreate this work through the pictures, videos, and code conversations of my work presented here, I'm just saying so much of the reward is in solving these problems for yourself and you may end up with a superior product. I suspect you will find this particular title to be much harder to impliment than it looks.

     

    D. Scott Williamson


  9. I finally managed to download the Stella video from YouTube.

     

    Two questions:

    1. In the original, you have to shot each element twice. This is not implemented here, right?

    true, I found that out late in the project and I'm out of bits and code room. I'd need to recover 6 more bytes of RAM or figure out how to count from zero to two in one bit :roll: .

     

    2. The final kill looks odd, as if a shot goes through an intact inner shield. Is that a bug?

    It is and it was fixed last night. :)

     

    Very astute!

     

    D. Scott Williamson


  10. Games using the extended memory available today (e.g. Boulder Dash) are challenging too, but in a different way.

     

     

    It's comparing apples and oranges. Sure they are fruit, but they are just not the same.

     

     

    I think there is a core of us that will try to squeeze every byte out of the program while performing obscene tricks. The other group thinks we're nuts to not just expand the rom... simply because these days there is no real constraints on cost and it's a hella lot easier. But for us it's like the Clint Eastwood trilogy. How'd it go? Oh, yes...

     

     

    A Fistful of Bytes

    For a Few Bits More

    The Good, the Bad, and the Bit-Rot

     

    I agree with both of you with one caveat - with all the RAM and ROM in the world, the 2600 is still very tricky to program, you still need to work in 4k banks and the graphics and sound are so limited you know.

     

    D. Scott Williamson


  11. Seems the original was 8k ROM. There's a metric right there. RAM is 256 x 12 bits.

     

    The CPU schematic starting on page 70 is a lot of fun too. 8 bit instructions into 12 bit RAM. How high was the vector display resolution on that one? Asteroids was 1024 square wasn't it? On the machines I remember playing, the lines had a nice texture, often kind of bright near the ends. Great look actually.

     

    Wow, 12 bit RAM, I missed that. I went over the schematics quite a bit looking for the CPU and when I realized it was made from logic & ROM I looked even harder.

     

    D. Scott Williamson


  12. I don't know of a way that the rings can change size and still do everything they need to in 8K.

     

    D. Scott Williamson

     

    Why do you really care, 16K is just fine?

     

     

    I should add I'm not sure how I'd even do it in 16K :)

     

    D. Scott Williamson


  13. For those of you who think the 2600 is hard to program, there's harder. Here's the Star Castle Coin-op Manual. In it you will find that it didn't have an off the shelf processor, instead it was a collection of logic chips and ROMs. Programming was done in assembly in notebooks, converted to hex and typed in.

     

    Wow, humbling.

     

    D. Scott Williamson


  14. I don't know of a way that the rings can change size and still do everything they need to in 8K.

     

    D. Scott Williamson

     

    Why do you really care, 16K is just fine?

    I really do care and I care because I did it to answer a challenge. Howard Scott Warshaw said it couldn't be done and I wanted to prove that it could have been done at the time he was to do it, I had to stay within the ROM limitations present in 1981.

     

    The harmony cart will do 16K or more and my cart will go up to 64K so ROM isn't practical modern concern (though I wouldn't want to develop without bank switching supported in Stella).

     

    Historically Yars Revenge was done in 4k but there were already two 8K cartridges published before it, Realsports Baseball, and Asteroids, and four of the five games that immediately followed were also 8K. (reference). It has been suggested that Howard Scott Warshaw may not have been able to convince his superiors that the new expensive 8K ROM was necessary especially since it was his first Atari 2600 game (isn't that remarkable?). His interviews never mention ROM size as a limitation though but he does insinuate that graphics and control were big concerns of his

     

    HSW: "I was given the system’s manual and, after learning it, was assigned to do my first game – a version of Cinematronic’s Star Castle. I soon realized that a decent version couldn’t be done, so I took what I thought were the top logical and geometric components of Star Castle and reorganized them in a way that would better suit the machine. This eventually became Yars’ Revenge."

     

    Ive been told that 8K ROM became the norm after after "the Pac-Man debacle" but Pac-Man came out 9 titles before Yars Revenge. I don't have a list of release or development dates and the "debacle" may have taken too long to unfold. I personally think Pac-Man could have been much better in 4K despite the insane deadline, at least with the a better palette, better Pac-Man frames, and better sounds (that horrible DENG, DENG, DENG still haunts me). Maybe something could have even been done to improve the multiplexing of the ghosts. The subsequent Ms. Pac-Man and Pac-Man Jr. were much better but I have to assume they were given more time and 8K ROMS.

     

    D. Scott Williamson


  15. Scott, I notice in the videos that the arcade version's shields "grow" outward from the center, and when any individual ring is completely destroyed, any ring(s) or partial ring(s) interior to it grow to fill the gap and a new innermost ring is formed. Do you plan for your port to have any of that functionality?

     

    It has it.

     

    Each ring rotates an alternate direction. When all the segments of a ring are destroyed the ring below its shield sections and holes grow to take its place and all the rings change rotation direction. The growth is instantaneous though. I don't know of a way that the rings can change size and still do everything they need to in 8K.

     

    D. Scott Williamson


  16. ...so I can play it via emulation. Just digitally sign the ROM or something so every ROM can be traced to the original purchaser (I'm assuming you can do that?)

     

    I really and truly appreciate the unexpected interest in this port of Star Castle I created but...

     

    Do your Wii and PSP emulation packages have DRM? Do they read and honor any kind of digital signature.

     

    At the very least I might be able to find out which individual gave it to two friends, who gave it to two friends, and so on, and so on. If that happened only 8 times there'd be 256 copies out there which is about the limit of what I could expect to sell and that's from just one person.

     

    Of course we are all good an honorable people here and I don't mean to suggest that any of you may be involved in such an illegal and immoral activity as software theft but consider this perspective...

     

    For me to get any satisfaction I'd have to find and bring charges against every pirate for that to work right? :)

    I'd have to find and stop the sharing of torrents, darknets, websites, ftps, emails and all other ways my 8k file might be shared all over the world right?

     

    And let's not forget that hackers are clever, there's a better than good chance that when they remove or workaround the signature and/or whatever copy protection's in place (which takes less than 48 hours if hackers want a title), they will likely compromise my ability to identify them, not that I had a chance in the first place.

     

    I have been making games for 20+ years, I'm privy to details I can't share here, but I can tell you piracy gets worse every year.

     

    For this project it's personal, there will only be one and it will be unique.

     

    D. Scott Williamson


  17. I used the two players, missiles, and the ball for all the graphics and only used the playfield bits for debugging which is commented out now. You can display each player triplicated (is that really a word? 8 bit image repeated 3 times 8 bits apart). I triplicated each player and positioned them centered on the screen so that they interleaved each other like this P0 P1 P0 P1 P0 P1, each sprite filling in the spaces between the others images.

    Since there isn't enough CPU time to draw a 48 pixel display plus missiles and the ball, I suppose you flicker or interlace between shield and other objects?

    Actually, I think there may be enough time to load the sprites, missiles, and the ball in double line mode, but there wouldn't have been enough ROM. The shield drawing routine is pretty huge as it is, and there is only one free byte left in that 4k bank today.

     

    The routines to draw the shields pull bits out of a packed structure in RAM and mask them for display.

    Your shield seems 46 pixel wide and about 90 pixel tall. Most rows seem interlaced, but not all (top left outer shield, why that?). I wonder how you store this information in the RAM. Even interlaced you would need 6x45 bytes, so there must be a trick I am missing.

     

    BTW: I never played the game, so I suppose, the rings are not just animated static segments, but the player can shot holes into them.

    They are indeed 46 pixels wide and are 92 double lines tall - you must have really been counting. In the original design the shields were represented internally as arrays of bytes that the CPU shifted to rotate. It was easiest if the number of bits in each ring was divisible by 8, but i settled on 16 bytes for the outer ring, 11 bytes for the middle ring and 5 1/2 bytes for the inner one. That is where the actual size came from and actually, it is a little too big compared to the coin op which had more room to fly the smaller ship around on. You can get a lot more fine detail on a screen with vector graphics :). I'm happy with the balance I've struck here though.

     

    I just posted you tube video links for you and others who haven't seen the original. The shields were vector 12-gons with individual sections that could be destroyed. You can't just go blowing pixels out of a bitmap, there are 12 discrete sections with clear boundaries. The Atari 2600 version has 12 discreet sections but they had to be done in a circle rather than an 12-gon, it was the only way I could think of to do it within 8k which was the maximum cartridge size of the day. Even though Yars Revenge was an original game by its own right, it drew many vital game elements from Star Castles design and it is an outright miracle that all that gameplay and the game configurations were made to fit into the 4K cartridge.

     

    Logically, each ring is a circular bitmap, albeit in a complicated nonlinear data structure. The bits are packed into memory in a way that is friendly to the draw routine which must be done very quickly. There is one large routine that calculates which shield segments are on and which are off with rotation, which is simply a scroll function since each ring is a circular bitmap, and fills the appropriate bits accordingly.

    Instead of moving all data when the ring rotates, couldn't you just move parts of the data and e.g. the outer ring by just changing the offset into the circular buffer? Or would that result into problems when drawing it?

     

    I am really interested how your data structure looks like.

    The final algorithm works similarly to what you described but it's kind of a hybrid and it uses some trickiness that is necessary not only to move and draw the shields but to actually collide with them and knock them out. I was going to share the data structure but some others here were sounding like they may take a crack at writing a version of the game and to be honest with you, I'd like to leave that part as an exercise for the readers. I'm interested to see how others crack this problem.

     

    D. Scott Williamson


  18. it's always a thrill to get a response from the original designers. So far I've only experienced it once. Very cool to get the inside scoop. I bet Scott just didn't have the resources to make a cart like yours.

     

    Thanks for your responses to my silly questions. I haven't the skill for assembly but I've got curiosity. Sometimes that's a first step. :)

     

    The data format to plot the shields.. do you think a nybble format would work?

     

    Each pixel in the shield would be represented by a nybble. So I'd start drawing the first shield pixel and then increment or decrement coordinates based off of the next value in the data table.

     

    First two bits to the right:

    00 = x - 1

    01 = x + 1

    10 = x (stays the same)

    11 = don't draw

     

    Last two bits to the right:

    00 = y - 1

    01 = y + 1

    10 = y (stays the same)

    11 = don't draw

     

    Too complicated/waste of cpu cycles?

     

    That's a really good idea but I think you caught on at the end that there may not be enough RAM/cycles to pull that off. My routine (and there may be other equal or better approaches) really packs the bits so they fit in RAM and they can be drawn in a tight kernel later. Also, my routine packs the shields and cannon into 60 bytes at one bit per pixel, at 4 bits per pixel it wouldn't fit in RAM. The nibble packing is a different geometry that would be hard for the 2600 to draw. I don't want to discourage you, that was a very clever approach.

     

    D. Scott Williamson


  19. I'm a big Star Castle fan.......This looks GREAT! As others have said, I hope you decide to release it in some form...we'd love to track scores for it over at Twin Galaxies :thumbsup: (I really want to play it too :))

     

    Thanks a bunch. I believe that Crimefighter had the high score and it was between 33,000 and 37,000 at VGS. Next time I show the game we will need to start over though because several bugs have been fixed including collision and scoring issues that make playing the different versions of the game an unfair comparison. (Crimefighter, it looks like your VGS 2010 record will stand for eternity :))

     

    D. Scott Williamson


  20. Holy Crap that looks good for a 2600, even 7800.

     

    Thanks, and it just got better!

     

    Hardware pixel accurate collision, improved shot shield collision, a better attract mode, fixed drone sound, and a handful of bugs got fixed this weekend. The big items remaining are increasing difficulty and adding accuracy to shot trajectories, both of which I have made a plan for and have freed some RAM/ROM for.

     

    My cart function is much improved thanks to batari's suggestion too, though I still think there may be situations in which I get false bank switches. I'm writing a test ROM to validate my cars function completely. He was right, once I started looking at the address lines up on the scope(s), I hadn't accounted for enough (any) settling time and while I can't look at 13 address lines at a time, I can definitely see how false clocks could occur. I get the feeling that this is a typical logic vs analog pitfall that engineers with programming before electronics experience are prone to. Live and learn. Thanks for the tip!

     

    Oh, and one more thing. I may have heard indirectly from Howard Scott Warshaw through a private conversation re. my youtube video. Both he and the intermediary complemented the work and we've been discussing the history of 2600 development around that time. I have no reason to doubt they are who they say they are, the conversation is allegedly with one of the interviewers, but I'll need to verify it ... and I'm a lot less likely to be posting any private messages to the forum without the consent of all parties concerned. ;)

     

    As I have said before, I plan to finish the cartridge before contacting Howard Scott Warshaw directly despite the cat being out of the bag so to speak.

     

    D. Scott Williamson

×
×
  • Create New...