Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Blog Entries posted by potatohead

  1. potatohead
    This video is pretty great. It covers a retro title made on modern devices remade for the device that inspired it! Enjoy.
    I think it speaks highly of the many activities going on in our little corner of the retro scene.
  2. potatohead
    Remember these?
    Remember what it was like when you watched them?
    Now consider this:
    Get as aggressive as you want in comments, but be very prepared to support what you say. Enjoy!
  3. potatohead
    I wanted to use my Apple as a simple VT100 type terminal for various Propeller related things. I remembered Pro Term way back when, and it was a very solid product, employing then modern GUI type interaction. Interestingly, that interaction is familiar even now, tab, space, arrows doing what a modern Windows computer would do. Funny that. Really, some of the tools I needed to get Pro Term onto a 5.25" disk are handy for a lot of other things, and might not be obvious, so...
    Here is what I did:
    The Pro Term archive is a Shrink It archive. For that, you want Cider Press, which I have attached here. It can be obtained from Source Forge too.
    Cider Press can do lots of great things. Convert disk images, open archives, and most importantly, manipulate the contents of disk images, and create new ones. Pro Term can be started on 5 1/4" disks, which is what I have, but you've got to build your own disk images from the 3.5" disk archive. Neat.
    The Pro Term disk archive can be found at the links below. Not attached, because I think it just needs to live where it lives. It's freeware, with the request that it be sourced from specific places.
    http://lostclassics....rec_A2-PT31.pdf (The manual describing what needs to be on your 5.25" disks)
    , and
    http://lostclassics....PT31A2GM2K9.SHK (The software archive you need to work from)
    You also will want ADT, found at:
    What I did was download ADT and follow the bootstrapping instructions for my machine. I've got a //e with Super Serial, so it was easy. You can use just about anything the Apple can do to transfer disk images. Damn cool.
    The ADT software is just a directory with a batch file to launch, and it contains a "disks" sub-directory. I downloaded the Pro Term archive, some games I wanted to play again, and the PDF documentation into that directory. When you transfer a file to the Apple, ADT looks here first. Nice to just have it all in one place. I will very likely organize some, but for now, I just wanted a game or two and the terminal, so this works.
    Once you have ADT working, and you've tested it with it's own boot disk, a game or two, you are ready to do other things.
    Run Cider Press, and open the Pro Term archive and use it to create two 5.25" floppy disk images. One is the boot, the other is the program, and I just used one disk, flipping it for each set of files.
    To make things simple, just assume the Pro Term archive is in your ADT "disks" folder, and then do the following things:
    1. Open the Shrink It archive. It will look like this:

    The file selected is important in the steps below. Note it.
    2. Select the files needed for the boot disk image. Then choose, "Actions", "Convert To Disk Image". It will ask you for a disk name, use "PT3" for both disks, and a file name. I used, "PT3-boot.po" ".po" = Pro Dos Ordered Disk Image. Use the step 3 screen shot to see which files you need to select here.
    3. Open up that disk image. It should look like this.

    You are done with this disk. It should boot in your Apple just fine. Test it, if you want to. I did. Just boot ADT, use the Receive function, write the front side of your Pro Term floppy, reset and see if it works.
    4. Now it's time to create the program disk. This one is tricky. Again, select the files you need to make this disk image, and use the "Convert To Disk Image" function as detailed above. There are two steps to this from what I can tell. Maybe somebody knows better than me. If that's you, please comment.
    Use the screen shot in step 5 to see which files you need to select here, then write the new disk image. I used "PT3-program.po" for my disk image, and don't forget to name it "PT3", just like the other one.
    5. Open up that disk image, and it should look like this:

    6. Now fire up another copy of Cider Press, and open your original Pro Term archive file. (shk) You need to select the one file here that has a path name! If you just select it in the step above, it won't get created in a sub-directory like it is supposed to. Select the file, and choose "edit", "copy" off the menus, per the screenie below:

    7. Now return to the running instance of Cider Press that has your Pro Term program disk image open, and select "Paste Special"

    8. And make sure you have the path name option selected:

    9. Your finished Pro Term Program disk image should look like this:

    Close your Cider Press windows. They operate directly on disk images, so there is no "save" operation here. Remember that, and make copies of things. For example, to illustrate this flow, I took my PT3program.po file, copied it to "junk.po", then ran Cider Press on it to re-do the steps above, not wanting to trash the working image I had already completed.
    10. Boot up ADT again, and use the receive function to create the flip side, "program" disk image to complete your working Pro-Term floppy disk for use on a real Apple //e computer. I don't think this program runs on lower memory machines. 128KB or more is needed, meaning Apple //e enhanced or better. Check the PDF.
    You might not want Pro Term, then again you might too. That's ok. What is nice to know is how Cider Press does things, and that copy, paste mechanic. Pro Dos has volume names like a PC does, sub-directories, and file permission attributes, among other things. Building disk images may or may not require these things. Some of the good tricks are illustrated here.
    Here's my running pro-term, fed into a S-video capable capture device to strip the color. For this, I use a custom S-video cable, like a C64 user might use. One RCA is color, the other RCA is luma. Very handy for getting higher resolution captures.

  4. potatohead
    Ok, so I got sucked in. It was a great deal, and I usually know better than to go using e-bay...
    The plan is to play some older games. I've a copy of Ultima on disk that I've not played for years. Hope it works.
    At some point, I want to put Propeller chips on cards for use with the Apple as a retro-dev station. Just getting started thinking about that.
    What I really need is some quick tips on how to get that Apple running some software. It has 80col card, disk, and I think the serial or parallel card. Won't know until it arrives.
  5. potatohead
    Missed out on the sale posted here recently, and it just solidified my desire for a classic Apple ][ series computer.
    I'm not too particular about the model. Would prefer the e, but a nice plus, with 8 col card, language card, etc... would be just fine.
    Ping me. ...or just know I want one, and maybe post up what you want, just because we can!
  6. potatohead
    I'm gonna put this here so I can find it later. A comment triggered some thoughts of mine that I may want to refer to later on.
    The context here is digital distribution and the ongoing grumblings about it, and specifically that "servers are expensive" reasoning we hear a lot.
    I think it's about more than that, and so here it is:
    Well, there are several kinds of servers. There are download host servers. Those are cheap ass, but for the authentication / DRM servers they need to connect to, but those can be used across many titles. (I would) Then there are media servers, images, forums and other goodies. Those can be scaled too. Finally, we get to player game hosting servers, which I suspect vary, depending on the game and what the developers did.
    If those servers are too expensive to actually take any money out of the process, either double down and invest in them, and scale like lots of other people do --and need to do, in order to have them make sense, or consider that perhaps the servers are NOT the future of gaming.
    The rules are the same for everybody in these things. Gaming is no different.
    I've one other really ugly comment. (ugly, in that the implications of it are kind of brutal, not that I mean to be inflammatory)
    Disruptive technology typically has a 5 to 10 x cost difference, while delivering a very significant fraction of the target market value. This is a known, establish fact that can be researched and validated. I'll leave that to the reader.
    All technologies we've seen so far have seen their futures come in terms of a disruptive competetor, which typically gets disruptive for some core innovation that takes cost out of what is otherwise a cost heavy exercise.
    That's the future of gaming folks, and don't let anybody tell you any different. It will happen to gaming as it did for every other thing, and it's how we work as people, and what our core economies are that drive those things.
    DRM actually can serve to bring this on, or can serve to artificially keep it at bay, which is my PRIMARY objection to supporting it in any way. Has nothing to do with piracy. I buy the stuff I can buy, and find other things to do when I can't, just because doing anything else isn't worth it, beyond learning some core skills that can come in handy.
    (and we've all done that, and I'll tell you some of what I learned cracking stuff because I could, pays very, very well today, and it's straight up legal.)
    What this means, is for digital distribution to be considered viable, and something that actually disrupts media and our traditional game forms, is those games will be $10 or under. Fact.
    Whoever does this will be king, and the only discussion right now is who actually has the balls to do it first.
    In every technology niche I've seen this occur, the ones out of the gate that understand the rules, who make the investments, who do the marketing, win, and the others recede into higher-end, specialty niches, getting slowly picked at, until they are gone, merged, or themselves innovate their way out of the thing.
    That's what is coming. The reason people are not really grooving on the current state of things is because the value proposition is being artifically held high, so the revenue numbers look good, and DRM / Piracy is cited as the reason they are not blowing the old school way out of the water.
    The fact is, we only have so much entertainment money. This is true for nearly all people. The various entertainment forms must compete with each other, and the average persons other life priorities, like basic needs and other luxury wants.
    Because of that, incremental changes do not bring watershed changes in revenue to the table. Never have, never, ever will. This is why the disruptive technology equation works the way it does. When the value offering is similar to, even on par with existing ones, and the price is 5 to 10x lower, people are compelled to give it a try, because that price difference opens up a lot of options for them.
    They could simply consume what they do now for less. They could consume a hell of a lot more. They could begin to consume without infringing on basic needs, etc...
    Whoever does this for games, will consume a lot of share, instantly shrinking the market, and very likely consuming some other share, like movies or music, which basically are there anyway, if one wants to go looking.
    That's where the future of games is headed with digital distribution. At those prices, nobody will give two shits about whether or not they can trade, because at that price, it's just an experience, and likely worth it. Also, at that price, being able to manage the back-catalog becomes seriously important, just like it is for movies and music, where the long tail of available choices helps to capture as many of the demand dollars as possible.
    You read it here first.
    Game on kids!
  7. potatohead
    I've got to get setup to run screen captures and such.
    Here's the link for now:
    Eric Ball saw my crude 6502 emulation project and wrote up a nice core, deciding it wouldn't do VCS well at all. Left for some others to tinker with, and this is the next project outta the gate.
    A low memory Apple computer will be in the works shortly.
  8. potatohead
    Check 'em out!
    These are NTSC artifacted images. ~200 + colors, captured off a real CoCo 3. Check the Kings Quest one... And the 130 color Sonic one at top!!
    Unlike other CoCo 3 hi-color methods, this one requires only a composite display. No interrupts, or CPU time required. It's just a full on 160x200x256 bitmap, with some of the colors duplicates, resulting in a 200+ color display.
    (Yes I geeked out on a CoCo 3 this weekend, but I've wanted to render some pictures on it for a long, long time. Got some help from Jason and Briza.)



  9. potatohead
    First attachment is
    256 color swatch pattern. 640 pixel mode, 4 colors, composite display, palette entries are 0, 16, 32, 64. (all monochrome)

    Value start with 0 in upper left, counting up to 15 at lower left, 16 next column over, filling to 256 at lower right.
  10. potatohead
    Well, most of the electronics have arrived. I've got some 2Mhz 6502's, a 6809, just because, misc resistors, a coupla buffers, and static RAM on the way.
    This project has me seriously intrigued:
    Basically, the Propeller clocks the 6502, and can read the 6502 address bus, and can control the data bus. The included demo programs show how to load the RAM, and how to have the 6502 interact with the Prop, like it would in a classic computer or console.
    I want to do some retro gaming on a Propeller, and that's been happening with nice game projects being completed. Really though, it would be excellent to have it run VCS games. Attempts at 6502 emulation were over my head, and for those who knew better after giving it a go, too slow to make this happen.
    Other projects like this have been done, but were expensive or complex, or both.
    This simple circuit might actually be capable of doing some good emulation of some retro hardware, and I'm gonna give it a go. I targeted both the Apple and VCS as they don't make use of interrupts. In the case of the VCS, none at all. In the case of the Apple, interrupts are used, but not used to get a machine booting into a simple Applesoft environment. From there, who knows?
    I'm also very intrigued by Batari seeing success with the Harmony cart. There is lots of retro + modern goodness coming down the line, making this a good time to try something like this.
    For now, completing FREEWAY, then building and debugging this circuit have my attention.
    The purpose of the poll question is simple: Let's say this simple circuit could run VCS games unmodified, say from SD card, or something like that? Or even better, could run them from a cart! Would that be interesting, or a curio?
  11. potatohead
    Video games are addictive. Doubt that? Look around at us, and many others like us, who just won't give it up! 'nuff said. Why are they addictive? For me, the single biggest reason comes down to the trance state that often happens on an intense gaming session.
    The trance is a state of gaming where the gamer reaches a change in their consciousness and is able to maintain it and play the game. Thought become motion, time slows down, and every element of the game is understood and seen as one moving whole instead of just bits 'n pieces.
    This mode I'll call it, is not unique to gaming. A DJ working the board and spinning vinyl, all while doing afternoon drive can and does experience the same kind of thing, for example.
    I can remember the very first time this really happened to me. I was playing Asteroids. Prior to that time, I played the game and did well, but could remember where people were, sounds, and thoughts that were not part of the game activity. Those distractions diminished how I played and usually my game runs were nice, but not enduring. A similar thing happens when reading a book.
    There is reading, thinking, imagining, then reading again. Most of the time, people reading go through that cycle in short bursts. Read a little, imagine, then think, maybe fantasize, then read again, over and over. Like many still frames in a slide show.
    Ordinary people playing a game do this same kind of thing.
    If one were to speed up the still frames, it becomes a movie, and if it's fast enough and clear enough, you sometimes get there! Lost in the movie, immersed and unaware of your surroundings.
    That's the trance, and when it happened the first time, everything went away. The game actually slowed a bit, and I found that it was easy to move and shoot because I knew where every rock was, it's vector of motion and where the empty spots would form, dissolve, and form again. Mastery!
    I played to the limit that day, not requiring another quarter for hours. When I broke away, time had passed, and I felt calm, clean, pure. It actually took a while for ordinary reality to sink back in, penetrate my conscious mind and take hold like it usually does.
    Gaming was never, ever the same after that! Of course, I wanted to do it again and again, and did it just like everybody else did!
    Some games do not do this. Many modern games do not do this. They've got enough "easy to use" elements, and story breaks so as to break the experience up and leave a person not immersed in the experience, should they choose to get there. I find it very difficult to quantify this. I do know it varies by person. Different people can find themselves immersed in different experiences. Some of us CAN'T do DEFENDER, for example. The latency between hand and eye is just a bit too long, meaning they just don't operate quick enough to become immersed in that particular game. There are other examples, but I just picked that one.
    A really good one that most people can trance on, and in fact, MUST trance on, is KABOOM for the VCS. This title is simply brilliant, and so very well realized. Truth is, that game is written to take a human right to the limits of perception and action. If it were much faster, huge numbers of people wouldn't get there. If it built slower, nobody would be challenged enough to get there, and if the levels advanced more slowly, or more quickly, people would be discouraged, or reach the state only to be denied it because they didn't get there and have time for it to settle in good. Absolutely brilliant.
    If you try this game, do it on a real VCS and on a CRT television. If you make it to the upper level and just feel yourself drifting away, unaware of anything but the game, you are there. Takes about 5 minutes of good, solid play to do. Beware though! If you do this, you will probably want to knock out a round of KABOOM! every so often, just like I do. Love it. Office problem? Personal problem? Stressed? Just KABOOM! for a half-hour, get the trance and afterword feel just great.
    No drugs, supplements and such required either. It just works.
    The trance is a big part of retro gaming for me. In order for it to occur, you need a game environment that is somewhat abstract. I've had it happen on more realistic games, like war simulations though. Like I said, hard to quantify. Feel free to share in the comments, if you like. I love this topic.
    I'm posting this because of a random Atari Chat topic that flew by while discussing Jeff Minter. (I had fun guys --thanks!)
    Jeff Minter knows the trance. He knows it, craves it, and builds his trippy graphics around achieving it. You see, with Asteroids, it was about all the motion, the bright objects, dark screen and such. With something like Tempest 2000, it's about all of that, plus the huge pixellation.
    Many players of a Minter game complain about the bending of reality he so often loves to do. I believe part of why he does it is that he is a synthesite. Person where senses overlap and are mixed --I am one of these with sound, color and motion. Some sounds literally evoke a color, or a strong sense of movement with me that's consistent and something I don't have control over. Words on paper, when bizarre fonts are used, trigger faces and emotions and such too. I think lots of us are this way to some degree or another, and Jeff is that way to a very high degree with visuals.
    The bending of reality, the masking of game with effects, explosions, colors and such isn't an abuse of the hardware to look cool. It's actually an intregal part of the game experience. It helps to induce the trance. One element of achieving this gaming nirvana is having the mind work hard to sort things out. That stimulation can trigger stuff that literally opens a door and once you step through, those things just go away. You can still see them, I don't mean that. It's that your awareness of the game is so acute that even a pixel or two of good information is all that is needed to carry on. The intense graphics that you normally have to see through just don't matter.
    That is why the guy puts them in there!
    So that's the trance state. It's a lot of fun, and extremely addictive. It's very retro too, as the limits on what the machine could do meant very abstract games more often than not, and those boil down to simple movements, rules and dynamics that can just all meld into an experience where it's simply one continuous thing. And again, the only real solid thing I can associate with it is the mind being challenged to the limits in some way. Could be speed, colors, number of objects, rules of play, world, something. The other thing that I think really mattrers is a layered approach where a person can get mastery, then add an element and continue until it's all rocking.
    A player then will either reach that state and punch through, or not and fail --game over. This used to be how timed games were done. Now it's more of a forced thing, done with structure and other higher level game elements. The advantage of the modern method is most people being able to enjoy and complete the game where the older method often meant a set of people simply couldn't play the game due to their human limits!
    I'm sure it's a good thing to bring games to more people, but I also often wonder if the power of the classics in this way has a lot to do with very young people continuing to play these games we love. I mark mastery of a given game, not by reaching a specific score or level, but by whether or not I reach that state and can maintain it over an extended time. Thought becomes action, and I own that game.
    A part of me hopes so, and another part of me fears the time when I get old and maybe can't trance again, or will just have to do it with a book or some other immersive thing that my limits then will find satisfactory.
    If I've written on this before, sorry! I didn't see it, and figured it was as good of a time as any, given the chat thread we had and the question raised.
    What do you call this state, if you call it anything? Have you achieved it? If so, on what game did it happen first? Does it still happen? Do you crave it? Let's talk about the trance some.
  12. potatohead
    I quickly fired off a bunch of PONG power up options on a thread a while back, and it's been nagging at me. So, I think I'm going to explore this and do some Batari Basic again. Ooze! was a real kick. I had a good time, and enjoyed the feedback on the game. The home brew itch is coming to me again. Time to start scratching...
    The bB has paddle support now, and a LOT of options! Time to revisit that.
    So, it's setup the environment again. Last time I was on Linux. This time it will be XP as that is where my Propeller stuff lives currently.
    Been musing about the control mechanic. Putting english on the ball makes a lot of sense. Deffo want to do that. Using the button to activate the power up, when it is captured makes sense too. I think both are needed to make a game of it.
    Any BATTLE PONG ideas? Post them up here. I'll be looking at them, and maybe having a bit of conversation as I flesh out the game ideas.
    Can TWO paddles operate with bB, or does that mean assembly for me? That's the very first question I've got to resolve. If you know, great! If not, when I get setup again, I'll find out soon enough.
    ----------------Original Game Ideas------------------------------------
    I think being able to put "english" on the ball would be cool, in combination with the power ups! That way, it's a game to get them, and attempt to put the other player off balance.
    Some powerups:
    English - or not... see above
    hold ball
    advance paddle position forward
    sticky ball
    random bounce
    little ball
    big ball
    two balls --player releases a ball, and another one, and triple score if other player misses both sequentially, otherwise ordinary score based on remaining ball. No point given for miss of first ball.
    fat paddle
    narrow paddle
    reversed paddle
    random paddle - jitters for a while
    two paddles -- one in front, one in ordinary position
    god wall - player can't miss for a while
    bullets - get three shots at the other player
    gravity ball - ball attracted to players paddle, motion influences ball movement
    center wall, for a mini break out session, with a risk of point given, should player that has the ball miss!
    bent paddle - for limiting possible returns to other player
    invisible paddle
    switch controls! - for a time each player gets the other players paddle, point given to non-controlling player for a miss, so the game is just mirrored for a short time
    Call it battle pong!
  13. potatohead
    Images snagged from my capture card, from composite output of Color Computer 3.
    Color Computer is running 640x200x4 color mode. Palette colors are the 4 intensities available on the machine.
    A short Extended Basic Program: (Captured Intensity Only)

    256 possible byte values on screen: (captured intensity only)

    256 artifacting colors: (captured color)

    Coupla people asked why I posted this. It's basically documenting a technique for color that I should have done 15 years ago. Better late then never!
    And it was an excuse to get a Color Computer 3 again. Kind of missed it actually. Nice little machine.
  14. potatohead
    Thought I would just engage in a bit of personal therapy...
    For the last 6 months, it's been just treading water. I've finally come to the realization that I either need to seriously go hard professionally, or live a bit smaller so I can feed the soul better. There is no doing both at this time, as far as I can see.
    So... Feeding the soul is going to trump climbing the corporate ladder. Having recently turned 40, I find I have gained some perspective on wealth that is surprising to me!
    Wealthy people have larger amounts of liquid time. And that's time that can be for any purpose, or just simply wasted. Secondly, this time is in fewer segments than not so wealthy people experience.
    I'm not currently wealthy then! My time is a freaking mess! I have chunks of it, but they are little ones, scattered about. Not time enough to dig in and get something cool done. Retro stuff is damn cool, and always makes me happy, but my setup time for it is significant. It takes a bit to get things fired up, my brain in the right mood, etc... As a result of this, I don't do it as often as I want to and that kind of sucks.
    The reasons are many. One is my current day job. We are still in semi-startup / growth mode. This is taking it's toll. I suspect that will pass, but I'm not happy with the progress, nor am I happy with the idea that I'm really giving up wealth to help somebody just get more money. Because insurance is mandatory for my wife right now, I'm going to deal there and see how it shakes out. I love what I do, but am teetering on burn out.
    Money... Spend a ton of time managing money because of things that have happened. It's difficult for me to do things electronically, and that means lots of time spent dealing with simple money matters. Of all the things, I really, really hate that.
    Despite the issues, I managed to score a decent house. It has space, is in a nice neighborhood, etc... Problem is I really can't enjoy the thing. Living on one income essentially sucks. Also, I really don't want to HAVE to live on two. My wife is going through some nasty stuff and looks to eventually get through it. Why go through that only to just slave away again? We've missed out on a lot of time.
    So, I'm gonna move, scale down, live small and build my wealth (in terms of time). That means moving out of the city, enduring a longer commute (that isn't bad time though --lots of thinking and listening to things can happen), and have less space.
    The flip side is the money issues are going to go away. With that comes electronic management of things, far fewer monthly dependancies and some leverage professionally as I can set limits with little fear of really getting into trouble. Not having to have the money means focusing on where my real value adds are, not having to always invest too much for little gains. Growing the thing isn't so much my problem. Happy to be there, good at what I do, lots of great relationships --in short I'm valuable, so no worries there. However, I am also not up for too much exploitation and dependency either. That will absolutely change. Right now, I'm obligated to do the heroics thing because not doing so means others get harmed --and they know I'm right on the edge.
    Fix that, and it's heroics when the value add is there and I always feel good about that. Likely to be a more healthy scene.
    My wife can play poker like no other. She has been teaching me and I really enjoy the game. We can only play online, or for small stakes once in a while for time and money reasons. Moving out means a proximity advantage and a financial advantage. Poker is not one of those things that is healthy to engage in when dollars are tight. The pressure ends up ruining the game and that also taints the reward. Ideally, one plays, builds their bankroll, and then leverages that to play the really good games and get the really good rewards, keeping risk to a safe minimum. The way it is now, when we do come out up, it gets consumed just living life. Not cool.
    For me, there is that good time spent with my wife, and there is the retro scene just calling there. I need some build some better skills so I can realize the better projects. The why is just passion really. I just love this retro era and Atari / Propeller stuff is right there in the sweet spot. Doing that works the same way the cards do. I've noted the same pressure dynamics tainting the hobby and that's just got me at full stop at the moment. Also not cool.
    Anyway, that's it for now. Going to go dig in, endure a coupla months of moving life sorting hell, then come out on the other side a more wealthy person.
    We will move out of PDX.
  15. potatohead
    Caught a bit of free time today. Everybody is off shopping!
    Here's a screen shot with most of the game elements present. Video appears to be working fine, though I fear it only will work @ 96Mhz... Next go around, I'll hook up an 80Mhz board and see how things go.
    Getting to be time to work on the game engine and user I/O. For now, I think I'll just test with the mouse, then figure out the paddle stuff later on.
  16. potatohead
    I've some free time, and seriously like this game. Perfect for a first pass Propeller project. The screenie attached to this post is the core video driver code up and running with one sprite active. The score lines are full-on character mode graphics, with a small font table defined to handle the score. The middle of the screen utilizes a scan line buffer, filled with the background color needed for the next line, while the current line is drawing.
    Sprites are being written as strips, just like A8 bit PM graphics are. I've got one strip running, and it appears there is time enough in one COG (one of 8 CPU's, running in parallel on the thing), to build two sprites. The paddle in KABOOM is doubled. Not sure how I'm gonna do that just yet. If it's doable, I'll set a flag to double up sprite strip #2, for those scan lines. If not, I'll just multiplex the two sprites, leaving some flicker on the paddle scan lines. Because I've got access to the scan line buffer, I can multiplex that every other scan line. Really want to see what can be done with one video COG only.
    Sprite data is a series of two longs per scanline, organized in series, two longs per scan line to form 8 full-color pixels. There is a render table that contains the scanline background color, sprite x positions, and one so far unused byte. (likely to be the double sprite flag, if possible) Vertical movement is done by moving the sprite data up and down in the sprite table. Horizontal is done by changing the x position in the render table, thus allowing for scan line, by scan line positioning of the sprite images.
    The speed tests of SPIN were interesting. I did some basic stuff, like counting numbers on screen, moving blocks of memory, etc... SPIN, the on-chip high-level interpreted language, appears to run at about 70 to 90 percent native 6502 assembly on a real Atari 8 bit computer does! Plenty fast for game logic, input, etc...
    Should this end up messy, there are plenty of COG's in the chip, worst case, re-write the video such that one COG is rendering scan lines, another is building images for them. That technique is being used in lots of games done so far.
    Sound is up in the air at the moment. Might make sense to get one COG to act somewhat like a TIA. Input will be mouse to get the game up and running. I'll build a simple paddle interface after that and just use a paddle or driving controller.
    The blur seen on the moving sprite happens to be an artifact that results from the sprite scan line positions being changed, without sync to the display. That's coming up in the next driver code pass, along with sprite number two. Took quite a while to figure out how to and and or all the data together to build the moving sprite. Could have looked some code over and avoid reinventing the wheel, but I really need to work through that exercise for future projects. The blue color really is just filler data to verify the sprite strip is on the display.
    Check out screenie number two! It's an excellent port of DEFENDER! Runs on the chip, in 32K, with sound too boot. Input is keyboard, game controller. Damn cool, and maybe something I can approach some day. The journey is fun though. Motion blur is likely an artifact of my capture card. That one is done and playable on most any Propeller setup.
  17. potatohead
    This is just such a fine community, filled with excellent people. Talent, passion and creativity abound. You probably get your share of accolades, but just in case, I think it's worth saying thanks!
    Without your efforts, many people would be missing out on a lot.
    Appreciated huge!
  18. potatohead
    Edit: No new screenies, but I've got the 128 char font table in the COG now. That means one can have a text display in only .5K of RAM. Actually less, if big chars are adequate.
    The high bit now selects from either the COG font table (0), or the HUB one. The HUB one will be half-resolution, but 4 colors. Could be the same resolution, but that would impact screen memory access. Essentially, one would then have a non-linear memory mapped screen, with a line length that varies depending on the number of color chars specified. Ugh... At this very moment, it's just 4 colors total. Two for the COG chars, two for the HUB chars, for a total of 4 on screen.
    Once this pass is complete, then it's back on the overlay project. I've learned a few things about timing that will probably sort the overlay matter out once and for all. If that happens, then sprites --or at the least a nice hardware like cursor becomes possible. That's really why I've left the color timing alone. Overlay is going to be easier with it being static. Gotta walk before running.
    I've really been frustrated with the overlay effort. I *know* two of those Propeller video generators can be made to draw together, but I've just struggled with that a bit too much. So, I'm gonna punt and work on some other stuff I need / want to get done.
    One of those things is a full on character mode driver, that uses RAM font tables, features variable text sizes and such. Here are a coupla screenies:

    The multi-color one is what an Atari 8 bit text display would look like, if different color selections were permitted in the high resolution mode. The graphics code uses the same color and pixel timing as the 8bit computers do, but without the limitation on color selection. Some colors are really horrible, others are not bad. I'm eventually going to change that color timing, but not right now.
    The font is lifted right from an Atari ROM, and is the 128 char international one.
    Someday, when the overlay gets done, I'll be able to put the player / missile graphics right on top of that, for that A8 bit look. For now though, it's just nice to have a one byte per character, linear mapped screen to write to for debugging and other text kind of things. The memory footprint is already small, and is gonna get really small on the next revision. Ideally, the driver, font and screen memory will consume about 2K, which can be overwritten, once it's up and running on one of the 8 COGs.
    (On the Prop, nothing executes from main memory. You put the stuff in main HUB ram, then fire up a COG to process it. That data gets copied to the COG, where it runs just fine, leaving the source data available for an overwrite. This is very different, but also very cool, once one gets their mind wrapped around the idea.)
    That's small enough to power a second display, for debugging, while running other code on the primary one.
    Today, I think I've got some time to move the font into the COG, and start work on the 4 color mode additions. It's very cool to have the Atari font on the screen. Spent a long time looking at it, and now it's back on some new hardware to tinker with!
    Edit: Thought I would address why. Some have asked in the past, so here it is.
    First and foremost, because it's there, it's under my control, it's new hardware at the beginning of what looks to be a long life cycle, and it's cheap. The kinds of limitations that make retro computing game art appealing are here on this chip. So, it's cool for me on that basis too. What I'm doing right now is learning, just the same way I did as a kid. Feeds the soul. So, pieces are getting put together, one by one, for greater efforts later on. My setup is portable too. Basically, I've got the chip running on a HYDRA (because that was just easy to get started with), connected to my laptop, through one of those USB capture devices. The whole works just goes into the bag, for tinkering on business travel, or when I have some time.
    Modern computers are so powerful, the artistic elements exist in a plane well beyond what a single person, or perhaps a few, can leverage and enjoy. Micros, change that for the better, in terms of scale. Getting some extra colors, cramming a game into the RAM, twiddling bits, all are viable and relevant tasks that have meaning in the real world as well as in the retro / game / personal gratification one. I watch the real gurus here, and elsewhere, work their assembly magic and I fear it's going to become a lost art, leaving us with people able to leverage the tech, but never really grokking it at it's fundamental levels.
    Maybe that's just me too. Either way, I'm having a good time and learning stuff I can apply lots of places. Makes for far more interesting and entertaining business travel as well.
  19. potatohead
    I remember when Slashdot added this feature. At first, there was this flurry of activity. Picked up a batch of friends, and a coupla foes. After that, it all tapered down to a point where nobody cared.
    Are we there at AA? This community is significantly different from the Slashdot one. People know each other, the focus is far tighter in general, than Slashdot is, fewer users overall and a much higher signal to noise ratio, likely from the high number of regulars all sharing the same interest.
    That's it really. Just wondering aloud about the whole thing, which I'm likely to continue to ignore...
  20. potatohead
    After an extended time off, I've started to tinker with the Propeller again. Another user managed to do what I was trying to do; namely, build an NTSC video driver that's got stable color clocks on every scan line. Now it's possible to emulate the look of nearly any classic machine on this chip! There is enough control over the signal to essentially output any kind of NTSC / PAL signal you want. IMHO, this is really cool --and what I was hoping was doable.
    I'll have to get a camera, or something for screenies... perhaps this weekend!
    I was just reading the Closed Captioning thread. This is completely doable on the Propeller. It's got full control of the entire video signal. I'll have to go find a sample waveform to encode...
    To get warmed up, I modified and built on that driver to output 80x192x8. This is a lot like the GTIA mode on the Atari, only with more color bits. Did this to check out the color possibilities, with nice big easily debugged pixels. Turns out, about 96 different colors are possible, largely due to there only being 6 intensity levels on the chip. It's quite possible to use two of the video generators together to get more, but that's gonna be outside the scope for now. There are 16 distinct hues per pixel, with six intensities. Sub-pixel artifacting, which I've not yet really tried, is gonna yield more. Either way, sub pixel, or combining the output of multiple video generators at the same time, is gonna yield plenty of additional color and intensity levels beyond the 96 done by the hardware.
    As things stand right now, I've got a driver that outputs one pixel per NTSC color clock, non interlaced. This is exactly what the older Atari hardware does. If the chip had more intensity levels, it would all map out nicely, but it doesn't. It's totally possible to overdrive things to sub-color clock levels and get more direct control of what happens in a given pixel. I'm gonna save that for later.
    Onboard RAM, being limited to 32K, does limit the color screens. 160x192x8 takes up 30K of ram! Eek. Just enough to build a color demo or two, and that's it. maybe, maybe a small game in assemblier. Breakout or something... It is 8 bit addressable. No color limitations, just a nice high-color bitmap.
    It appears there is plenty of time between pixels for all sorts of tricks. Pixel packing to generate 32 or 64 color displays is doable and that would make a ~20k or so screen at classic game resolutions. Now there is room to actually do stuff.
    On the fly video will do better ---or add external RAM. Andre, the designer of the HYDRA game system, that uses the chip, has done this, giving 64K of random access memory, with 500k or so sequential above that. More than plenty for high-color graphics in full on bitmap mode. I'll be playing with that later...
    For now, the next task is to build an emulation of some of the better Atari modes with sprites. I've a coupla choices in this. Somebody already worked out how to connect atari Joysticks to the VGA port for quick and dirty control interfaces on the Demo Board. On that note, it's a bummer --sort of. The HYDRA game machine has nintendo style ports, and code to read the controllers. This is actually very cool in that modern controllers all function in a similar fashion. The Demo Board, which lacks some storage and essentially limits you to just the 32K in chip, without you building stuff, does not have game inputs, but does have mouse, keyboard, VGA, etc... in common with the HYDRA. If one is using a TV for the display, then that VGA port can easily become a controller port instead! Either system can do this, because all the I/O is bidirectional.
    Time to make some cables and hook up my Atari stuff! Paddles are gonna be an annoyance as a CAP, charging, timing, etc... are gonna be necessary. All possible, but extra work right now. Joysticks, driving controllers, etc... are gonna be just fine, so I start with those.
    Have one COG (that's one of the 8 CPU's running on this little bugger) build the screen display one scanline at a time, in high color mode. It works from a buffer that's built by one or two more of the COG's. Those two will be building sprite graphics, read from memory and drawn into the buffer on the fly. Graphics done this way, only need the storage necessary to define the images, with no full screen bitmap required for display. It's like a programmable TIA, essentially. Once the sprite engine is up and running, it will appear as just video hardware to the real game program running on one or more of the other CPU's.
    I'm finding the Atari style Player missile graphics sprites an interesting design option. The existing sprite engines, for the chip, all use your typical rectangular sprite definitions. Drawing these into the buffer takes time --more time than would be required if all the sprites were screen height! So, vertical movement would be actually moving data, horizontal movement would be changing a register. Maybe add an origin register so we get to say where a particular bit of data ends up on the screen. This might make packing things in memory easier, and vertical movement easier, given the sprite is not to be reused vertically as seen on most every game done on the 8bitters.
    I'm not sure how many will be possible. I strongly suspect this number is high, given the 8 CPU's to work with. It will be possible to have them be more than one color for sure. I don't think I'm there yet where emulating hardware collisions is concerned, either. No biggie, there is plenty of speed and ram to check these things in the usual non-hardware ways.
    That's it for now. By way of reference, here is the actual 80x192x8 driver code, and the little quick and dirty color demo that went with it.
    ********** Color Demo code first ***************

    { ******** 80 x 192 High Color 1 byte / Pixel display Demo *********** * This demo writes all the useful color values to the screen * * Linear addressing, no tiles * * Derived from CardBoardGuru's Simple NTSC display example * * Written for HYDRA * ********************************************************************* } CON ' Set up the processor clock in the standard way for 80MHz _CLKMODE = xtal1 + pll8x _XINFREQ = 10_000_000 + 0000 VAR byte displayb[15360] 'allocate display buffer in RAM '80 x 192 x 1 byte / pixel long index 'temp offset for byte statement below OBJ tv : "80x192_NTSC" 'the TV driver, for this example running at 80x192 PUB start | j, c, k, o { fill bitmap with NTSC black color. A zero is below black and will hose the display. Perhaps it's not a bad idea to have the TV driver watch for this condition... 8 bits / pixel appears to be a waste in that only 120 distinct pixel conditions result. Of these, perhaps 90 or so are really useful. Of the 8 bits, the first three deal with intensity: Black = %010 01 Grey = %011 02 Grey = %100 03 Grey = %101 04 Grey = %110 White = %111 Useful color exists in the remaining bits as shown by this program. The first row of darker colors is questionable. On my better TV, it works. On lesser ones, it doesn't... } 'fill bitmap with black pixels, before triggering display repeat index from 0 to 15360 byte [@displayb] [index] := 2 'another way to point at HUB memory... tv.start(@displayb) 'start the tv cog & pass it the address of the bitmap 'draw a border around the visible graphics screen (80 x 192) repeat j from 0 to 79 plot(j,0,251) plot(j,191,251) repeat j from 0 to 191 plot(0,j,251) plot(79,j,251) 'draw 6 intensities possible (black is one) repeat o from 15 to 55 step 10 repeat j from o to o+9 repeat k from 160 to 180 plot(j,k,o/10+2) 'draw useful sets of colors possible repeat k from 8 to 15 if k == 9 k := 10 c := k repeat o from 3 to 77 step 5 c := c + 16 repeat j from 20 to 30 plot(o,j+16*(k-8),c) plot(o+1,j+16*(k-8),c) pub plot(x,y,c) 'very simple dot plotter 'one byte per pixel is sweet! displayb[y*80+x] := c
    And the driver... actually, it's full of commentary, written my me and the other guy! (Attached instead --actualy I don't know how after the AA upgrade. No biggie...)
    Just for fun, this is all it really takes to encode the bitmap display, once the framework is all up and running:

    mov VSCL, CALC_user_data_VSCL mov r1, #20 '80 pixels horizontal resolution is 20 waitvids :draw_pixels rdlong B, A 'get four pixels from hub waitvid B, #%%3210 'draw them to screen add A, #4 'point to next pixel group djnz r1, #:draw_pixels 'line done? Move to sync...
    Just one tight loop, grabbing bytes, writing them to the screen, etc... BTW, the entire signal is encoded as colors. This is why there are only 6 intensity levels, when three bits are actually defined for this. The other two are below black, for sync. These produce interesting results when present on screen, in the display graphics area! Not all TV's will cope with this either.... That's why the demo program above, filled the display memory with pixel values greater than zero. I'll have the driver itself handle this going forward, so zero will actually be black and not sync!
    One other thing... I saw the great little project to make a 7800 adapter for the 5200 machine. Didn't know that one had a video input! I'm assuming this is a pass thru kind of thing. If so, one of these little chips could be on a cart, and present itself as ROM, maybe co-exist with the ROM, and output a video signal to be used in lieu of the 5200 one!

    These screens were taken with the emulator. I don't have a good video capture system right now, so this will have to do! The emulator works from a compiled binary from the Propeller IDE. See comment thread for more...
  21. potatohead
    Well, we are getting there.
    Two surgeries so far. All should be quiet for a while. Once some real healing has taken place, there is one more to get out of the woods. From there, things should be looking up!
    Thanks to those who sent me some happy thoughts!
  22. potatohead
    Been a while since I last posted anything. There is a reason for that!
    My wife has been seriously ill. We thought the fix would be quick, but it just isn't.
    She is having major surgery this week. I'm nervous and excited. If things go well, I will be able to get things back to normal, catch up on the financial end of things and work on gaming stuff.
    I've some Ooze ideas that make sense and will make it a more complete and less futile game. Can't wait to try those.
    The HYDRA machine is a lot of fun. People are just now starting to code for it. Ideally we will see some up and coming stuff for it this year.
    The state of health care in this country is horrible. I've carried insurance for years. The one fucking time I have it hard, (company I worked for went bankrupt, forcing me to drop it for a short time) this crap hits me. All of it pre-existing, which is complete and utter bull shit. To think of the dollars I paid in...
    So, it's on my tab and I'll be paying for it over the next 20 years... Makes getting that new policy just that much harder too. How easily one can fall into a trap these days. The hospital is actually great. They will allow payments, but do require some stiff payments for some procedures no matter what. This month it's go another month behind on the mortgage or don't get my wife fixed. Good grief! (I'll split the middle and hit everybody I know up for a few bucks, then do a lot of favors and cross fingers!)
    Yes I'm bitter --sorry. Well, not sorry, but just bitter. Take it for what it is.
    I do read the forum each week and watch the various projects carry on. Keep all this going guys, it's just great.
  23. potatohead
    Not gonna post much about this, save that it means we no longer are under one party rule.
    Been too long. Having some checks and balances back is a good thing long overdue.
  • Create New...