Jump to content


Popular Content

Showing content with the highest reputation since 02/25/2020 in Blog Entries

  1. 10 points
    By sheer coincidence, on Tuesday's episode of ZeroPage Homebew, James posted a poll asking if people used a video mod or stock RF to output video from their 2600s. Overwhelmingly, people answered RF. So the timing of this blog post is pretty good, since I've been working on this particular entry for well over a week. RF tends to have a bad rap with the Atari 2600. It's the standard connection between your console and TV, and was designed for a time when the only input that TVs had was for an antenna (either a pair of terminal screws, or an F-type coaxial cable connector). The reason RF gets a bad rap is twofold: 1) It's fuzzy 2) It's noisy. Now, there's not much we can do about the fuzziness. The reason for that is because of how RF works. The 2600 creates video as luminance (brightness) and chrominance (color) signals. It then takes those signals, and mushes them together into a single composite video signal, and then modulates that with the audio signal onto a radio wave that the TV tuners of the day would see as a channel and demodulate it back into video and audio. So because it's mushing the luma and chroma together, everything gets a bit soft and indistinct. That's just the way RF is. The signal is carrying a lot of stuff that has to be separated back out at the other end. To get a sharper picture means modifying the 2600 so you're taking video and audio directly from the output of the TIA (Television Interface Adapter) chip, before they get to the RF modulator, and then outputting them directly using either a composite (luma and chroma merged) or S-Video (separate luma and chroma) signal, with audio sent separately. To go beyond S-Video requires a special mod that can transcode luma and chroma into either RGB (separate red, green and blue signals) or component video (which is... confusing ). Both further separate the components of the video signal, maintaining the best possible color definition. But modding a console has drawbacks. First, you have to have some ability to solder small electronics. There are no fully plug-and-play mods available. If you don't know how to solder, that means either learning, or finding someone else to do it for you. Second, you're altering your original console, which some people simply don't want to do. Either because of the risk of damaging it, or just because they want to keep it original (although mods can usually be removed). So if you don't want to mod your console, but want the best RF picture you can get, then it's time to clean up the noise. The noise happens because since the 2600 uses radio frequencies to transmit picture and sound, and that signal is susceptible to interference. This can come from just about anything: nearby lights, microwave ovens, hair dryers, fans, electrical cords, air conditioning, power supplies and other electronic devices, and it manifests itself as static on the screen. There's some metal shielding in the 2600 to help reduce this, but most of the noise comes from the connection between your console and the TV set. And this is what we can address. The first thing to consider is where you plug your 2600's signal into your TV. If your TV has an F-type connector and a tuner that can still tune in the (now defunct) analog channels, you can just plug into that. But if you have a cheap TV with a poor tuner in it, that can negatively affect your picture. A bigger problem is if you're using a monitor that has no tuner, and only a composite input. Then you need an external tuner. One option is to plug the 2600 into the F-type connector on an old VCR, tune it to channel 2 or 3, then plug the VCR into into your monitor. But the output you get depends on the quality of the built-in tuner and the video circuitry, and a lot of VCRs were, well, junk. Plus, they're bigger than they need to be, especially if you aren't playing VHS tapes in them anymore. All you really need then is the tuner, or more to the point, an RF demodulator. And you want to get a good one, since that's the thing that's going to separate out that RF signal, and pipe the video and audio to your display. So let's start with that. What I use is a dedicated Sony tuner (TM-1041U), that was designed for use with their professional video monitors in broadcast applications. Fortunately, with the death of analog broadcast TV, these things are all over eBay, and they're usually dirt-cheap. Right now, there are some available for less than $15. Some variants have mono audio only, which is fine since the 2600 is mono anyway, as are many older CRT monitors. I bought a stereo model, so the audio gets sent to both channels in my home theater system. (The audio is still mono, it's just coming out of both speakers.) The demodulator in this is excellent. For one thing, it wasn't a consumer piece of electronics. This was built by Sony for professional use. It was designed to take RF signals and demodulate them back into high quality composite video and audio. It doesn't play tapes, or record shows, or do anything else. It's significantly smaller than a VCR, and it looks cooler too. That said, it doesn't do S-Video. Sorry. If you really want S-Video, your best bet is installing a mod. If you want to get S-Video without a mod, you'll still need a demodulator and then a composite to S-Video converter. But unless you can find one on eBay, decent ones are almost $300. Even then, trying to convert composite to S-Video is like trying to un-mix chocolate milk. You could probably do it, but it's not going to be worth the effort or expense, and neither the milk nor the chocolate are going to come out of it very well. So, with a good demodulator in hand, let's see about improving the noise problem. For all of the examples below, I shot all of the pictures off of a Sony PVM-14M2U monitor, calibrated with a color bar generator (click on any picture for a large version). If you're going to do any work on improving your 2600's picture, the first thing you need to do is calibrate your TV or monitor to color bars. This is simple enough to do with a DVD player and a calibration disc. The 2600 was developed according to NTSC video standards, and if you don't get your display correct first, then anything you do to the 2600 really isn't going to reflect what it should look like. (The same applies to PAL 2600's, but with more lines, and weirder colors. ) All RF signals went into the TM-1014U tuner, then into the monitor's composite video input. The same four-switch 2600 was used for all RF tests. The S-video signals were from a different four-switch 2600, and the signal went straight into the S-Video input on the monitor. First, let's look at how all 2600s were originally connected: the switchbox. This horrible little tin disaster connected to the antenna leads on the back of your TV, and allowed you to switch between your antenna and your 2600. For those with an F-type connector on their TV, you had to add one of these adapters, and attach the switchbox's screws to it: The other side would plug into the back of your TV (or cable box, if you were an early adopter): The problem with switchboxes, besides being susceptible to RF interference, was the switch contacts would get dirtier and dirtier, resulting in an increasingly noisy signal. Here are three pictures from the exact same system. This is using the original Atari RF cable and a switchbox. Here's how it looked, right after installing it for the first time in years: That's Chopper Command, in case you were wondering. I should point out, there is absolutely nothing wrong with this 2600. After giving the switch a good cleaning with contact cleaner, and working the switch back and forth a number of times, I could get a pretty clean signal: But the slightest bump of the switchbox, and I'd get this: And these were the best pictures I could get with the switchbox. Clearly, the switchbox has to go. The simplest replacement is an RCA to F-type adapter: This bypasses everything inside the switchbox, and lets you plug the RF cable straight into your TV. But what do you do if you still need a switchbox? Maybe your 2600 is still sharing an RF input with something else on your TV? Well, get a switch that isn't noisy. A high isolation A/B switch is the way to go. I have one from the late, lamented Radio Shack. But there are others out there. An important thing to remember though - you're increasing the number of cables when using an A/B switch. You have to plug your 2600 into the switch, then run another cable from the switch to your TV. Each cable increases the potential for that noise we want to get rid of. The cables basically act as antennae, picking up whatever stray RF interference happens to be floating around. So let's deal with the main cause of RF noise: the RF cable. Atari's original cable is thin, long, and poorly shielded. It's basically a magnet for interference. Here are three pictures using Atari's RF cable, without a switchbox: Look familiar? A little grainy? (The camera captures static that you don't always see in person, because it's happening so fast. Try taking a picture of your own TV, and see what you get!) Here's another look: See all of the extra noise? So what's the difference between those pictures and the previous set? Well, nothing! It's still the same 2600, the same stock Atari RF cable, and the same monitor. In fact, each of the photos in the second set was taken within a few seconds of the ones in the first set. The only difference is that for the second set, I've moved the RF cable about six inches closer to the 2600's power cord. That brings up a very important tip: keep the power cord under control! I've found that I can reduce RF noise a lot, just by bundling the excess power cord together, wrapping a Velcro™ tie around it, and moving it until the picture noise diminishes. A related tip is that if I bundle up the excess RF cable, it tends to pick up less interference. If you grab the bundled RF cable in your hand, you'll usually see the onscreen noise drop even more dramatically. At that point, your body is basically canceling out the interfering radio signals. (Or something like that.) But holding the cable in one hand isn't really conducive to playing videogames. Maybe you could have someone else hold the cable for you while you marathon your way to that Laser Blast patch. What we really need though, is an RF cable that's better shielded. When I test RF systems, I use a broadcast-grade video cable (the purple one in the photos) with excellent shielding. But having leftover broadcast cable sitting around isn't a practical solution for most people . So I thought I'd look for an off-the-shelf solution. First, I tried out a Cable Matters quad-shielded RF cable (this came in a three-pack, but you can find similar, single cables). This is decent quality but still affordable. The shielding looks like this: Now, that looks like a lot of shielding, but look at the braided part. There are gaps in it. There are more gaps than braid. You can look up the cable specs online, and find out more information about it. For this cable, it says that it has 95% coverage in total. Two braided shields, plus two foil. It also says the cable is "swept to 3.0 GHz". So what does that mean? Well, it's a spec that says how high of a signal frequency the cable should be able to carry. The higher the spec, generally the higher quality the cable. The Atari uses either VHF channel 2 or 3, which at 50-60 MHz is way, way below that. So this should be fine, right? Let's take a look! Now, those do look better than the stock RF cable. But let's move the cable back to where we had problems before: It's still picking up interference. Not as noticeable as before. But as a budget option, this would be fine, and it's definitely going to improve your RF picture. But we can do better. Remember that broadcast-grade cable I used? It's made by Clark Wire and Cable. Here's the shielding it uses: This has two layers of braided shielding each rated at 98% coverage. But again, I only have this because of a few leftover cables from work. To make new ones, you'd have to order the cable by the foot, buy some connectors, and stripping and crimping tools. Can we get something similar, without having to go to the hassle and expense of making our own cables? Well, this wouldn't be much of a blog post if we couldn't! (I'm sure not going to make them for you.) Fortunately, you can pay someone else to make them, and order them from Amazon. Blue Jeans Cable uses Belden 1694A, with really nice Canare connectors. The shielding isn't quite as robust as the Clark cable, but it it has a layer of foil shielding and a 95% coverage braided shield. So it's braided shield alone is effectively the same as all of the shielding in the Cable Matters cable. It's also rated for 6GHz. Effectively, this means the cable should be of higher quality than the Cable Matters one and be able to reject more interference. Here are the three cables side-by-side. The original Atari cable on the left, the Cable Matters one in the middle, and the Blue Jeans one (using Belden cable) on the right. Now, the Blue Jeans cable is expensive. No question about that. But the build quality is exceptional. Even though the cable is about the same diameter as the Cable Matters one, the Belden cable is less stiff (as a point of comparison, the Clark cable I have is so stiff that it's difficult to work with - it's really meant for permanent installations). The Canare connectors on the Blue Jeans cable are actually a joy to use. Most F-type connectors are a pain to tighten or loosen because the part that turns is usually too small to grip comfortably. But the Canare is easy to grip and turns as smooth as butter. So, it's a nice cable that doesn't skin my knuckles when I install it. But what does it look like? Very clean! Every bit as good as the Clark cable. But how does it do at rejecting interference? Well, it's still there. If you have bad RF interference, it's going to show up on your screen regardless of the cable. The goal here is to minimize the noise, and maximize the signal quality. A better cable does equal a better picture. There's less signal loss, and more shielding against interference. But there's always going to be an environmental component. Some of it you can control. Some of it you may not be able to. But you have to at least start with a good cable. Now, replacing a stock RF cable in a 2600 requires opening it up. Fortunately, it's just a few screws to remove, and the RF cable is simply plugged in, either near or directly into a small metal box (the RF modulator). To install the new cable requires an adapter. A new RF cable will have an F-type screw-on connector. The Atari cable used an RCA plug. The problem is, depending on the model, the space inside the 2600 can be very limited. In this four-switch, the cable has to bend at a 90° just above where it plugs in, and then exit out the back of the console. There's no way that the new RF cable will fit there, especially with an adapter on it. It's too tall. But as they say, two wrongs don't make a right, but three lefts do. Or something. So I came up with this: Two right-angle RCA adapters, and an F-type to RCA adapter. This setup adapts the F-type connector to RCA, and then routes it where it needs to go. Before reassembling the 2600, I'll use electrical tape to wrap all of the connectors together. The final RCA adapter that plugs into the 2600 has to have its center post filed down (at right), or it bottoms out before fully making contact. Note the pin on the Atari connector to the left. To see if I can simplify this setup, I've ordered a right angle F-type to RCA adapter. But it hasn't gotten here yet. I'll post an update in the comments if it works. Now, even with a really good cable, RF isn't going to be 100% noise-free. This is still RF and still susceptible to interference. But a high quality cable can make the picture more stable and much cleaner. This is the best RF can probably look on a 2600. It's certainly a lot better than the stock Atari RF cable. And this will work on an Atari 7800, too. Or any console that used a weedy little RF cable to connect to a TV. If you want a truly noiseless picture on your 2600, then you'll need to install a video mod (in this case, a CyberTech S-Video mod, in a four-switch 2600): As a direct point of comparison, here's a color test binary using the Belden/Blue Jeans RF cable: And the same, using S-Video: If you can get RF working without noise though, you won't really mind not having S-Video. As long as you don't think about it too much. Unfortunately, the CyberTech mod is no longer available. But at some point, I'll be installing an Ultimate Atari Video mod, and we'll see how that compares.
  2. 10 points
  3. 8 points
    Creating the Retro Gaming Experience To me, sitting infront of a flat screen TV using some emulator and a wireless controller didn't really provide me with the best Retro Gaming experience. When I first tried playing the old games I used to love on emulation, it just felt empty and stale. I wasn't sure why at first, then it hit me. When I was playing the games, I was looking for that nostalgic experience. I wanted to relive the memories of my youth. Unfortunately emulation wasn't sparking that nostalgic memory. I needed a true Retro Gaming experience. I learned then, there was a difference between just playing a retro game at home and actually "experiencing" home retro gaming. I kinda compare it to the experience of playing one of the new Arcade One-Up machines in your house compared to actually going to a real (retro) arcade. Both experiences are extremely different even though you're playing the same game. So it's the atmosphere that plays a big part in contributing to the experience. (I needed to bring the atomsphere back) So a few years ago I decided to create my own Home Retro Gaming experience by creating a retro gaming nook. I had a small space in the corner of my garage to use as a template. This would take a lot of patience and hunting. Though I had plenty of Atari stuff in my collection, I still needed to hunt out the decor I needed for this retro nook. To sit down somewhere and feel like I went back in time. The act of playing on a old CRT TV, being restricted by cords. The earthy tones of the wood paneling. The simplistic decor of the late 70s/early 80s of my youth. To design something that took me back in time would offer the true experience. My first pick-up was this 1977 Sony Trinitron with matching TV Cart: So during the next year-and-a-half I combed eBay, Facebook Marketplace, Craigslist, and local thrift stores. I not only needed the right decor, but I needed it cheap (I didn't really have much of a budget). Once I accumulated enough stuff to make my design reality, it was time to begin. I decided to dedicate a small corner of my garage for a retro corner. I started with the wood paneling. Luckily, many of the home improvement stores still carries wood paneling for very cheap. After getting the wood paneling up, it was only a matter of laying the carpet down and putting the pieces in the place. When all was said and done I only spent around $300 to complete this project. A lot of the cost savings came with patience. waiting to find the right stuff for the right price without overspending (For example, the TV and cart I was able to pick up for $30). Here was the end result. The final Retro Nook came out better than I imagined. Sitting in this corner playing my Atari, I almost thought I was back in 1983. Even the copper colored wing-back chair was the same chair we had a 1983 (my family never had the heart to get rid of it). People have to remember...... Back in the early 80s, most home decor were still from the 70s (unless they recently remodeled). Add a little stale tobacco smoke to the nook to complete the Retro Gaming experience😂. For the rest of the year I often enjoyed disappearing in my little gaming area to relive some of my nostalgic memories. At times my kids even joined me. It was great to show my children how "dad" played games when he was a little boy. During the next summer I decided to do a redesign of my retro corner. I wanted to make it a themed corner, as well as incorporate one of the old cabinet TVs that I have. I have always been a fan of playing original hardware on original hardware. So I have multiple CRT TVs that my children and myself use. I do have a few cabinet TVs and I had one in particular I wanted to use for my new "themed" retro corner. Here is a old cabinet TV I have in my bedroom. It's the TV I used most of the time before I designed my retro corner. Anyways, since I wanted to redesign my retro corner I decided to do it themed design. I decided to go with a Q*Bert theme which was one of my favorite Retro Gaming characters. It took a while to gather all the stuff I needed for the redesign. I already had an old 1970 zenith cabinet TV I wanted to use, but to find the right Q*Bert themed decor was a little challenging (more specifically the wall art). Then I found the perfect piece. A Q*Bert latch hook rug became available and I just had to have it. I was also able to acquire a orange wingback chair for $20. Here is the final design...... This Q*Bert themed design I was extremely happy with. I decided to get rid of the table to bring back the good ole days of having to sit on the floor to play. Coincidentally enough, I finished this design right around Halloween. I actually had a old early 80s Q*Bert costume (one of those old vinyl Collegeville costumes). My son decided to humor me and put the costume on so I could do a Halloween photo. I tried to use an aging filter to make the photo look a little less "high def". I'm not professional photographer so I did what I could with my cell phone, lol Here was the end result. MY 2020 DESIGN..... In 2020 I decided to shrink up the design a little. To make something simpler, and to design a area that would mimic a image you would see on a Atari Ad. I used a different TV for this one (1984 Zenith). One of the best parts about having this retro corner is being able to spend time with my kids introducing them too the early gaming experience. Due to Covid-19 and spending a lot of time at home, we were able to spend a lot of time playing games together. All in all, creating a authentic Retro Gaming experience is relatively inexpensive and you only need a very small space. Playing these games takes me back to a simpler time. For some reason I find it more enjoyable playing on my retro setups then I do behind a computer screen or on some other type of emulation. The feel of the carpet, the act of inserting the cartridge, the smell of the TV tubes, the sight of the wood paneling, and being restricted to the limitations of technology all help contribute to the overall Retro Gaming experience. This is what I remember, and I find myself actually enjoying playing these old games more as I disappear in my time machine. COVID-19 The summer of 2020 I came across a old 1979 Sony Trinitron. I decided to do a very quick redesign to include that TV, as well as using my Space Invaders wall art I've been holding onto for a while. After I was done my children's school went to "virtual learning" due to the Coronavirus. My kids decided to turn my Retro Nook into a Virtual Learning Battle Station, (where old technology mixes with new technology..😂). I'll end with one last photo. My most recent setup that I may use if I decide to redesign my Retro Corner in the future. It's my 1976 Zeinth gaming station. It's been a blast having this little retro gaming corner. In the past 3 years I have been able to spend a lot of time in my retro corner playing my old Atari with my kids (and creating awesome memories). Hopefully someday I will be able to dedicate a entire room to the simplicity days before the internet. The days before the constant bombardment of social digital stress. Thank you for reading my blog
  4. 8 points
    So, I've been blogging again (in case you haven't noticed). I'd stopped blogging months ago due to the blog software here being a complete, hopeless mess. (This isn't a dig at AtariAge, but rather at InVision who makes the software, and absolutely ruined it during a previous "upgrade". The worst offense being the removal of categories, completely destroying anyone's ability to organize or find content.) What started my renewed interest in blogging was when James (of ZeroPage Homebrew) took me up on my offer to try repairing his RGB-modded Atari 2600 that he uses on his livestream. It wasn't so much the repair that got me thinking about blogging, but documenting the process and writing it all up. I found that I missed writing stuff. Or more to the point, reading peoples' responses to writing stuff. On the rare occasion that happens. You can read the whole repair story in the ZeroPage Homebrew Club here on AtariAge: https://atariage.com/forums/topic/307533-atari-rgb-light-sixer-repair/ Here are the different chapters, if you want to read it a piece at a time: Chapter 1: Unboxing Chapter 2: Tracing the problem Chapter 3: Back to RF basics Chapter 4: Testing the old mod Chapter 5: Repairing some crispy wires Chapter 6: Assembling the new mod Chapter 7: Cabling for the Framemeister Chapter 8: Testing flash carts Chapter 9: Wiring up the new mod, and initial testing Chapter 10: More Framemeister cable fun Chapter 11: Reinstalling the mod Chapter 12: Reassembling and routing wires Chapter 13: Patching the case, installing Molex connectors Chapter 14: Final assembly Truly a gripping saga. At the end of that saga, I decided to repair my own 2600. Again. But first, a little recap of its history prior to that point... I bought my 2600 from Sears as a factory refurbished unit, on August 10, 1981 for $139.99. I still have the receipt: I saved a whole $8 by buying a refurb! Score! Within a couple of years though, the console stopped working, so my dad drove me out to Martha Lake Electronics (north of Seattle) to have it repaired. I'm not sure what they replaced - I think it may have been a capacitor. Anyway, my console worked just fine after that, until it was eventually supplanted in 1987 by my Atari 7800 and put away. The 7800 was likewise put away a few years later when I moved and didn't have the space to bring my games with me. (I did buy a Lynx in September 1991 though. And yes, I still have the receipt for that, too. ) Anyway, I finally started getting back into the 2600 in 2002 when I discovered AtariAge and homebrew games. Upon unpacking my games and system (which had been shipped to me by my parents), I discovered that the springs in the Select and Reset switches were shot, so I ordered and installed a new set of switches from B & C ComputerVisions. In November 2003 I installed a CyberTech S-Video mod, adding it to my Atari 2600 Video Mods Comparison Project (long since out-of-date). In early 2008, my 2600 up and died while I was testing the 2007 AtariAge Holiday Cart (Stella's Stocking). That turned out to be the hex buffer. So I bought a new one, and socketed the new chip for easier future replacement. Then, in 2011, it up and died again. But this time it wasn't the hex buffer. I tried swapping chips with a spare console (a "Vader") given to me by a friend, but to no avail. So the Vader became my daily driver. Unfortunately, it didn't have an S-Video mod, and one of the pins had broken on mine, so I was stuck with noisy RF output. In 2015 I bought a set of populated donor boards from Best Electronics. I had hoped to use them to fix my original console, but I still couldn't make it work. So the donor boards went into my Sears shell, and that became my console for awhile. It wasn't without problems though - since whenever I pressed the fire button, the picture brightness changed. But at least it worked. In 2017 I was determined to fix my console once-and-for-all. I installed a re-cap kit and new voltage regulator, and after some more chip-swapping, finally managed to get it working again. I also managed to fix my S-Video mod. Although it turns out, that fix wouldn't be as good as I thought. But it wasn't fully working. It developed an issue where the console would only work if an AtariVox was plugged into the right joystick port. But it was working enough to use. In 2018, I restored its original chrome-capped switches (because they look super-cool), but the other issue persisted. It wasn't really a problem, except that I could never plug anything into the right joystick port except an AtariVox. No joystick, paddles, keypad, driving controller - nothing. This became a problem when Robotron went into development in early 2020, and I could only test it with dual joysticks on my RF Vader, or my RF 7800. This just wouldn't do. So that brings us to July 2020, where after fixing James' console, I decided to fix mine. Finally. Permanently. So I replaced the RIOT and hex buffer, and removed and reinstalled the mod (to test the console with stock RF out). I also used a Molotow chrome pen to restore the trim around the bezel. And finally, my original 2600 was back! For about a week. Then it died again. So that brings us up to the present. It's been my intention since July to fix my 2600. Again. Permanently. Again. (I should point out by "permanently" I don't mean actually expect it to keep working "forever", but rather that everything gets fully fixed, and nothing is lingering. So "completely" is probably more accurate, although I'm certainly hoping for some longevity.) Since restarting my blog recently, I thought this would be a good time to do the repair, and document it here. Coming sort-of full circle on what got me back to blogging in the first place. But there's another reason, too. Game reviews. (Edit: It's been so long, I actually forgot to write that as Homebreviews. You'd think that would've been almost automatic by now.) I still have a stack of homebrews sitting here to review. And another stack that hasn't been shipped to me yet. And another stack on the verge of being released. I have a lot of reviews to catch up on. And I won't review games on anything but real hardware. And I don't want to review games on anything but my own, original, S-Video modded console. So it needed fixing. And here then, is that story. The problem, is that my 2600 either outputs this (which is supposed to be Pac-Man): Or this (still Pac-Man): Audio, however, works. So is this the TIA? The hex buffer again? The S-Video mod? Well, only one way to find out! Time to tear it open! The S-Video mod is under the metal shield. Thin wires (single-strand wires from an old Cat 5 cable) come out a hole in the top, and go over to a small circuit board I used to test S-Video mods with. It has an S-Video jack and two audio jacks, with a small terminal block to easily connect and test different mods. From there, I plug in an S-Video + audio cable and run it out the back of the console. Originally, the wires were soldered directly to an S-Video + audio cable, but it made disassembly a chore. So having something I could plug and unplug made it somewhat easier to work on. The downside? A 12-foot long cable hanging out the back of my 2600, which I have to unplug from my AV receiver every time I want to move the 2600. I didn't want to install jacks on the back of the 2600 since drilling holes is, well, permanent. Another downside is that running the wires through the top of the shield means that I can't really open the 2600 up, without either disconnecting all of the wires from the board, or leaving it connected and it getting in my way. Here's a closer look at the hookup board. And here it is opened up. See the problem with the board hanging on there? The wires go through the shield, so everything is connected together. The other downside is that while the single-strand wire is incredibly easy to work with, it's not durable. Bend it a few too many times, and snap! At the base of the green wire is a capacitor that's soldered to the mod board, and is also in danger of its leads snapping off (it's happened before). So I decided as part of this endeavor, I was going to rewire the S-Video mod, fixing all of these issues. Mmmmmm... fresh solder! First though, I had to figure out the problem. I removed the S-Video mod, and reinstalled the TIA, just to see if the 2600 was working. Success! Pac-Man booted up and played just fine. So the 2600 itself was healthy. The problem was with the mod. Examining the mod board revealed the problem. Look at the space between the board in the middle, and the socket (which I'd installed as a spacer) below it. It's not even! The lower right corner kept popping back out. Pulling the lower socket off revealed why. A little excess solder on the pins on the underside of the mod was preventing the pins from fully seating into the socket. You could make them seat temporarily, but they'd pop back out. (Note: the blue resistor network isn't the culprit. I had cut a relief into the socket to clear that during the original install). A few quick hits with the desoldering gun later, and the mod snapped back together, fully seating the pins into the socket. Much better! I'm not going to bore you (too much) with the details of rewiring everything. A lot of this was effectively covered in the repair of James' console. But here's the mod, reinstalled, with fresh, new wires. They've been taped flat to go around the front edge of the board (not through the shield). The capacitor is now inline, so the leads aren't under stress. Plus they're protected with some heat-shrink tubing now, too. And finally, with the TIA back in its rightful place. And I only accidentally bent one pin the wrong way putting it back, too! So, with the mod back together. Time to work on the rest of the wires. As mentioned earlier, I wanted to get rid of the ungainly 12-foot cable that I had to drag around behind my 2600. This would now be left plugged into my AV receiver. On the 2600 side of things, I'd use short cables, about a foot long, hanging out the back. These are the sacrificial cables I'd be using, shown below. The audio cable would be from Monoprice (I really like the RCA connectors they use in their Designed For Mobile line), and the S-Video cables are from Clark Wire and Cable. (These were custom made, lossless cables for an S-Video router I had in my office, that has since been retired.) To connect the console's cables to the main AV cable, I'd simply use barrel connectors. First though, testing! Having the old mod test board around (as well as another terminal block to bridge the cables) let me do end-to-end continuity testing. Next, it was time to hook up the cables to a monitor (note the barreled connections next to the monitor), and see if everything actually worked. Presto! My 2600 was finally, fully fixed! Well, almost... Stay tuned for Part 2!
  5. 7 points
    (click on image for supermassive version) 359 < PreviousIndexNext >
  6. 7 points
  7. 7 points
    354 < PreviousIndexNext >
  8. 6 points
    Welcome to part 2 of my 2600 repair blog thing! Didn't have to wait very long for that, did ya'? Part 1 was just getting a little bit too long, so I decided to break this up into two parts. Or maybe three. Probably three. I haven't written that far yet. In Part 1, when I wrote that I wanted my 2600 fixed permanently, there was still one thing that had been bugging me for years... My 2600 has been taken apart and put back together so many times, several of the screw holes are stripped. Two of them are so bad, the screws don't even pretend to bite - they just fall right back out. Two of them in the top of the plastic case... And two are in the aluminum shield. So now, it's time to fix finally fix that too. With these: If you read about James' console repair, you'd recognize the J-B Weld. It's super-strong, steel-reinforced epoxy, and I used it to patch a hole in his 2600's case. But paste wax?? Yep! I was thinking about how to use J-B Weld to fix the stripped holes. I figured I could put some epoxy in there, let it cure, then carefully re-tap the threads. But I wondered if it would actually work, and what that sort of stress would do to the plastic. So I did some searching, and found someone on YouTube who had come up with a better method: fill the holes in with epoxy, coat the screws with a release agent, and let the epoxy set around the screws while they were installed. Then simply back the screws out after the epoxy cures, leaving threaded holes behind! And the paste wax? That was the release agent that worked the best (which is more oily than waxy). Now, it's one thing to do this on a big chunk of aluminum like he did. But would it work with much smaller screws, and not just on aluminum, but brittle 40-year-old plastic? As they say on Project Farm, let's find out! Here are the stripped screw holes. One just behind the fake wood grain panel: And one between two of the switches. Not just stripped, but split open! In the metal, there was one on the corner: And one along the edge, which is used to attach the lower half of the case to the 2600's internals. So this one is kind of important! With James' console I used quick-setting epoxy. But for this, I used the slow-setting version. I didn't want this setting up before I could get the screws in. So I mixed up some epoxy, and filled up the holes: Next, I coated the screws with the paste wax (and believe me, they were greasy!): Then, I simply reinstalled the screws until they bottomed-out: And waited 24 hours for it to cure. The worst case scenario at this point would be if the screws wouldn't come back out. I wasn't going to try and force the ones in the plastic to come out, since they could just break more plastic around them, causing more damage. I figured with the metal I could probably get some vice grips on the screws and give them what-for if needed. But if nothing budged, I'd simply cut the screw heads off with a Dremel. Those holes weren't holding screws anyway, so my console wouldn't have been any worse off than it had been before. First up, I tried removing the ones in the metal. It took a little bit of effort (and a screwdriver with a really good Philips bit), but they backed out of the holes, leaving threads behind! But would it work with the plastic? Or would the torque I had to apply be too much, and crack the plastic? Well, no! Actually, the screws in the plastic backed out almost effortlessly! Again, leaving nice, threaded holes: I couldn't figure out why the screws in the plastic came out easier, until I realized that the screws in the metal have self-drilling tips on them. Basically, it's a groove that allows a screw to drive itself into materials without needing to drill a hole. So some epoxy had filled those grooves, and had to be broken loose before the screws would turn. The screws in the plastic don't have that groove, so there was no resistance when removing them. You can see the groove on the short screw, below. (The longer screw with the blunt tip also has a groove, but it's facing away.) Anyway, the fix worked, and the screw holes are now repaired! Now, how durable they're going to be is another matter. But I'm not going to torque down the screws in those holes very much, and I'm going to be very careful while installing them. If they last long enough to hold the console together for now, I'll call that a win. If in some future disassembly the threads break again, well, I now know how to fix them. Well, this seems long enough for Part 2. Also, I'm about 2/3 of the way through the photos I took, so I think I'll wrap this up in Part 3. Coming... now!
  9. 6 points
    As I've posted before... Oh, right. No categories. Hang on, let me search my own blog for the links... Okay, I'll start over. As I've posted before here, and here and here and here, I've been (and I'm loathe to admit it) collecting video games. But not cartridges. Not prototypes, rarities, or anything like you'd typically expect on AtariAge. Nope, these are arcade games! Tiny little ones. Only 3 1/2" (about 9 cm) tall. Made by Super Impuse, I'd already amassed eleven of them. Now they've added four more classics to their line up! New to my mini-basement arcade are BurgerTime, Mappy, Teenage Mutant Ninja Turtles, and that perennial favorite: Hello Kitty Pac-Man! Uh... what? I don't remember seeing that in the arcades. It doesn't show up in KLOV either. Okay, so it's not an actual arcade game. It's a mash-up cash-in on two profitable properties. Basically, it's Pac-Man with new mazes that are Hello Kitty themed. And they're actually pretty good. This feels very much like it could've been an early 80's hack along the lines of Crazy Otto. I wonder if Bob has seen this yet? I'd also hesitantly call Teenage Mutant Ninja Turtles an "arcade classic". Although popular, it didn't come out until 1989, and arcades were all-but dead by then. At least to me they were. Arcades were mostly just button-mashers and beat-em-ups at that point. But I figured I'd get it to keep a complete set going. But what is up with April's legs? It looks like she shrunk from the waist down. Weird. Playability-wise, Mappy, BurgerTime and Hello Kitty Pac-Man are all really good. Surprisingly so, given how tiny the screens are. All of the gameplay elements (including all of the bonus items and bonus rounds in Mappy) are present. The controls are generally very good, with the exception of the bonus rounds in Mappy. For some reason, moving left/right responds very slowly, and you can't do the fast bounces off of the walls needed to break through some of the trampolines. The rest of the game plays very well though. Teenage Mutant Ninja Turtles is another matter though. They're really pushing the limits of what these little systems-on-a-chip can do. The frame rate is pretty terrible when the enemies start piling on, and while all four buttons work, the form factor is really too small to make effective use of them. Also, strangely, the whole thing simply turns off when your game ends. It doesn't return to the attract screen. I don't know if this is a glitch, or intentional. It doesn't affect the game itself, and given that this is basically a keychain on steroids, it shouldn't be that much of a surprise. As I've mentioned before, these aren't supposed to be arcade-accurate re-creations. These are collectible novelties. That said, they've added some features that I'm sure fans have been asking about. For one, they now save high scores. Previous ones had high score tables, but didn't actually save anything. Now they do, which is pretty cool! Also, Teenage Mutant Ninja Turtles and Hello Kitty Pac-Man have on-screen volume controls at startup. This is most-welcomed, because the volume level in previous games has been really inconsistent (with Space Invaders being noticeably loud and shrill). I'm especially happy with BurgerTime and Mappy, and the other two... well, every arcade had its fillers. Most of the time it was some old Starhawk machine, sitting in the corner. Unloved and sad. Anyway, here they are, as arcade games were meant to be seen: in the dark! Unfortunately, shooting a picture of all of them on my shelf is becoming problematic. For one thing, I'm running out of shelf! So I thought I'd set them up as a little mini-arcade. I need to find better "carpet" though. These are just a couple of placemats. I also still want to 3D print a change machine. The other issue with trying to take pictures of these, is that if you're not actively playing them, they shut off. So I have to go through and start games on every one of them, and hope the games don't finish and shut off again before I can take the shot. Which doesn't always work... Missed another one... And again... Although I suppose it adds to the authenticity by having at least one game not working. Maybe I should print up a little "Out of order" sign. Now, if you've looked at the Tiny Arcade website, you'll notice I don't have any of their tabletop/cocktail games in my arcade. Well, I did buy two of them (I don't have Pac-Man, because it was an exclusive at Cracker Barrel restaurants when it came out), and here they are. They look pretty nice, right? Space Invaders is cool, because it uses the different Space Invaders Part II coloring: So... why aren't they in my arcade? Well, because they got the proportions all wrong. They're way too big compared to the upright cabinets. Way, way too big: Yep, they're huge! By themselves, they look cool, But they don't fit in with the cabinets at all. They should be about this big: But that's just Photoshoppery. So I won't be getting any more of the tabletop versions. Also, because of how the controls are oriented on the front of the cabinets, I find that they're effectively unplayable. But there was no way to know either problem until I had them here. I will keep buying the cabinets though. There are so many other iconic games that would work for these: Bosconian, Scramble, Joust, Phoenix, Xevious, etc. If this keeps up, I may actually have to get a basement! Coming soon... some other videogame reviews.
  10. 5 points
    Yeah. Let's see you get that song outta your head. It's apparently been stuck in mine since 1977, since I remembered it verbatim while writing this blog entry. Note for note. Over and over. What I'd forgotten until looking up the commercial is that it was basically an angle grinder for your face. Anyway, I thought I'd briefly go over the repairs I did for John Champeau's other console, and also cover some tips about how I cleaned it up. Everyone has their own tricks for cleaning a console, and these are mine. Hope you find them useful! This particular console is a four-switch Woody, and has a CyberTech S-Video mod in it. The issue with this console, is that when a cartridge (any cartridge) is plugged into it, the console behaves as if nothing's there. It powers up, but doesn't "see" the cartridge. As with the other modded consoles I've recently repaired (James' and mine), the first thing to do was remove the mod, and see if the console itself worked. It didn't. As an aside, John says both of his consoles perished after lightning hit his house. For what it's worth, I'd highly recommend getting a Tripp-Lite Ultra surge suppressor. I've been using these at work for years in our Mac labs for computers, monitors, peripherals, video projectors, AV systems and printers, and I use them at home as well, and have never lost a piece of equipment to a power surge (and we've had historically bad power at work). A couple of the surge suppressors have sacrificed themselves in the line of duty, but that's what they're supposed to do. Make the investment. (Admittedly, they haven't been hit by lightning... but you've gotta start somewhere.) So, I went through John's console, installed a console5 recap/refresh kit, and tested all of its chips in another 2600. Both the TIA and RIOT were toast. So I replaced those, and... still nothing. At this point, there's either a bad trace somewhere, or some other component that's cooked on the board that would require more troubleshooting than I presently have the time (or equipment) to do. Fortunately, I had a backup plan: McCallister had sent me a couple of dead donor 2600s. One, a six-switch, is going to become the home for my working spare six-switch boards. The other, a Vader, is going to be repurposed for an appropriately sinister project that doesn't require the original guts to work at all. So, with John's permission, that became the new board for his console. It still has his original console's brain in it though, as the 6507 was fine. (Someday I'll take a poke at fixing John's original board. It never hurts to have a working spare.) I had to move the joystick ports from John's board to the Vader board, since one of those ports had a broken pin, and both ports were slightly melted on the underside (where a plastic clip is supposed to anchor each port to the board). I have no idea how they got that hot, unless this was put into a reflow oven at some point, with the plastic parts still installed. After that, and installing a console5 kit and a few chip swaps later, the dead Vader board from McCallister was brought to life. One of the donor chips came from yet another four-switch board that someone had sent to me years ago for my (now catastrophically out-of-date) Video Mods Comparison page. So this system was cobbled together out of (at least) three 2600s. The S-Video mod tested out just fine, but the original wiring was sketchy. The audio and S-Video cables were soldered directly to it, and the wires were very thin and had been twisted up into a knot. So I went through and redid all of the wiring using my usual favorite wire and Molex connectors. This makes any future repair work on the 2600 easier to access. I routed the wires through the RF cable guides in the case. These didn't fit as snugly as they had in my console (plus, I'm shipping this) so I wrapped a little electrical tape around them, and threw a couple of zip ties on there for good measure: I had to make two minor modifications to the main board. The Vader is a different revision than John's 2600, and the crystal clock (the gray chiclet thing) was in the way of the CyberTech board. So I desoldered it, added some extensions to the leads, re-soldered it and just folded it out of the way. (In case you're wondering about the lack of RF shielding, the mod is too tall for the shielding to fit. It didn't arrive with it, so it's going back without it. But since we're not using RF, we're okay.) The other issue was that the pins on the CyberTech mod just wouldn't fit into the new TIA socket. They're just way too thick, and to force them in there felt like I was going to crack the circuit board. I'd run into this with my own console, and had fixed it by replacing the standoffs. For John's console though, I simply inserted a pushpin into each socket, one at a time, gently spreading the contacts. I did this a few times, until I got to the point where the mod's pins fit snugly into the socket, without forcing them. (I tested continuity, to make sure everything still made solid contact.) I replaced the AV old cables with new ones, the same type I used on my 2600. They end up only about 2 feet long, so John will need to use barrel connectors to hook them up, but I checked with him and he said this was okay. The alternatives were long, unwieldy cables hanging out of the 2600, or drilling holes in the case for AV jacks. With the system all tested and working, it was time to give it a good cleaning. Any console almost 40 years old is going to be kind-of gungy, and while the exterior wasn't bad, the rescued board from the dead Vader needed some work. Here's what I used: First up, the switches. Now, cleaning the switch contacts is easy. Just get some good contact cleaner spray, and give them a quick hit, and work the switches back and forth a little. Cleaning the aluminum posts on the main switches... that's something different. They were gross. Have you looked at yours close-up? May not want to. I use Flitz for this. It's a metal polish I've been using since back in my trumpet-playing days in high school. And if something can clean up a high school band instrument, it can clean anything. I just apply it sparingly to a shop towel (the blue paper kind), and start polishing. The key is to keep moving to clean spots on the towel, until the black gunk doesn't come off anymore. This is what the towel looked like from just these four switches. And this is only one side of the towel. The other side is equally dirty. And afterwards? Almost like-new! For cleaning the case, I used the glass cleaner, shop towels and Q-tips. Lots of Q-tips. If you can't fit a Q-tip into a tight space, just flatten out an end with some (clean) pliers, like so: I don't use Armor All though. It leaves a slimy mess on the plastic. I'd rather have the plastic clean than artificially shiny. Now, onto that tip I promised last time. I cleaned up James' console before sending it back, but spaced-out and completely neglected to clean the cartridge slot. Probably because it was working. Previously, I would use a flattened-out Q-tip and some isopropyl alcohol (or contact cleaner) to clean a cartridge slot. But Q-tips never fit properly, often shredded, and just wasn't a great option. Then Fred discovered that a console James had borrowed had all manner of debris from prior cleanings. That sounded not-good. Bits of fuzz and fluff could get stuck in the contacts, making the connections worse. So I thought, "What could I use to clean a cartridge slot, that didn't leave fuzz and debris behind?" And no... NEVER use sandpaper on metal contacts. Shouldn't have to tell you that. So I looked around my work table, and discovered the answer - sitting right there in front of me! By sheer coincidence (again!) I had come up with this cleaning method before James talked about the 1UPcard cleaning cart on his show the other week. The 1UPcard cart looks to be a standard Atari shell, with a pad of some sort where the circuit board would normally be. You add some cleaning fluid (99% isopropyl alcohol), insert and remove the cart a few times, and it cleans the contacts in the slot. For $19.95. My solution? Cardboard. Thin pieces of cardboard. Like you'd find on the back of a small notepad: Find some cardboard just a little thinner than an Activision circuit board (which tend to be thin themselves), and cut it so its a little narrower, and a couple of inches long (which is... some number of centimeters... just wing it). This will let the cardboard make full contact in the cart slot, without forcing the contacts apart (or catching on them). Cutting it narrower means you won't catch it on a corner of the slot (you just need to make sure to clean the whole slot by working over the whole width of it). Just give the cardboard a good soaking with some isopropyl alcohol. If you can't find the 99% stuff, 91% is fine (avoid the 70% stuff, because the other 30% of that is water). You can alternatively use electronics contact cleaner. (And no... I didn't chip the corner off of John's console. This is the dead sixer from McCallister. It had some shipping issues.) Just hold open the cart slot with a couple of small screwdrivers (or coffee-stirrers, or whatever), and insert/remove the saturated cardboard a few times. Does it work? Well, this is from one cleaning of that six-switch: Gungy, indeed! The best part? If the end gets dirty or frayed... snip it off! Now you have a fresh cleaning pad! This also works for the 7800. You just have to also cut a narrow strip to do the two sides: I cleaned John's consoles and all of mine using this method, and it worked great. I was kind of surprised how dirty the cardboard came back, when I know I've cleaned some of those consoles before, and not all that long ago. One console in particular was really problematic playing Activision carts before being cleaned. Afterwards? No problem. Even my Pitfall! cart works, which has been historically sketchy. (Be sure to clean the contacts on your carts, too. A Q-tip and alcohol or contact cleaner works fine for that. Again, NO SANDPAPER. Were you raised in a barn or something? I shouldn't have to keep reminding you.) Anyway, here's John's S-Video console, all spiffed up, tested, and ready to ship back.
  11. 5 points
    I inaugurate my blog to show this little silly project of mine (mostly because I'm not sure in which forum would make more sense to post it...) Every once in a while I cherish the idea of building a routed track and buy a few slot cars to play with, and so I browse some websites and forums on the subject, looking for examples, construction techniques and wiring schemes. One of the aspects that increases the fun is a lap counter/timing system which also allows to play alone "against the clock". Other than commercial ready to use systems, there are a lot of DIY solutions from software running on a PC to standalone devices built using an arduino or other microcontroller. After looking at some of these examples, I thought that the Atari 2600 would serve the purpose just fine: it has several I/O pins available on the controller ports to read the sensors and also, for example, controlling a starting light and a relay to automatically power on/off to the track, and a video output to display the data. Moreover, in my scrap-parts bin, I had an old 5" B&W CRT surveillance monitor with some burn-in and geometry issues, but otherwise working and that would be ok for just displaying some numeric values, and a board from a 6-switch 2600 which only display in B&W (That's actually the console I mentioned in my very first post here, many years ago...) So after a few weeks, I came up with this: The thing is entirely made out of recycled parts (even switches, leds and connectors were scavenged from old electronics), because I'm cheap I care about the environment. I also mounted a practical handle for transportation.😄 The monitor has a few dents and scratches, which gives it a worn look. I like it this way. The software manages tracks with up to 4 lanes, displays lap times and gaps with 0.01s resolution and it's extremely simple to use as there's no configuration and the only option is to set the time and number of laps for race duration. The display shows rather simple graphics (sufficient for this application), the digits are flicker free and easy to read (at least with up to 3 lanes. With 4 lanes, the resulting 13 rows of text are quite a bit compressed vertically), and there are enough cycles free to check the inputs often enough (5 scanlines is the maximum time between two consecutive polls of the sensors. That is, if I counted cycles correctly). Among the features there's the ability to control an external starting light and/or a relay for power and the transmission of the lap times to a PC through a serial connection. Here are some pictures of the inside. To free some room, I removed the power supply section of the monitor, so now it's powered by an external regulated 12V power supply rather than directly by the 220v mains. I had to shorten the Atari board to make it fit inside the metal case, mounted vertically on one side of the tube, and then restore some of the tracks that were cut with jumpers. I also removed all the components which were not needed, like those for the color generation circuit, including the extra PAL oscillator, and also had to relocate some components (the quartz crystal interfered with the CRT tube). I used a bare cartridge board to mount the eprom with the custom program and modified the cart connector so that it ends being parallel to the main board. Still, I need to loosen and rotate the yoke around the CRT neck, if I want to unplug the board (I had to do that a couple of times to reprogram the eprom because of late bug-fixes) Finally I wired the connectors and switches I needed to the corresponding RIOT and TIA I/O pins. I used a single 9 pin male socket for connection to the track. There are 4 (RIOT) pins used as inputs from the sensors, 1 (TIA) input to select polarity of the pulses, and 2 (RIOT) pins as outputs to drive a starting light and/or a relay. The female 9 pin connector is RS232 serial port to optionally transmit data to a PC. The port includes a TTL to RS232 kevel converter circuit built using discrete (recycled of course) components. I also added a small audio driver for a speaker, with volume pot and on/off switch (a bit overkill, as the sounds only consist in a few beeps...). Finally there are 3 push buttons to control the software: two on the front for the main functions (wired like the SELECT and RESET switches on a full console, but with inverted logic, because the switches I used are normally closed) and a smaller one, mounted on the rear panel wired to the pin normally used for the right difficulty switch, which is rarely needed (it's used to abort a race, to skip the starting procedure, or to reboot the software). I still had the old plastic 1/43 scale track from when I was a kid in the attic, and used that to test the thing. I decided to go with optical sensors, consisting in IR emitters mounted on a "bridge" positioned over the track (which also holds the starting lights) and photodiodes mounted under the surface. Again I used scrap parts: a small piece of aluminum square tube, and some sheet plastic cut and glued together. The IR emitters are from a couple of old remotes, while the photodiodes are scavenged from "dusk to dawn" sensor light bulbs. here a few pictures. You can see the two sensors mounted on the base, the track section where the bridge is positioned has two corresponding holes drilled. Here are the IR emitters, on the bottom of the bridge In this video you can see a short 5 laps race test (I found impossible to control both cars at the same time, so I just run them at reduced speed to shot the video). The laptop on the left is connected through the serial port (actually an usb to serial adapter), and you can see the lap times displayed in the terminal window on each pass. The system seems to work reliably, with no missed laps in my tests. I also made a version of the software that works on a standard console, so that I could quickly test it in Stella and on real hardware with an Harmony cart. Apart for the slightly difference in managing the console switches, this version is in color (😄), and can optionally display a (blocky!) starting light on screen. Here are the roms (for different TV systems), in the unlikely case someone wants to give it a try (You can simulate the car passing over the sensors by connecting a joystick to the right controller port. the 4 lanes correspond to UP,DOWN,LEFT and RIGHT directions). laptimer2k6.zip Here's the manual (in Italian or Poor English...). laptimer2k6_docs.zip P.S. if you can't find an opponent to race against, a TI 99/4A computer can act as a substitute!
  12. 5 points
    And now... the conclusion of my 2600 repair blog thing! Or rather, the conclusion of this particular 2600's repair. Oooo... foreshadowing! If you're looking for Part 1 or Part 2, well, there are links to them around here somewhere. With the holes repaired, it was finally time to put everything back together. As with James' console, I wrapped the wires around the front of the board, and underneath it. Flat-taping them together, and using a little unshrunk heat-shrink tubing to keep things neat. I then attached the base, loosely putting all of the screws in, before tightening anything down. I did this so that I could be sure the screws in the repaired holes were going to all line up perfectly, without having to drive a screw in from an angle. The wires neatly fit through a pre-existing gap in the shield cover: Next, I crimped pins onto the wires coming from the mod: And inserted all of the pins into one half of a Molex connector: Then I crimped sockets onto the audio and S-Video cable (I added some heat shrink tubing to help with color coding): And pressed those into the other half of the Molex connector. In hindsight, I should've stripped the wires further back, because I barely had enough space to maneuver the pins into the connector. Next time. When I installed the old S-Video cable, I had to slightly enlarged the factory hole that the RF cable had been fed through: By complete accident, the Molex connector fit through it without needing any further modifications. I attached the bottom of the case to the 2600's guts, and the screw seated into the newly repaired hole very solidly and reassuringly! With that, I only had to plug the Molex connector together to finish the wiring. The Molex connector allows much easier future disassembly of the console. Hopefully, having gone to all of this work, I'll never actually need to use it. Once connected, I fed the S-Video and audio cables through the wire guides inside the 2600 (where the RF cable had originally been). They fit just snug, without pinching. A perfect fit! So at this point, I could fully test the rebuilt system. I plugged in Pac-Man and... there was no color! What happened?!? Of course, it took about a second to realize that the TV Type switch was set to Black and White. Duhr. Pac-Man loaded and played fine! Well, as much as it ever did. Oddly enough, using Pac-Man for my test cartridge has actually given me a little kinder view of it in hindsight. It's not really a bad game. It is a bad port of Pac-Man. But taken on its own, it's not awful. Certainly not like Karate (or as I prefer to call it, "Dancing Diaper Stickmen"). And with that, final assembly and testing! My Harmony cart works. My AtariVox works. My 2600 works without my AtariVox. It is, finally, after all these years, fully sorted. After this, I moved it back into my living room, and hooked it back up to my AV receiver and TV. It's nice to have that repair done! But that doesn't mean I'm done repairing...
  13. 5 points
  14. 5 points
  15. 4 points
    Well, I figured before the last list hit three years old, I'd better replace it with a new one - clean out the completed projects, update existing ones, and add a few more. Latest updates are in red. Homebrews in development: "Not a SuperCharger Game"* Game graphics: Early development. Development status: Speculative project. 2-15-21: New homebrew project. "Historical Documentary"* Game graphics: Early development. Development status: Speculative project. 1-18-21: New homebrew project. Lady Bug Arcade Game graphics: In progress. Development status: Active development. 1-12-21: Lady Bug Arcade for the 2600 announced by Champ Games. 1-19-21: Added to to-do list. Game graphics in progress. 2-12-21: Lady Bug Arcade debuted on ZeroPage Homebrew. Qix Game graphics: Early development. Development status: Early development. 7-19-20: Proof-of-concept Qix for the 2600 posted by Champ Games. 1-19-21: Added to to-do list. Zeviouz (was "Starts with a 'Z'")* Game graphics: In progress. Development status: Active development. 5-9-20: New homebrew project. 5-23-20: First pass at graphics completed. 8-18-20: "Starts with a 'Z'" officially announced as Chris Walton's port of Xevious. 1-15-21: Zeviouz for the 3rd Annual Atari Homebrew Awards: Best Work-in-Progress (Port). 2-6-21: Zeviouz won Best 2600 Work-in-Progress (Port) in the 3rd Annual Atari Homebrew Awards. Frantic AtariVox voices: First pass complete. Development status: Active development. 8-18-20: Added to "Homebrews in development" list. First pass at AtariVox voices complete. 1-15-21: Frantic nominated for the 3rd Annual Atari Homebrew Awards: Best Work-in-Progress (Port). RobotWar: 2684 (was "Ambidextrous")* Game graphics: In progress. Development status: Active development. 3-23-20: New homebrew project. 4-14-20: First pass at graphics completed. 5-13-20: "Ambidextrous" officially announced as Champ Games' port of Robotron: 2084. 1-15-21: RobotWar: 2684 nominated for the 3rd Annual Atari Homebrew Awards: Best Work-in-Progress (Port). Champ Sports Baseball (was "Trash Can")* Game graphics: In progress. AtariVox voices: Planning stages. Development status: Early development. 2-2-20: New homebrew project. 4-9-20: "Trash Can" officially announced as Champ Games' first sports title: Champ Sports Baseball. 1-18-21: Game graphics in progress. Gorf Arcade (was "Neville")* Game graphics: In progress. AtariVox voices: In progress. Development status: Active development. 4-2-19: New homebrew project. 9-16-19: "Neville" officially announced as a Champ Games port of Gorf! (And yes - it will have all five screens!) 10-30-19: First pass at graphics completed. 2-23-20: First pass at AtariVox voices completed. 1-15-21: Gorf Arcade nominated for the 3rd Annual Atari Homebrew Awards: Best Work-in-Progress (Port). Homebrews previously in development, but currently on hold: Elevator Action (was "Otis")* Game graphics: In progress. Development status: On hold due to issues with Bus Stuffing driver. 11-18-15: New homebrew project. 1-27-17: First pass done on title screen graphics, character sprites are in progress. 3-15-17: Character sprites mostly finished. 11-2-18: "Otis" revealed to be John Champeau's port of Elevator Action. Boom (was "Black Squirrel")* Game graphics: In progress. Development status: On hold due to issues with Bus Stuffing driver. 3-3-17: New homebrew project. 3-3-17: First pass at title screen graphics and sprites finished. 7-13-18: "Black Squirrel" revealed to be Chris Walton's port of Bomberman titled "Boom". Homebrews not currently in development, but not completely dead, either: 2600 Toolbox (tentative title) Description: At some point, I need to make a Stupid Game Ideas! entry for this. The idea is to vastly expand upon the idea of the Test Cart, including color calibration patterns, hardware tests, sound tests, and various patterns for checking color combinations, flickering, and so forth. The cart can be used to test consoles, set up TVs, and be used by homebrewers and artists while developing new games. Development status: I have a list of things I'd like to see in it, I just need to write it all up, then hope a developer finds it interesting enough to pursue. "Bruce"* Development status: Interest has resurfaced in this project. It's pretty far on the back burner, but may yet see the light-of-day. Miscellaneous projects: Blog Finish up "Homebrew Art" series. Blog More "Stupid Game Ideas". Blog More homebreviews. I need to start slogging through a huge backlog of games. ArcadeCinema.net Update old MacMAME.net video game movie reviews and redesign website. Cheeptech.com Update 2600 Mods Comparison Project. This is sorely overdue for an overhaul. 2600RM I want to build a custom, rack-mountable 2600. Could be expensive... could also be awesome. Tronty-Six Hundred An Atari 2600 Tron console mod. Yes - I want to make this happen for real. * As always, project names that are in quotes are code-names, and not the actual titles.
  16. 4 points
  17. 4 points
  18. 4 points
    In my previous entry about improving RF on a 2600, I mentioned that I wanted to try two additional changes: A different, more flexible RF cable A different F-type to RCA adapter So, I made those changes! And now I'm blogging about them! Exclamation points!! (I figured a new blog entry would be better than trying to squeeze all of this into the other entry's comments.) For the cable, I went with another cable from Blue Jeans Cables, this one using Belden 1505A coax. The 1505A (in the middle) is a lot more flexible than the previous Belden cable I got from them (on the right), and is also more flexible than the cheap Cable Matters ones I got from Amazon. The original Atari RF cable is on the left: So, how does it work? Well, the picture quality is every bit as good as the previous, heavier cable: That said, you still need to keep it away from sources of RF interference. In this case, the 2600's AC adapter: So I'm definitely going with the 1505A cables from this point on. For my 7800, I'll be ordering one just a couple of feet long, because that console sits right above the Sony tuner I plug it into. For the new adapter, originally I used an F-type to RCA adapter, plus two right-angle RCA adapters. This was necessary to route the cable where I needed to plug it in: The new adapter (on the left, from Max-Gain Systems) is an F-type to RCA right-angle adapter. So this replaces two of the previous adapters: You can find similar adapters on Amazon, but I went with this one because the center post is already shortened. So if you have a 2600 where you can plug this in directly, you don't need to file down the post. (Different revisions of the 2600 used different RF modulators, and the locations of the RCA jacks varied.) With the previous adapters, the RF cable couldn't bend before hitting the back of the 2600's case: But with the new adapter, it gains that crucial extra space: If you'd read my previous couple of blog entries, you'd know that I've been running all of these RF tests in a 2600 "Vader" that John Champeau sent to me to repair (along with another console). The original problem with this console was that the joystick control always moved right. Always. Whether there was a joystick plugged in or not. So I desoldered and socketed in a replacement RIOT chip, and that solved that issue. I also installed a refresh/cap kit from Console5. (BTW, if you're wondering where the caps should go, mojoatomic posted instructions here.) With the console working again, I figured I'd work at improving its RF output, and get a couple of blog entries out of it in the process. To install the new RF cable, I had to modify the 2600's case very slightly. I had to enlarge the hole for the original RF cable by a couple of millimeters. Just enough for the connector to fit through. To make the connector fit through, I had to slide the strain-relief boot down the cable: Fit the connector through the case: Then squeeze the boot through: The cable exits through the main hole. To make it fit through the original RF cable's notch (next to the hole), I would've had to file the notch out a lot more, and I didn't want to risk breaking the plastic. With the cable through, I attached the two adapters, wrapping electrical tape around the RCA connectors, so they wouldn't come apart: Then I positioned the circuit board, and plugged the cable in (I checked the angle before taping the RCA connectors): Then, I brought the two halves of the case together. You can see how little space there is above the adapters: In fact, they touch the top part of the case. But there is enough room for them! And with that, and a bit of a clean-up, the Vader was all ready to be packed up and shipped off! Well... almost. After getting it back together, I thought I should go through and test everything. I knew that joysticks worked, but I wanted to make sure everything else worked - paddles, an AtariVox, etc. So I plugged in some paddles, and... nothing. I tried them on TestCart, Warlords, Medieval Mayhem... nothing. I pulled the RIOT and tested it in another 2600. Everything worked fine there. So I desoldered and socketed in a new TIA. And that fixed the problem. (BTW, if you do much in the way of console repair, I can't recommend getting a proper desoldering gun highly enough. I used to own a cheap little Radio Shack one, and while it worked, the Hakko one I have now is much faster, much safer, and does a much better job.) And with that, the console is finally back together, fully tested and working, and ready to go. Next time, I'll tell you a little bit about the other console John sent me, what had to be fixed on it, and the best cleaning tip you've ever heard in your entire life!* *Note: May not be applicable, depending on how many cleaning tips you've actually heard about in your entire life.
  19. 4 points
    I've always wanted to get a list of volumes in my nanoPEB/CF7 from XB without having to mount the cfgmgr disk. I think I may have found a way using the utility XMOUNT. With XMOUNT you can mount CF7 volumes from in a XB program (see attached file) by loading a little assembler utility. So to get a list I wrote a program to mount each volume in drive 1 then print out the name, go onto to the next and so on. It's not real fast but its not all that slow either. takes about 5 sec to make a listing of 23 volumes on the screen. I plan to integrate it into a more useful menu program later. here's the program (note: the XMOUNT disk needs to be mounted in drive 1): 100 CALL CLEAR 115 PRINT "LOADING XMOUNT" 120 CALL INIT 130 CALL LOAD("DSK1.XMOUNTOBJ") 150 FOR I=1 TO 20 160 CALL LINK("MOUNT",1,I) 210 OPEN #1:"DSK1.", INPUT,RELATIVE,INTERNAL 220 INPUT #1:A$ 230 PRINT I;A$ 240 CLOSE #1 400 NEXT I I'm sure there are ways to speed it up such as in-bed the xmount .obj into the XB program. But this gives the idea and the program for others to mess with. some other nice features of XMOUNT is you can mount permanent (thru reboot) or temporary (reboot sets back to previous). Also can get list of the volume number that is in your drives. I got all kinds of plans for this little utility. Here is the original link to Guillaume Tello’s website the creator: https://gtello.pagesperso-orange.fr/ti99_e.htm he will always have the latest update. If for any reason that doesn't work here are the files and doc. CF7XMOUNT.dsk XMOUNT.txt
  20. 4 points
  21. 4 points
    While getting ROMs together for Nathan for his RetroN 77 contribution to the Stella-thon 12 Hour Gaming Marathon Fundraiser! event I realized I've yet to publish the final ROM for Draconian. ROM: draconian_20171020_RC8.bin Source*: draconian_linux.zip * linux is in the zipped directory name because I used my Linux laptop to finish Draconian on the way to PRGE.
  22. 3 points
    All this talk about Microvision (seeing the new screen topic, reading the Microvision Homebrew thread), made me wonder how my Microvision has held up since the last time I played it. So I got out my Microvision from the cold pantry. Had a little trouble putting in the 9V battery that was in the storage part of the battery compartment, but I forced it in and turned it on. Success! My Star Trek: Phaser Strike copy still works. I updated my Microvision website with info about the world's first Microvision homebrew (a link to the AA thread). I wondered what my idea of a homebrew starring the letter H would look like on a Microvision. So I designed this mock-up: Not bad. The line in the sky is a cloud. I needed something to tell visually the h is walking forwards instead of just moving his "legs" in place. I don't know whether any of that is actually doable on the Microvision, though. A while back I made a game similar to this on the Odyssey 2 about a lowercase i. Both came from a comic I drew a long time ago about h's invading g-land. So I guess i's will be easier to draw since it's just a vertical line, if they'll appear in this game. I'm going for a Super Mario Bros. Game & Watch type thing here. But I kind of doubt it will ever get past the idea phase. I made the mock-up because I was bored. The name of my idea is "h". I guess the shortest video game title ever. And I really want Barrage 2021.
  23. 3 points
  24. 3 points
    So you may ask "Wait... why are you reviewing this film??" Well, it's not the 2004 movie where the world is destroyed. Nor is it the 1983 TV movie where the world is destroyed. Nope. This is the 1975 TV special produced by Gerry Anderson of Space: 1999 and UFO fame. (And also Thunderbirds... but that never aired where I grew up, so I never watched that show.) And the world isn't destroyed in this one. Although it does make reference to us having ruined it by destroying the environment. I miss the days when science fiction was still fiction. It was produced between the first two seasons of Space: 1999; co-starred Nick Tate from Space: 1999; was narrated by Ed Bishop from UFO; and the visual effects were supervised by Brian Johnson, who was responsible for the effects for Space: 1999. And it's incredibly obscure. But I remembered it. Even though I'd never seen it. I'd only read about it. Once. Things like this have a tendency to stick in my brain. For example, the rumors about the Empire Strikes Back from Starlog magazine that I wrote about in my review for The Force Awakens. Or the photo from Midnight Madness at the top right of this page from the same issue that stuck in my brain for over 20 years until I finally watched and reviewed the movie for my old MacMAME.net website. In the case of The Day After Tomorrow, this article from Starlog, in September 1979, stuck in my brain for over 40 years. Ever since reading that article, I wanted to watch The Day After Tomorrow, but there was no way to see it. It was a one-shot TV special, and never aired again. Periodically, when I'd see a reference online to Space: 1999 or UFO, I'd think "I wonder if that other thing Gerry Anderson did is online somewhere?" But I didn't see it. Maybe just a short video clip here or there. And certainly, it was too obscure to ever come out on home video. Right? Well, never underestimate the niche fan market. Because some months back, it popped up in my recommendations on Amazon in a DVD collection of Gerry Anderson rarities titled: The Lost Worlds of Gerry Anderson. It actually came out a few years ago, but I only just recently bought it because, well, I've been looking for stuff to watch during the Coronavirus pandemic. Not because I'm stuck at home (I go into work most every day), but more for the distraction. I recently bought a stupid thing because of this too (which I'm enjoying watching very much, by the way). Now, I'm not going to review the whole DVD, because I haven't watched all of the other content (just skimmed it) and the rest of the materials on it aren't of any real interest to me. The Day After Tomorrow is what I bought this for. So... did it live up to 40 years of expectation? Well, of course not! For one thing, I'd forgotten that it was meant to be one in a series of educational programs. In this case - trying to explain Albert Einstein's theory of relativity to kids. (Just re-read that sentence for a minute, and let it sink in.) But the network didn't want a documentary, they wanted an adventure film, so the kids would get engaged and hopefully develop an interest in science. Anderson also had hopes of it being picked up as a series, so the story was left open-ended so it could serve as a pilot. The story centers around the crew of the ship Altares, the first ship capable of near light-speed travel. The crew consists of two kids, two dads and a mom, which was a bit confusing because they didn't really introduce who they were and what their relationships were to each other. (It turns out that one was a single dad with his daughter, and the others were two parents and their son, but you'd never pick that up from watching it.) Their mission is to travel to the nearest star - Alpha Centauri - and explain to the audience what redshift is and how time dilation works. Then they have to decide if they want to return to Earth (where everyone will be much older than they are), or continue on to explore other worlds. And then some other things happen, one of which involves the heavy use of shooting scenes reflected off of mylar that someone gets to wobble around a lot. And they get to explain what a red giant and supernova are, and a black hole, and probably some other stuff. Because of the educational angle, short run-time (under an hour), and made-for-TV nature of it, The Day After Tomorrow plays a bit like something that Filmation might have made just a couple of years later (Ark II, Space Academy), but with higher production values and slightly-less-cheesy dialogue. Plot-wise, it's Lost In Space meets The Black Hole. But without Dr. Smith or Hans Reinhardt. Or robots. That's not to say it's bad... but rather that you have to find the entertainment in it where you can. For me, it was in the first-rate models and sets that echoed what was being done on Space: 1999 at the time (which, apart from 2001: A Space Odyssey, were the best* in sci-fi until Star Wars came along). Also, there's the wonderful, unintentional cheesiness of it at times. Such as the moment where they have to shut down the malfunctioning Photon Drive, which means Nick Tate has to pull on a lever REALLY hard! Pull harder Nick!! Pull for your life!!! (Because an "off" button just wouldn't be any fun.) Or when the resourcefulness of the prop department shines through, and he has to fix the aforementioned, highly advanced and complex drive using a pop-rivet tool. Some of the other entertainment came from seeing similarities to sci-fi that came both before and after this aired. Besides The Black Hole, Star Trek II: The Wrath of Khan may owe a nod to this film for a scene in which Nick Tate has to go into a radiation-flooded engine compartment, and effect a repair nearly identical to what Spock had to do with the Enterprise seven years later. Coincidence? Probably. But the comparisons are still... fascinating. The Day After Tomorrow is just under an hour long, and it's an interesting artifact from the era of 1970's science fiction. For me, it was worth the cost of the DVD to satisfy my 40-year long curiosity about it. But for someone else, is it worth hunting it down? Well, no. Not unless you're a fan of Gerry Anderson, or are looking for a Saturday Morning kids' TV introduction to the theory of relativity. For what it is, The Day After Tomorrow gets a 5/10. (I wanted to come up with some clever mathematical joke for the score, but math and I never got along very well.) * (Yes, I'm aware of Silent Running - I have it on Blu-ray. I may get around to reviewing that as well, but it's a depressing movie, and I don't need anymore of that right now.)
  25. 3 points
    Continuing on with the continuation of my blog (and because I've only written 5 episodes of Artie so far), it's time for the return of the Spoiler-free review! Unfortunately, because of the Coronavirus pandemic, there aren't any movie theaters open around here. And even if there were, frankly, I wouldn't go into one right now unless the audience members were all sealed up in giant Ziploc bags and wiped down with a bleach solution, which would kind of negatively impact the whole ambience of the place. But there have been some movies that were slated for theatrical release that have been made available on streaming services (in this case, iTunes), so we'll just go with a couple of those. I've always thought that Bill & Ted's Excellent Adventure was one of the best (or certainly most fun) time travel movies. It had a goofiness and charm to it, was genuinely funny, used time travel very cleverly (by completely ignoring paradoxes) and had two extremely likable characters in Bill and Ted played by Alex Winter and Keanu Reeves. The sequel - Bill & Ted's Bogus Journey - wasn't as much fun, or quite as clever, but avoided the pitfall of just repeating the first film, and still managed to have some fun moments. The high point was William Sadler as a brilliantly funny personification of Death. The ending, while not as clever or satisfying as the first film, seemed to tie up the storyline for the two lead characters as they performed for a worldwide audience, fulfilling their destiny. A third movie had been rumored for years, and was officially announced two and a half years go. It was one of those projects that made me think "Why?" At that point Reeves and Winter were already too old to play the same daft but lovable high schoolers. And what would they do? They'd already fulfilled their destiny, hadn't they? Bill & Ted Face the Music answers that question by revealing that no - they hadn't. In fact, they were now middle-aged has-beens, and the end of the second movie wasn't the end of their story. What makes Face the Music work is how effortlessly Winter and Reeves fall back into these characters again. They're still earnest, likable, and somewhat daft (perhaps naive is a better word), but - and this is the important part - they've grown. They've been trying desperately for the past 25 years to write the song that would unite the world, and they've worked hard at it too. They've learned all about music, released album after album, and raised their daughters to have that same passion for music. It feels honest - that these two characters really are the same ones from decades earlier, but they haven't stagnated. The movie doesn't try to make time stand still (pun intended) and keep these characters stuck in the past. They've been trying their best. Older, wiser, but still unmistakably Bill and Ted. Bill and Ted's two daughters (Brigette Lundy-Paine and Samara Weaving) are fun to watch interacting with their dads, with Lundy-Paine particularly doing a most excellent job of picking up Reeves' mannerisms. William Sadler makes a welcomed return as Death and falls right back into character. Several other characters from the first two films also return (although a few were re-cast) and really help this feel like a continuation of the original films. A fun new addition to the cast is robot from the future played by Anthony Carrigan. As weird as the universe of Bill & Ted has become, he fits right in. The film revisits some of the tropes from the first two films, but without merely repeating them. The humor and writing style picks up right where the previous films left off, and the whole film feels very much like it belongs with the first two (it helps that the original writers from the first two movies were behind this one as well). The writers, cast and crew clearly had fun making this. Kudos especially to Reeves for being willing to step back into the role when he's become one of the biggest action movie stars in the world. He really didn't have to do this for any other reason than for the fun of it. Clips shown during the end credits tie the movie into how people from all across the world are using the internet to collaborate musically during the pandemic. It was genuinely (and surprisingly) emotional and is actually my favorite part of the film. (And yes... there's a post-credits scene too. Stick around, or fast forward, for that.) Since I didn't own the first two films in HD (only DVD for the first film), I bought all three on iTunes for only $30. That's about what it would cost to go to a nice theater (with snacks) to see just one movie, so it was definitely worth it, especially to re-watch the first two films again before seeing this one. Bonus features are minimal. Bill & Ted Face the Music is fun, light, and heartfelt entertainment. If you liked the first two films, you'll enjoy this one. It's not as good as the first, but better than the second, and it does a most excellent job of concluding the trilogy. And right now, in the midst of 2020, you can do far worse than that. Bill & Ted Face the Music gets a most non-heinous 7/10. Be excellent to each other!
  26. 3 points
    347 < PreviousIndexNext >
  27. 3 points
  28. 3 points
    The ELF computer, which first made its appearance in August 1976 in the Popular Electronics magazine, was a very basic experimenter's board based on the RCA CDP1802 CPU, a rather obscure processor primarily used in embedded systems by the likes of the DOD and NASA. It's main advantage was its simplicity of interfacing and ease of programming. Needless to say that the ELF developed a large following as many hobbyists built their own boards from scratch using the published details in the magazine, and several companies sprung up offering upgraded versions of it. Here's the original article: PopularElecELF.pdf A modern iteration of it is the so-called Membership Card designed by Lee Hart, which reduces the ELF to the size of an Altoids tin, adds 32K of memory (as compared to the original 256 bytes) and replaces the hexadecimal display with a row of LEDs. It also conveniently incorporates a DB25 connector with the computer signals routed to it for easy interfacing. In fact, it is still being developed and sold here. The ELF is programmed by entering CDP1802 machine language in binary using the 8 data switches, and as you might imagine this could become extremely tedious for long programs and very error prone, not to mention the horrendous debugging process using just this set up. Incidentally, I did write a basic monitor for the ELF which could help alleviate the difficulty of program development called ELFMON, and it can be found on the attached disk, but it was still clunky at best. Happily, there was a far better way to go about programming the ELF, using a full-fledged computer to write the program in 1802 assembler, assemble it, and transfer it directly to the ELF using the DB25 connector. And while this could be done using any computer, I decided to do it using the TI 99/4A computer. Essentially it became a retrocomputing project inside another retrocomputer! 😊 The way to go about this is to place a byte on the data lines of the ELF's connector (pins 2-9), toggle the ELF's input switch using pin 1 to store the byte in the ELF's memory, then repeat the process for the rest of the instructions. Clearly, the TI's parallel port would be ideal for this, so I created an adapter cable to connect it to the ELF. The pinout is as follows: TI PIO ELF DB25 1 -------------------->1 2 -------------------->2 3 -------------------->3 4 -------------------->4 5 --------------------->5 6 -------------------->6 7 -------------------->7 8 -------------------->8 9 -------------------->9 12 ------------------->14 From there, it was just a matter of software. The ELF program can written directly on the TI using any one of the available text editors, with the following format: <label><opcode><operand><comment> Each part needs to be separated by a single space. The label is optional and can be up to 6 alpha-numeric characters, the opcode cannot exceed 4 characters, the operand cannot exceed 7 characters, and the comment is optional and of arbitrary length. When referring to a label in the operand field, the label needs to be preceded by a *. Register numbers should be entered as a single hex digit from 0 to F. Numbers should be entered as either 2 or 4 digit hex digits from 0 to F preceded by a >. For example F is entered as >0F. B41 is entered as >0B41. Finally, the last opcode of the program should be the reserved word END . If the formatting is wrong, then the assembler output will be wrong as well! Once the program is typed in, it should be saved in the standard TI DV/80 format. I wrote a primitive CDP 1802 assembler in Rich Extended Basic (RXB) which is my favorite interfacing language because it has facilities to access hardware at the low-level. The assembler is sloooooooooow, but hey it beats flipping switches! The operation of the assembler is self-explanatory: just follow the prompts. Below is a listing of the program: //1802 ASSEMBLER FOR ELF MEMBERSHIP CARD //BY WALID MAALOULI //JANUARY 2020 //VERSION 0.1 CALL CLEAR OPTION BASE 0 DIM REFTABLE$(100),HEX$(16),REFADR(100) RESTORE HexData FOR I=0 TO 15 READ HEXVALUE$:: HEX$(I)=HEXVALUE$ NEXT I CRU=2432 !RS232 CRU OF >1300 DIVIDED BY 2 PRINT " CDP 1802 ASSEMBLER" PRINT " WALID MAALOULI - JAN 2020" PRINT::PRINT::PRINT::PRINT //GET SOURCE FILE ON ERROR InputSource InputSource: INPUT "ENTER SOURCE FILE PATH: ":SOURCE$ OPEN #1:SOURCE$ ON ERROR STOP PRINT::PRINT "1- SEND HEX FILE TO ELF" PRINT "2- ASSEMBLE FILE" PRINT::INPUT FCTN IF FCTN=1 THEN SendELF PRINT::PRINT "ENTER DECIMAL START ADDRESS:" INPUT OFFSET PRINT::PRINT "SELECT OUTPUT OPTION:" PRINT "1- LIST TO SCREEN" PRINT "2- SEND TO PRINTER" PRINT "3- SAVE TO FILE" PRINT "4- SEND TO MEMBERSHIP CARD" PRINT GetOutputSelect: INPUT OUTSEL IF OUTSEL<>1 AND OUTSEL<>2 AND OUTSEL<>3 AND OUTSEL<>4 THEN GetOutputSelect IF OUTSEL=2 THEN OPEN #2:"PIO",OUTPUT IF OUTSEL=4 THEN SendELF IF OUTSEL<>3 THEN StartAsm ON ERROR InputSource1 InputSource1: PRINT INPUT "ENTER SAVE FILE PATH: ":DEST$ OPEN #2:DEST$,OUTPUT ON ERROR STOP GOTO StartAsm SendELF: PRINT PRINT "PREPARE ELF TO RECEIVE DATA:" PRINT PRINT "1-CONNECT CABLE" PRINT "2-LOAD AND CLR SWITCHES DOWN" PRINT "3-READ SWITCH UP" PRINT "4-ALL DATA SWITCHES UP" PRINT PRINT "PRESS ANY KEY WHEN READY" CALL KEY("",0,K,S) IF FCTN=2 THEN StartAsm //TRANSFER HEX FILE TO ELF TransferHex: IF EOF(1) THEN CLOSE #1:: PRINT:: PRINT "TRANSFER COMPLETE!":: STOP LINPUT #1:LINE$ PRINT LINE$ HVAL$=SEG$(LINE$,6,2) CALL HEXDEC(HVAL$,DECVAL) GOSUB SendByte IF SEG$(LINE$,9,1)="" OR SEG$(LINE$,9,1)=" " THEN TransferHex HVAL$=SEG$(LINE$,9,2) CALL HEXDEC(HVAL$,DECVAL) GOSUB SendByte IF SEG$(LINE$,12,1)="" OR SEG$(LINE$,12,1)=" " THEN TransferHex HVAL$=SEG$(LINE$,12,2) CALL HEXDEC(HVAL$,DECVAL) GOSUB SendByte GOTO TransferHex //START OF ASSEMBLY StartAsm: LINE=OFFSET RPOINT=0 PASS=1 PRINT::PRINT "FIRST PASS"::PRINT //READ LINE FROM FILE ReadLine: TEMP$="" TEMP1$="" LINPUT #1:LINE$ IF PASS=1 THEN PRINT SEG$(LINE$,1,19) IF PASS=2 THEN SkipLabel LABEL$=SEG$(LINE$,1,6) FOR I=1 TO LEN(LABEL$) IF SEG$(LABEL$,I,1)<>" " THEN TEMP1$=TEMP1$&SEG$(LABEL$,I,1) NEXT I LABEL$=TEMP1$ SkipLabel: OPCODE$=SEG$(LINE$,8,4) IF SEG$(OPCODE$,1,1)=">" AND PASS=1 THEN OPRNUM=0:: GOTO FirstPass IF SEG$(OPCODE$,1,1)=">" THEN HEXVAL$=SEG$(OPCODE$,2,2):: OPRNUM=0:: OPERAND$="":: GOTO FoundLabel FOR I=1 TO LEN(OPCODE$) IF SEG$(OPCODE$,I,1)<>" " THEN TEMP$=TEMP$&SEG$(OPCODE$,I,1) NEXT I OPCODE$=TEMP$ OPERAND$=SEG$(LINE$,13,7) IF SEG$(OPERAND$,1,1)<>">" THEN NotNumber OPERAND$=SEG$(OPERAND$,2,LEN(OPERAND$)-1) TEMP$="" FOR I=1 TO LEN(OPERAND$) IF SEG$(OPERAND$,I,1)<>" " THEN TEMP$=TEMP$&SEG$(OPERAND$,I,1) NEXT I OPERAND$=TEMP$ NotNumber: IF OPCODE$="END" AND PASS=2 THEN PRINT:: PRINT "ASSEMBLY COMPLETE!":: CLOSE#1:: IF OUTSEL=3 THEN CLOSE #2:: STOP ELSE STOP IF OPCODE$="END" THEN RESTORE #1:: PASS=2:: LINE=OFFSET:: PRINT:: PRINT "SECOND PASS":: PRINT:: GOTO ReadLine //ASSEMBLE LINE IF PASS=2 THEN SearchData IF RPOINT=49 THEN PRINT "REFERENCE TABLE FULL!":: STOP IF LABEL$<>"" THEN REFTABLE$(RPOINT)=LABEL$:: REFADR(RPOINT)=LINE:: RPOINT=RPOINT+1 SearchData: IF SEG$(OPCODE$,1,1)="A" THEN RESTORE AData IF SEG$(OPCODE$,1,1)="B" THEN RESTORE BData IF SEG$(OPCODE$,1,1)="D" THEN RESTORE DData IF SEG$(OPCODE$,1,1)="G" THEN RESTORE GData IF SEG$(OPCODE$,1,1)="I" THEN RESTORE IData IF SEG$(OPCODE$,1,1)="L" THEN RESTORE LData IF SEG$(OPCODE$,1,1)="M" THEN RESTORE MData IF SEG$(OPCODE$,1,1)="N" THEN RESTORE NData IF SEG$(OPCODE$,1,1)="O" THEN RESTORE OData IF SEG$(OPCODE$,1,1)="P" THEN RESTORE PData IF SEG$(OPCODE$,1,1)="R" THEN RESTORE RData IF SEG$(OPCODE$,1,1)="S" THEN RESTORE SData IF SEG$(OPCODE$,1,1)="X" THEN RESTORE XData ReadData: READ OPC$,HEXVAL$,OPRNUM IF OPC$="XXX" THEN PRINT:: PRINT "INCORRECT OPCODE IN LINE ";LINE:: STOP IF OPC$<>OPCODE$ THEN ReadData IF (OPRNUM>0 OR OPRNUM=-1) AND OPERAND$=" " THEN PRINT:: PRINT "MISSING OPERAND IN LINE ";LINE:: STOP IF OPCODE$="INP" THEN OPERAND$=HEX$(VAL(OPERAND$)+8) IF OPRNUM=-1 THEN HEXVAL$=SEG$(HEXVAL$,1,1)&SEG$(OPERAND$,1,1):: OPERAND$="" IF SEG$(OPERAND$,1,1)<>"*" OR PASS=1 THEN FoundLabel OPERAND$=SEG$(OPERAND$,2,LEN(OPERAND$)-1) TEMP$="" FOR I=1 TO LEN(OPERAND$) IF SEG$(OPERAND$,I,1)<>" " THEN TEMP$=TEMP$&SEG$(OPERAND$,I,1) NEXT I OPERAND$=TEMP$ FOR I=0 TO 49 IF REFTABLE$(I)<>OPERAND$ THEN NextEntry CALL HEX(REFADR(I),OPERAND$) IF OPRNUM=1 THEN OPERAND$=SEG$(OPERAND$,3,2) GOTO FoundLabel NextEntry: NEXT I PRINT "LABEL NOT FOUND IN LINE ";LINE:: STOP FoundLabel: IF PASS=1 THEN FirstPass CALL HEX(LINE,HEXLINE$) ASMLINE$=HEXLINE$&" "&HEXVAL$&" "&OPERAND$ PRINT ASMLINE$ IF OUTSEL=4 THEN ElfSend IF OUTSEL=2 OR OUTSEL=3 THEN PRINT #2:ASMLINE$ GOTO FirstPass ElfSend: CALL HEX(HEXVAL$,DECVAL) GOSUB SendByte IF OPRNUM<=0 THEN FirstPass IF LEN(OPERAND$)>2 THEN OPR1$=SEG$(OPERAND$,1,2):: CALL HEX(OPR1$,DECVAL):: GOSUB SendByte:: OPERAND$=SEG$(OPERAND$,3,2) CALL HEXDEC(OPERAND$,DECVAL) GOSUB SendByte FirstPass: IF OPRNUM=-1 THEN OPRNUM=0 LINE=LINE+OPRNUM+1 GOTO ReadLine //OPCODE DATABASE AData: DATA ADC,74,0 DATA ADD,F4,0 DATA ADI,FC,1 DATA AND,F2,0 DATA ANI,FA,1 DATA XXX,XX,0 BData: DATA B1,34,1 DATA B2,35,1 DATA B3,36,1 DATA B4,37,1 DATA BDF,33,1 DATA BN1,3C,1 DATA BN2,3D,1 DATA BN3,3E,1 DATA BN4,3F,1 DATA BNF,3B,1 DATA BNQ,39,1 DATA BNZ,3A,1 DATA BQ,31,1 DATA BR,30,1 DATA BZ,32,1 DATA XXX,XX,0 DData: DATA DEC,20,-1 DATA DIS,71,0 DATA XXX,XX,0 GData: DATA GHI,90,-1 DATA GLO,80,-1 DATA XXX,XX,0 IData: DATA IDL,00,0 DATA INC,10,-1 DATA INP,60,-1 DATA IRX,60,0 DATA XXX,XX,0 LData: DATA LBDF,C3,2 DATA LBNF,CB,2 DATA LBNQ,C9,2 DATA LBNZ,CA,2 DATA LBQ,C1,2 DATA LBR,C0,2 DATA LBZ,C2,2 DATA LDA,40,-1 DATA LDI,F8,1 DATA LDN,00,-1 DATA LDX,F0,0 DATA LDXA,72,0 DATA LSDF,CF,0 DATA LSIE,CC,0 DATA LSKP,C8,0 DATA LSNF,C7,0 DATA LSNQ,C5,0 DATA LSNZ,C6,0 DATA LSQ,CD,0 DATA LSZ,CE,0 DATA XXX,XX,0 MData: DATA MARK,79,0 DATA XXX,XX,0 NData: DATA NOP,C4,0 DATA XXX,XX,0 OData: DATA OR,F1,0 DATA ORI,F9,1 DATA OUT,60,-1 DATA XXX,XX,0 PData: DATA PHI,B0,-1 DATA PLO,A0,-1 DATA XXX,XX,0 RData: DATA REQ,7A,0 DATA RET,70,0 DATA XXX,XX,0 SData: DATA SAV,78,0 DATA SD,F5,0 DATA SDB,75,0 DATA SDBI,7D,1 DATA SDI,FD,1 DATA SEP,D0,-1 DATA SEQ,7B,0 DATA SEX,E0,-1 DATA SHL,FE,0 DATA SHLC,7E,0 DATA SHR,F6,0 DATA SHRC,76,0 DATA SKP,38,0 DATA SM,F7,0 DATA SMB,77,0 DATA SMBI,7F,1 DATA SMI,FF,1 DATA STR,50,-1 DATA STXD,73,0 DATA XXX,XX,0 XData: DATA XOR,F3,0 DATA XRI,FB,1 DATA XXX,XX,0 //Hexadecimal numbers HexData: DATA 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F //SEND DATA TO ELF ROUTINE SendByte: CALL IO(3,1,CRU,1) !TURN ON RS232 CARD CALL IO(3,1,CRU+7,1) !TURN ON RS232 LED CALL IO(3,1,CRU+2,1) !SET HANDSHAKE OUT LINE TO HIGH CALL IO(3,1,CRU+1,0) !SET PIO PORT TO OUTPUT CALL LOAD(20480,DECVAL) !PLACE BYTE ON PIO PORT CALL IO(3,1,CRU+2,0) !CYCLE THE HANDSHAKE OUT LINE CALL IO(3,1,CRU+7,0) CALL IO(3,1,CRU+2,1) !TURN RS232 LED OFF CALL IO(3,1,CRU,0) !TURN OFF RS232 RETURN The attached disk contains the assembler called ELFASM as well as 3 programs for the ELF. I use the extension _S to indicate that this is the text source file which contains the assembly language code as well as the program instructions, and the _HEX extension to indicate that this is the assembled hexadecimal version of the program suitable for downloading to the ELF. Feel free to use your own extensions as you see fit. ELFMON is the ELF monitor program I mentioned earlier CYLON is a small demo of the Cylon Eyes effect on the ELF's LED's (a.k.a Battlestar Galactica) HILO is a small game where you have to guess a random computer picked number with as few guesses as possible ELFASM can assemble a source file and then output it to the screen, to a file in HEX format, to the parallel printer, or transfer it to the ELF directly using the adapter cable. You can also load a previously assembled HEX file and transfer it to the ELF without the need of assembling it. And here's a video of the entire project. As is usual with my hobby projects, it is highly unlikely anyone else will find this useful outside of myself, but hey, it was a great learning experience ELF.dsk
  29. 3 points
    When I was a kid growing up, there was always a rumor of someone that someone's else's cousin knew, who had a next-door neighbor that had EVERY single Atari game. In my neighborhood, we actually had someone closer. My nerdy friend Brian had somehow befriended a 38-year-old man named John. John had cerebral palsy and was confined to a wheelchair - an electric wheelchair. He was a well-known figure around town. So I knew exactly who he was talking about. It was the summer of 1983 when I first met John. Atari was still in full swing. And Brian told me that John was willing to sell me his INDY 500 for $25.00. I was really into Atari games (more so than the other companies) and was more than happy to snatch up a game that I had been unable to find in the store. Speaking of that, am I the only one who simply couldn't find certain games? I wanted the Atari brand games more than any other. But there were certain games that I NEVER found for sale in the stores - games like INDY 500, FLAG CAPTURE, BLACKJACK, VIDEO CHESS, not to mention every single keyboard controller game. So anyway, the first time I went to John's house, I scanned his collection and found that although he had more games than I had (the only person I'd ever met who did) he had maybe 50-60 games. That was an impressive total, no doubt. But based on what I know today, that only represents about 15% of all the available games. Holy crap! 15% you say? Does anyone look at that figure and laugh? Ask 20 hardcore users on this board how many games there are, and you'll get 20 different answers. And who's to say that any of them are wrong? I think it's safe to say that each user has their own definition of what constitutes a "game" - what they would need to obtain in order to have a complete collection. When I first discovered this forum three months ago, I searched the forums for an answer. And I saw figures ranging from 500 to 7000. Woah! When I stopped buying Atari games (back around 1985 or so) my total had reached 153. I thought my total was awesome at the time. But again, based on what I know today... So then came October, 2008. For reasons known and unknown, I somehow got hooked on Atari again. I then entered the world of collecting. And being a former collector of vintage Star Wars toys (of which I have everything) I decided I wanted to own a copy of every game. So I began to research the matter and figure out just how many games existed. I soon discovered there are an endless amount of theories as to this question. Do you include alternate titles? Do you count the Sears versions? What about prototypes? What about PAL games? And good lord, what about label variations? Where does it end? Where do you draw the line? So what are my parameters? I decided to limit my definition of a game to represent unique individual games that were released in North America as NTSC games between 1977 and 1992, and are available to be purchased on various auction websites or can be dowloaded to play on your computer today. So what does that all mean? That means you won't find the Sears games on my list. My list has SLOT RACERS, but does not include MAZE. You'll find BASIC MATH, but won't find FUN WITH NUMBERS. You won't find GAMMA ATTACK or DONALD DUCK'S SPEEDBOAT. You won't find MY GOLF. What about Zellers games? Nope. They're just knock-offs of other games with perhaps slightly-altered graphics. They are not orginal! Well... except for CHALLENGE and TIME WARP. Those were apparently original PAL games. But since they were released in North America as NTSC games, I added them. For the same reason, I added Puzzy's SEAMONSTER. How about Panda games? You won't find HARBOR ESCAPE as it's simply a hack of RIVER RAID. But you will find its original game DICE PUZZLE. But you won't find its other original game SCUBA DIVER. Why? Because I included it under the Froggo games. And yes, I know that Froggo didn't release any original games. I'm sure I'm not 100% consistent with my list. For instance, I do include ATLANTIS II and PEPSI INVADERS - which are basically hacks. But they were "official" hacks released back in the day by the respective companies that made the orginal game they were hacked from. Who cares anyway. This is my list and I think they belong! I believe this list covers all the games that were released "back in the day." And I don't believe there are any duplicates on the list. If you think there's a missing game, it's most likely because I have it listed under an alternate title for a different company. I feel I need to mention three other titles. For starters, there is the game BOBBY IS GOING HOME. This is an original PAL-only game released by Bit Corporation. However, one of the users on this board actually found an NTSC version of the game - also released by Bit Corporation. This makes absolutely no sense. But nontheless, it apparently exists. I'm chalking that up to a total fluke. How it happened is a mystery. The bottom line is, I'm not including it. After all, the game wasn't released in Norh America. Then there are the stories of BIRTHDAY MANIA and RED SEA CROSSING. The former was available as a personalized mail-order game. The latter was apparently a religious game that found its way into some religious bookstores and such. To date, only one copy of each has surfaced. And their respective owners have chosen not to release the roms. So since they're not available to be downloaded, I'm not including them either. If it's impossible to have a complete collection without them, then they don't belong. As for GAMMA ATTACK, there doesn't seem to be a consensus as to whether or not it was ever released, or whether the one and only known copy to exist is in fact a prototype. My thanks to Romhunter and the incredible database on his Atarimania website. And my thanks to him personally for answering several questions I asked of him. So here we go. Here's my list. As far as I'm concerned there are 418 Atari 2600 games. That's what I said - 418. That's my story. And I'm sticking to it. Enjoy the list. And if you find an error or feel I need to add something, please let me know. ________________________________________________________________________________________________ ********************** UPDATE 3/25/2014 ********************** Well it’s been a little over five years since I created the list of 418 titles below. And a few things have changed since then. I’ve decided to add GAMMA-ATTACK to the list, as it’s now generally accepted that this game was in fact released, and not a prototype. I’ve also added RED SEA CROSSING since a ROM was finally made available. A run of reproduction cartridges was made. I’m not sure if the ROM is publically available for anyone to download. But cartridges were made. And they are out there. And lastly the game EXTRA TERRESTRIALS was discovered in Canada. That ROM is readily available. The only known released game that has yet to see the light of day is BIRTHDAY MANIA. Therefore I won’t include that on the update. So the number of NTSC released games in North America now stands at 421. But what about the games that weren’t released in North America? Were there original games released in other countries? The answer is yes. And I’ve decided to finally include those as well. Like the North American games, a lot of these games were also released by various other companies in other countries. Some were pirated and put out under a different name. Some were slightly hacked and released with subtle differences. There are also catalogs that mention other games – games that have yet to be discovered. So it’s entirely possible that those games never existed. Or perhaps they do exist. But since they’re unknown, I did not include them here. So you won’t find games like BIRD POWER or LOCOMOTIVE on this list. The American company Zimag took four games from overseas and sold them in America. Four additional games were apparently in the planning stages, as NTSC prototypes for each have been found. But since they were never released in North America, they weren’t included in my original list. But since they were released in other countries, I’ve included them here. I’ve also included games from Atari in which NTSC prototypes have been discovered for games that actually had PAL releases in other countries. There are eight other games which I believe were original PAL games released overseas. Those games are CHALLENGE, DANCING PLATE, OPEN SESAME, PHANTOM TANK, SEA MONSTER, SPACE TUNNEL, SPIDER MAZE and TIME WARP. But they are not included on this new list because they actually did get a North American release (sometimes under alternate titles) and were included on my original list. I’ve included the game WORDS-ATTACK, of which only one cartridge has been found. There’s a thought that the game may be an unfinished prototype since there is apparently a lot of unused space on it that could have been used. But no one knows for sure. And the cartridge has a finished label on it. So it’s included. The game CAT TRAX resurfaced in 2003 as an unreleased prototype. However it somehow got a release on a foreign "4 in 1" cart back in the 1980's under the title "CAT 'N MOUSE." How it happened is a mystery. Nonetheless it did. So it's included here also. In a couple of cases I’ve put an alternate title in parenthesis. This is because it’s more commonly known by another title. For instance the game FIREBUG was released by Suntek. But it’s more commonly known by its NTSC prototype name of SPINNING FIREBALL. So if you’re looking for the ROM for this game, you’ll probably have more success finding it under the latter name. My thanks again to Rom Hunter and his incredible database at ATARIMANIA.COM for his help. If I’ve missed anything, please let me know. My goal is to simply have a cartridge of every game, so I can play it at home. If there’s something I’m missing, I want to know! So there you go. With the additional 49 titles, the final Atari 2600 game list stands at 470 unique games. That’s my story. And I’m sticking to it! For now anyway… ________________________________________________________________________________________________ ********************** UPDATE 10/1/2019 ********************** Well! It's been over 10 years since I posted this original blog entry. And it's been about 5.5 years since my last update. So why am I here today? We need to update this list once again! Yes indeed, BIRTHDAY MANIA finally had a ROM released! After 10+ years of existing, we can finally play this game. I picked up my copy (personalized with my name) and played it for the first time last night - which was very cool! So with the addition of Birthday Mania, we now have 422 games that were released in North America, as well as 49 games that were released in other countries. So if you're looking to collect a copy of every single game that was released between 1977 and 1992, the total stands at 471. Of the 422 North American games, I've personally collected 400 of them. I had carts made of the other 22 since they were too pricey to find or collect. I also had 49 NTSC carts made for the 49 games that were released elsewhere. So I've got an individual cart for all 471 games. Let me know how many you have! So there you go. The final total is 471. Will this number ever increase? Will any other lost games be found? Something tells me that this is it. But history shows that when dealing with the Atari 2600, you should never say never! Happy collecting! Here's the list. ATARI ______ 1. ADVENTURE 2. AIR-SEA BATTLE 3. ALPHA BEAM WITH ERNIE 4. ASTEROIDS 5. ATARI VIDEO CUBE (RUBIK’S CUBE) 6. BACKGAMMON 7. BASIC MATH (FUN WITH NUMBERS) 8. BASIC PROGRAMMING 9. BASKETBALL 10. BATTLEZONE 11. BERZERK 12. BIG BIRD’S EGG CATCH 13. BLACKJACK 14. BOWLING 15. BRAIN GAMES 16. BREAKOUT 17. CANYON BOMBER 18. CASINO 19. CENTIPEDE 20. CHAMPIONSHIP SOCCER (PELE’S SOCCER) 21. CIRCUS ATARI 22. CODEBREAKER 23. COMBAT 24. COOKIE MONSTER CRUNCH 25. CRAZY CLIMBER 26. CROSSBOW 27. CRYSTAL CASTLES 28. DARK CHAMBERS 29. DEFENDER 30. DEMONS TO DIAMONDS 31. DESERT FALCON 32. DIG DUG 33. DODGE ‘EM 34. DOUBLE DUNK 35. E.T. THE EXTRA TERRESTRIAL 36. FLAG CAPTURE 37. FOOTBALL 38. GALAXIAN 39. GAME OF CONCENTRATION (HUNT & SCORE) 40. GOLF 41. GRAVITAR 42. GREMLINS 43. HANGMAN 44. HAUNTED HOUSE 45. HOME RUN 46. HUMAN CANNONBALL 47. IKARI WARRIORS 48. INDY 500 49. JOUST 50. JR. PAC-MAN 51. JUNGLE HUNT 52. KANGAROO 53. KRULL 54. MARIO BROS. 55. MATH GRAN PRIX 56. MAZE CRAZE 57. MIDNIGHT MAGIC 58. MILLIPEDE 59. MINIATURE GOLF 60. MISSILE COMMAND 61. MOON PATROL 62. MOTORODEO 63. MS. PAC-MAN 64. NIGHT DRIVER 65. OBELIX 66. OFF THE WALL 67. OSCAR’S TRASH RACE 68. OTHELLO 69. OUTLAW 70. PAC-MAN 71. PENGO 72. PEPSI INVADERS 73. PHOENIX 74. PIGS IN SPACE 75. POLE POSITION 76. QUADRUN 77. RADAR LOCK 78. RAIDERS OF THE LOST ARK 79. REAL SPORTS BASEBALL 80. REAL SPORTS BOXING 81. REAL SPRTS FOOTBALL 82. REAL SPORTS SOCCER 83. REAL SPORTS TENNIS 84. REAL SPORTS VOLLEYBALL 85. ROAD RUNNER 86. SECRET QUEST 87. SENTINEL 88. SKY DIVER 89. SLOT MACHINE 90. SLOT RACERS 91. SNOOPY AND THE RED BARON 92. SOLARIS 93. SORCERER’S APPRENTICE 94. SPACE INVADERS 95. SPACE WAR 96. SPRINTMASTER 97. STAR RAIDERS 98. STAR SHIP 99. STARGATE (DEFENDER II) 100. STREET RACER 101. SUPER BASEBALL 102. SUPER BREAKOUT 103. SUPER FOOTBALL 104. SUPERMAN 105. SURROUND 106. SWORDQUEST EARTHWORLD 107. SWORDQUEST FIREWORLD 108. SWORDQUEST WATERWORLD 109. TAZ 110. 3-D TIC-TAC-TOE 111. TRACK & FIELD 112. VANGUARD 113. VIDEO CHECKERS 114. VIDEO CHESS 115. VIDEO OLYMPICS 116. VIDEO PINBALL 117. WARLORDS 118. XENOPHOBE 119. YARS' REVENGE ACTIVISION ___________ 120. BARNSTORMING 121. BEAMRIDER 122. BOXING 123. BRIDGE 124. CHECKERS 125. CHOPPER COMMAND 126. COMMANDO 127. COSMIC COMMUTER 128. CRACKPOTS 129. DECATHLON 130. DOLPHIN 131. DOUBLE DRAGON 132. DRAGSTER 133. ENDURO 134. FISHING DERBY 135. FREEWAY 136. FROSTBITE 137. GHOSTBUSTERS 138. GRAND PRIX 139. H.E.R.O. 140. ICE HOCKEY 141. KABOOM! 142. KEYSTONE KAPERS 143. KUNG FU MASTER 144. LASER BLAST 145. MEGAMANIA 146. OINK 147. PITFALL! 148. PITFALL II LOST CAVERNS 149. PLAQUE ATTACK 150. PRESSURE COOKER 151. PRIVATE EYE 152. RAMPAGE 153. RIVER RAID 154. RIVER RAID II 155. ROBOT TANK 156. SEAQUEST 157. SKIING 158. SKY JINX 159. SPACE SHUTTLE 160. SPIDER FIGHTER 161. STAMPEDE 162. STARMASTER 163. TENNIS IMAGIC _______ 164. ATLANTIS 165. ATLANTIS II 166. COSMIC ARK 167. DEMON ATTACK 168. DRAGONFIRE 169. FATHOM 170. FIRE FIGHTER 171. LASER GATES 172. MOONSWEEPER 173. NO ESCAPE! 174. QUICK STEP! 175. RIDDLE OF THE SPHINX 176. SHOOTIN’ GALLERY 177. SOLAR STORM 178. STAR VOYAGER 179. SUBTERRANEA 180. TRICK SHOT PARKER BROTHERS __________________ 181. AMIDAR 182. FROGGER 183. FROGGER II: THREEEDEEP 184. G.I. JOE - COBRA STRIKE 185. GYRUSS 186. JAMES BOND 007 187. MONTEZUMA’S REVENGE 188. MR. DO’S CASTLE 189. POPEYE 190. Q*BERT 191. Q*BERT’S QUBES 192. REACTOR 193. SKY SKIPPER 194. SPIDER-MAN 195. STAR WARS THE ARCADE CAME 196. STAR WARS THE EMPIRE STRIKES BACK 197. STAR WARS JEDI ARENA 198. STAR WARS RETURN OF THE JEDI 199. STRAWBERRY SHORTCAKE 200. SUPER COBRA 201. TUTANKHAM COLECO ________ 202. BERENSTAIN BEARS 203. CARNIVAL 204. DONKEY KONG 205. DONKEY KONG JUNIOR 206. FRONT LINE 207. MOUSE TRAP 208. MR. DO! 209. ROC N ROPE 210. SMURFS RESCUE IN GARGAMEL'S CASTLE 211. SMURFS SAVE THE DAY 212. TIME PILOT 213. VENTURE 214. ZAXXON 20TH CENTURY FOX __________________ 215. ALIEN 216. BANK HEIST 217. BEANY BOPPER 218. CRASH DIVE 219. CRYPTS OF CHAOS 220. DEADLY DUCK 221. EARTH DIES SCREAMING 222. FANTASTIC VOYAGE 223. FAST EDDIE 224. FLASH GORDON 225. M*A*S*H* 226. MEGA FORCE 227. PORKY’S 228. REVENGE OF THE BEEFSTEAK TOMATOES 229. SPACEMASTER X-7 230. TURMOIL 231. WORM WAR I DATA AGE _________ 232. AIRLOCK 233. BERMUDA TRIANGLE 234. BUGS 235. ENCOUNTER AT L5 236. FRANKENSTEIN’S MONSTER 237. JOURNEY ESCAPE 238. SSSNAKE 239. WARPLOCK M NETWORK ____________ 240. ADVENTURES OF TRON 241. AIR RAIDERS 242. ARMOR AMBUSH 243. ASTROBLAST 244. BUMP ‘N JUMP 245. BURGERTIME 246. DARK CAVERN 247. FROGS AND FLIES 248. INTERNATIONAL SOCCER 249. KOOL AID MAN 250. LOCK ‘N CHASE 251. MASTERS OF THE UNIVERSE - HE-MAN 252. SPACE ATTACK 253. STAR STRIKE 254. SUPER CHALLENGE BASEBALL 255. SUPER CHALLENGE FOOTBALL 256. TRON: DEADLY DISCS APOLLO ________ 257. FINAL APPROACH 258. GUARDIAN 259. INFILTRATE 260. LOST LUGGAGE 261. RACQUETBALL 262. SHARK ATTACK (LOCHJAW) 263. SKEET SHOOT 264. SPACE CAVERN 265. SPACECHASE 266. WABBIT US GAMES __________ 267. COMMANDO RAID 268. EGGOMANIA 269. ENTOMBED 270. GOPHER 271. M.A.D. 272. NAME THIS GAME 273. PICNIC 274. PIECE ‘O CAKE 275. RAFT RIDER 276. SNEAK ‘N PEEK 277. SPACE JOCKEY 278. SQUEEZE BOX 279. TOWERING INFERNO 280. WORD ZAPPER CBS ELECTRONICS __________________ 281. BLUE PRINT 282. GORF 283. MOUNTAIN KING 284. OMEGA RACE 285. SOLAR FOX 286. TUNNEL RUNNER 287. WIZARD OF WOR SEGA _____ 288. BUCK ROGERS: PLANET OF ZOOM 289. CONGO BONGO 290. SPY HUNTER 291. STAR TREK: STRATEGIC OPERATIONS SIMULATOR 292. SUB SCAN 293. TAC-SCAN 294. TAPPER 295. THUNDERGROUND 296. UP ‘N DOWN TIGERVISION ____________ 297. ESPIAL 298. JAWBREAKER 299. KING KONG 300. MARAUDER 301. MINER 2049ER 302. MINER 2049ER II 303. POLARIS 304. RIVER PATROL 305. SPRINGER 306. THRESHOLD STARPATH __________ 307. COMMUNIST MUTANTS FROM OUTER SPACE 308. DRAGONSTOMPER 309. ESCAPE FROM THE MINDMASTER (LABYRINTH) 310. FIREBALL 311. FROGGER, THE OFFICIAL 312. KILLER SATELLITES 313. PARTY MIX 314. PHASER PATROL 315. RABBIT TRANSIT 316. SUICIDE MISSION 317. SURVIVAL ISLAND 318. SWORD OF SAROS SPECTRAVISION _______________ 319. BUMPER BASH 320. CHALLENGE OF NEXAR 321. CHASE THE CHUCK WAGON 322. CHINA SYNDROME 323. CROSS FORCE 324. GANGSTER ALLEY 325. GAS HOG 326. MANGIA 327. MASTER BUILDER 328. PLANET PATROL 329. TAPEWORM ABSOLUTE ENTERTAINMENT ___________________________ 330. PETE ROSE BASEBALL 331. SKATE BOARDIN’ 332. TITLE MATCH PRO WRESTLING 333. TOMCAT: THE F-14 FLIGHT SIMULATOR AVALON HILL _____________ 334. DEATH TRAP 335. LONDON BLITZ 336. OUT OF CONTROL 337. SHUTTLE ORBITER 338. WALL BALL AMIGA ______ 339. MOGUL MANIAC TELESYS ________ 340. COCONUTS 341. COSMIC CREEPS 342. DEMOLITION HERBY 343. FAST FOOD 344. RAM IT 345. STARGUNNER TELEGAMES ____________ 346. GLACIER PATROL 347. QUEST FOR QUINTANA ROO 348. UNIVERSAL CHAOS SEARS ______ 349. STEEPLECHASE 350. STELLAR TRACK 351. SUBMARINE COMMANDER COMMA VID ___________ 352. CAKEWALK 353. COSMIC SWARM 354. MAGICARD 355. MINES OF MINOS 356. ROOM OF DOOM 357. STRONGHOLD 358. VIDEO LIFE ZIMAG ______ 359. COSMIC CORRIDOR 360. DISHASTER 361. I WANT MY MOMMY 362. TANKS BUT NO TANKS KONAMI ________ 363. MARINE WARS 364. POOYAN 365. STRATEGY X EPYX _____ 366. CALIFORNIA GAMES 367. SUMMER GAMES 368. WINTER GAMES MILTON BRADLEY _________________ 369. SPITFIRE ATTACK 370. SURVIVAL RUN MYSTIQUE/PLAYAROUND ___________________ 371. BACHELOR PARTY 372. BEAT ‘EM AND EAT ‘EM 373. BURNING DESIRE 374. CUSTER’S REVENGE 375. GIGOLO 376. KNIGHT ON THE TOWN XONOX _______ 377. ARTILLERY DUEL 378. CHUCK NORRIS SUPERKICKS 379. GHOST MANOR 380. MOTOCROSS RACER 381. ROBIN HOOD 382. SIR LANCELOT 383. SPIKE’S PEAK 384. TOMARC THE BARBARIAN K-TEL VISION _____________ 385. SPIDER MAZE 386. VULTURE ATTACK SPARROW _________ 387. MUSIC MACHINE FROGGO ________ 388. CRUISE MISSILE 389. KARATE 390. SEA HAWK 391. SEA HUNT ANSWER ________ 392. GAUNTLET 393. MALAGAI AMERICAN VIDEOGAME _______________________ 394. TAX AVOIDERS BOMB ______ 395. ASSAULT 396. GREAT ESCAPE 397. WALL DEFENDER 398. Z-TACK EXUS _____ 399. VIDEO JOGGER 400. VIDEO REFLEX FIRST STAR SOFTWARE __________________ 401. BOING! MYTHICON __________ 402. FIRE FLY 403. SORCERER 404. STAR FOX MENAVISION ____________ 405. AIR RAID PANDA ______ 406. DICE PUZZLE 407. STUNTMAN WIZARD VIDEO ________ 408. HALLOWEEN 409. TEXAS CHAINSAW MASSACRE SELCHOW & RICHTER/QDI _____________ 410. GLIB VENTUREVISION ________________ 411. RESCUE TERRA I PUZZY ______ 412. SEAMONSTER DSD/CAMELOT ______________ 413. TOOTH PROTECTORS UNIVERSAL GAMEX ___________________ 414. X-MAN SIMAGE ________ 415. ELI’S LADDER ZELLERS ________ 416. CHALLENGE 417. TIME WARP TNT GAMES ___________ 418. BMX AIRMASTER GAMMATION ________ 419. GAMMA-ATTACK INSPIRATIONAL VIDEO CONCEPTS ________ 420. RED SEA CROSSING SKILL SCREEN GAMES ___________ 421. EXTRA TERRESTRIALS PERSONAL GAMES ___________ 422. BIRTHDAY MANIA ______________________________________________________________________________________________ ALL OTHER GAMES NOT RELEASED IN NORTH AMERICA HOME VISION ________ 423. FRISCO 424. GO GO HOME MONSTER 425. LILLY ADVENTURE 426. MAGIC CARPET 427. PANDA CHASE 428. PARACHUTE 429. RACING CAR 430. SKI HUNT 431. TOPY 432. TREASURE DISCOVERY 433. WORLD END 434. X MISSION SUNTEK ________ 435. FIREBUG (A.K.A. SPINNING FIREBALL) 436. I.Q. MEMORY TEASER 437. MOTOCROSS 438. SKI RUN 439. WALKER 440. ZOO FUN VIDEO GEMS ___________ 441. MISSILE CONTROL 442. MISSION SURVIVE 443. STEEPLECHASE 444. SURFER'S PARADISE BUT DANGER BELOW! 445. TREASURE BELOW BIT CORPORATION ________ 446. BOBBY IS GOING HOME 447. CAN 'N MOUSE (CAT TRAX) 448. MISSION 3000 A.D. 449. MR. POSTMAN 450. SNAIL AGAINST SQUIRREL SALU ___________ 451. ACID DROP 452. GHOSTBUSTERS 2 453. PICK ‘N PILE TECHNOVISION ________ 454. NUTS 455. PHARAOH’S CURSE 456. SAVE OUR SHIP SANCHO ________ 457. FOREST 458. WORDS-ATTACK ATARI ___________ 459. FATAL RUN 460. KLAX TAIWAN ________ 461. CRIMINAL PURSUIT (A MYSTERIOUS THIEF) 462. FARMYARD FUN CCE ________ 463. IMMIES & AGGIES 464. PIZZA CHEF 465. STONE AGE DIMAX ________ 466. ASTROWAR DYNACOM ________ 467. MEGABOY HES ___________ 468. MY GOLF IMAGIC ________ 469. WING WAR PET BOAT ________ 470. MAZY MATCH (UNKNOWN DATATECH GAME 2) JVP ________ 471. DONALD DUCK’S SPEEDBOAT
  30. 3 points
    Game progression keeps on going. At one point I was so angry that I had to quit working on it because I couldn't make a solid 262 scanline count. But thankfully Splendidnut helped me out. If I ever get this game released, I'll give him a free copy of the game because it wouldn't be without him. So I have the colored killer bees that progressively get meaner and meaner, a Beebot that moves around the screen, your bees that go after the Beebot. But this is far from finished. I have to add in some other elements, like death, and RoSha Ray. I have a plan for that last one. In the original Killer Bees, the RoSha Ray goes horizontally. I however, will make my RoSha Ray (missile 1) go vertically because it will be way easier to program. That, and I only have 1,624 bytes left in my 4k game, so it's not like I have an infinite sandbox. Well, I do, but I don't know how to play with some sections of the sand yet. As you can see, I made COLUPF brighter. This is because the enemy bees were hard to see on my TV. I think it's going well, but it feels as though it's more of a Roman Colosseum fight to the death thing in my opinion since there's one Beebot and one swarm of enemy bees. I guess each machine has its limitations.
  31. 3 points
    This is not a new project which was initially started in 2015, but it was never well documented and I was not very happy with the end result at that time. I picked it up again last month and made significant improvements with some guidance from Tursi, so here it is. Image capture has not been attempted previously on the TI 99/4A computer even though most other contemporary computers did have such a facility developed for them. While I realize that nowadays it's not really necessary since one could snap any picture with a digital camera, process it using Tursi's Convert9918 program (http://www.harmlesslion.com/cgi-bin/onesoft.cgi?2) and transfer it to the computer, there is still something special about doing this directly on the TI. The first challenge was figuring out which capture camera to use, with the major requirement being ease of interfacing and good documentation as well as low cost, and I ended up settling on the Raspberry Pi camera. It has a large amount of support available online and is very easy to work with. Of course this entailed using a Raspberry Pi SBC as well, but I already had a couple of spare ones, namely model B, lying around, and they are dirt cheap anyway. A standard bitmap image on the TI has a resolution of 256x192 pixels, or a total of just over 49,000 pixels. With that many data points to transmit to the TI, I opted to use the TI's parallel port (PIO) for ease of access and processing. One of the issues encountered at this point was the fact that the Raspberry Pi does not have a parallel port, so the solution was to simulate one by commissioning 8 GPIO pins on the board to act as a bidirectional 8-bit parallel port via software. Another issue related to the fact that the Raspberry Pi operates at 3.3V whereas the TI operates at 5V, therefore requiring the use of an interface between the two in order to convert the voltages back and forth and avoid frying the Raspberry Pi. The interface also allowed the gating of information to and from the TI. Here's the schematic: The idea here is that the Rpi camera will capture a raw RGB image at a resolution of 256x192 pixels, which produces 3 bytes of information per pixel, one for each red, green and blue colors. Obviously that's a massive amount of information, and so I had the Rpi compress the three bytes into one, taking advantage of the fact that the blue color is poorly perceived by the human eye. In the final scheme, one byte per pixel was produced, with 3 bits for red, 3 bits for green and 2 bits for blue, which was then transmitted to the TI one byte at a time. Here's the initial breadboarded prototype: I experienced a significant amount of noise with that prototype, likely related to the mass of wires required, but I was confident that the design was sound, so I bit the bullet and decided to create a double sided PCB for the project. This was the first time I had attempted to create a double sided PCB, and the end result was barely satisfactory, although it did require a lot of nursing to correct for missed vias and broken traces. Top Bottom Populated The general protocol for data transmission from the Raspberry Pi to the TI was as follows: -Both handshake output lines start LOW -TI polls the RPI handshake line, waiting for HIGH -RPI sets the data port pins with valid data -RPI then sets its handshake output HIGH to indicate data is available on the port -RPI then polls the TI's handshake output, waiting for HIGH -When TI see the RPI handshake high, it reads the data byte from the data pins -TI then sets its output HIGH as an acknowledge -TI then polls the RPI handshake line, waiting for LOW -RPI sees the TI pin go HIGH, and releases its handshake (sets it LOW). RPI is now free to go process the next byte -TI see the RPI line go LOW, and sets it's handshake LOW. TI is now free to process the byte. -This process resumes at the top. On the TI side, I initially used an extremely primitive method of processing the image where I averaged the values of the RGB colors for each row of 8 pixels after decompressing the received bytes and chose the closest color from the TI's palette to assign to that entire row. If you recall, the TI can only assign a single foreground and a single background color to each row of 8 pixels due to the limitations of the 9918 video display processor. For black and white, I used the same method of RGB averaging, but then selected a threshold between white and black that gave the best image. Needless to say that the results were less than stellar... And this was where things stood for the next 3 years, until I decided recently to revisit the project. I contacted Tursi regarding the algorithms he used for his Convert9918 PC program, and he was kind enough to give me all the information needed for me to revamp the image processing program on the TI. I decided to skip color processing at this time given that it would have been very intensive from a processing and memory standpoint and would make for a very long image display time, although I might re-visit this at some point in the future. Black and white Half-tone Obviously a major improvement! The whole image transfer process takes about 45 seconds, which is pretty reasonable. Source file for the half-tone program below Disk image with all the source and compiled files (E/A option 3): TIVISION.dsk Here's a video of the entire project. Another fun one https://youtu.be/-ZkSfssnfv8
  32. 2 points
    Had a pre-modded 7800 sent to me with a UAV that had good s-video but was producing some ugly jail bars in composite. But it was ONLY doing this on 2600 games. I at first suspected something in the wiring of the UAV or the UAV itself and first redid all of that and replaced the UAV. No change. It was then I started to look at things more closely and noticed that this '84 main board all socketed chip board appeared to have a TIA I'd not seen before. The company branding on it is IMP and it had a mid year 1988 date stamp on it indicating it was not likely original to the 7800 to begin with. Since I was able to disconnect the TIA color signal and get crystal clear black n white with the jail bars, I knew it had to be in the color signal. And since the UAV is tapping that signal straight from pin#9 off the TIA there was really only one culprit. I had another semi working 7800 with a more normal looking AMI branded TIA on it. Pulled that and put it into the socket on this troublesome 7800. Sure enough the jail bars are gone! I'm guessing this is a late revision TIA and it likely a CMOS part as it doesn't seem to heat up like most TIA chips do and it just feels a bit different. In any event...stay the hell away from these TIAs in and think about replacing them if you find them in your 2600s or 7800s. Especially if you plan to use composite upgrades or a UAV as it does produce jail bars. I also noticed that color trimmer has to be adjusted but a full 180 between the two chips. So there are some obvious internal differences in how they are designed and made. I've attached some pics to show what I was getting and between the two TIA chips. Here is the section about halfway on the edge of the ColorMatch screen on the Colorbar generator program. You can see the jail bars on the slightly different hue of green on the lower half. Upper half is fine. Here is the green purity screen with the bad TIA. Again, you can see the jail bars and while this is on green, they are present on all colors pretty much. Here is the colorbar screen from the bad TIA IMP branded chip. Again you will see that most of the colors exhibit noticed jail bars on them. It is quite distracting and unusual to see from a UAV board. Here is the actual IMP branded TIA chip that was causing the headaches above: Now here is the colormatch screen edge with the good AMI branded TIA chip. Here is the green purity screen with the good working TIA. Quite a difference here. Here is the colorbar screen on the AMI TIA. While there is still come color bleeding and other artifacts normal with composite on an LCD, you will see that the colors don't have the jail bars as they did with the other TIA chip. And of course, this is what the common AMI branded TIA looks like in most 7800s I've encountered: So if you have nasty jail bars from your composite video out signal, you might look at the TIA as the possible cause. Ivory Tower Collections
  33. 2 points
    In the words of Sinstar, "Beware, I live" As I mentioned in the previous post, I started over with lr-mame2000 (MAME 0.37b5 as a Libretro core) on RetroPie 4.7.1 (current). While mame4all-pi is supposed to be faster, it doesn't do me any good if it doesn't support rotation. It also became obvious that mame4app-pi is basically an unsupported hack. Once I started over I tried the recommended solution of disabling the internal "soundcard" without success, likely due to the same problem of the USB headset being "card 1" rather than "card 0". I then re-enabled the internal soundcard and instead configured the system so the USB headset was "card 0" - and it worked! So this morning I made a stand out of a cardboard box (~20 degree tilt) and tweaked the libretro config to rotate and fill the screen at native resolution (along with rotating Emulationstation). So now the task is to go through ~450 games to see what's playable and what's worth playing. After that I can focus on setting up the front end.
  34. 2 points
    Disclaimer: This is not meant to be a how-to tutorial or a step-by-step guide. This is merely photos of my upgrades with some description and explanation. But feel free to ask any questions about any aspect of it. This is my blog on all the upgrades, modifications and hacks that have turned a standard 800 into a machine that is still the original vision of Jay Miner's Colleen 800 at heart, and still fully compatible, but includes advancements and upgrades that Atari never envisioned. At it's core, my new 800AI includes an Incognito board which expands it's capabilities to not only that of an XL/XE machine with 64K main memory, but far, far more including; 1MB extended ram multiple OS's and hi-speed SIO, bult-in BASIC and SpartaDOS X, as well as room for other cartridges from any point in the 8-bit era, a CF card virtual HDD and PBI capabilities and much more. Beyond the Incognito the 800 has been upgraded to Stereo sound first, with a DIY dual-POKEY, then replaced with multiple POKEY cores and Covox DSP with the Pokeymax Quad + Covox board. Also a Sophia 2 GTIA replacement and upgrade board (adding more graphic modes) and modern video out with either DVI/HDMI or RGB or VGA. Also a dual PIA board for double the controller output jacks allowing many more exteral devices to be connected and controlled by the 800. An extra SIO jack, Stereo out headphone jack, S-video, composite and mono audio jacks installed for direct connect of standard cables and no more mess of various cables hanging out the side of the 800. The original SIO port is left open for easy temporary connection of peripherals or dead-end SIO peripherals. Fujinet will become a part of the Atari 800AI system as well, and will plug into the side SIO port. Also, a real PBI edge-connector port has been installed on the rear left side of the 800, and is now capable of using any exterior PBI devices, the first of which is a Turbo Freezer. With all these advanced upgrades I felt that just '800" was not good enough anymore, and there needs to be an addition to the name for it's advanced features just like the XL/XE (eXtended Line/eXtended line Enhanced). But another X and some other letter on the end is a bit unimaginative. So I came up with AI for advance(d) plus Incognito, or a playful, if fictional suggestion on the abbreviation A.I., for artificial intelligence. Or maybe in reference to Alpha and Omega, since there's the original 800 in there, but then also the probably final upgrade to the heart of the machine, the Incognito. Yes I know AI is not the same as the Greek letters Alpha and Omega, but it is the first and last letters of ATARI, the beginning and end of the name signifying Alpha and Omega in a way. So AI stands for all of the above. So now I've explained what my 800AI computer is and why, on with the details and photos. The first upgrades I did are Incognito board and a dual-Pokey upgrade (less the actual audio output). And I did some repairs on the keyboard and modified a shift key to be more balanced and sturdy by inserting an extra plunger and spring in an empty key spot below it. Hopefully this will solve a design problem that causes the plunger to crack and stop the new plunger from cracking in the outside corners that make the shift key bind. After the successful incognito and DIY dual POKEY installation, Plans have been changed to a Pokeymax Quad+covox audio upgrade. Quite a leap from just stereo, but I want the best for this upgrade project. The Pokeymax is plugged in the socket and is currently working as a standard Pokey until I get a couple of wires connected to the CPU and audio output with a simple pre-amp circuit to bring it up to line-level audio. I also installed a second SIO port and due to the placement of these new I/O ports I am combining the Pokeymax audio out with the SIO out on the same circuit board. The first step on the new board was to attach the SIO connector (one of half a dozen new 3D printed ones I bought from The Brewing Academy) to the board and a cable to the new SIO port that is connected at the other end to the original SIO port, continuing the SIO daisy-chain internally in the 800. I went with shielded VGA cabling since I have plenty on hand and it's the best thing to use to ensure no interference in close proximity to the motherboard. The cable is directly soldered to the new SIO connector and it's board, but I installed Dupont connectors to the SIO port on the 800's PSU board for easy removal and installation in the future. I fanned out the pins on the back of the SIO so I had room to plug in the Dupont connectors with the capacitor for the PSU in the way. The next step was to install a headphone jack stereo audio out to the new circuit board and attach a wire harness to the Pokeymax that will run to the new board. I then attached the wire harness to the Pokeymax, with three wires going to the CPU on the CPU board and three wires going to the SIO/Stereo out board. I used a headphone jack style stereo audio out so it would fit on the board with the SIO port, and both will fit nicely where I make cut-outs for them on the underside of the case, leading out the back left recessed area of the 800 case underside. I used DuPont connectors at the audio out for easy separation from the motherboard and CPU board. The only thing left for the Pokeymax upgrade is to make a spot for the audio out wires to go through the heavy shielding. I suppose I'll have to drill a hole through the shielding near the Pokeymax chip. And I just remembered I need to connect the headphone jack's ground to ground on the SIO connector which is connected to ground through the cable to the PSU to ensure proper grounding. (Pictures are not in the order of the descriptions above) The next modification was S-video, composite and mono audio out board directly opposite the 2nd SIO/audio out board, it will be hidden underneath the PSU board and connected to the original monitor port in close proximity. Once that board is done, then I will cut out spots for all the new I/O connectors in the 800's bottom case, then mount the boards and I/O connectors. Next I made a DIY S-video/Composite/mono audio out board. Like the second SIO, these are just direct lines from the nearby monitor jack. As per usual now, at least one end is attached with Dupont Connectors so that all upgrades and boards can be easily separated if need be. I had left/right audio jacks on hand, so the red one has been re-purposed for composite video (I only want this for NTSC high-res games for artifact colors). The mono audio out is white. Instead of attaching a switch to one of the Pokeymax lines to change between mono and Quad-stereo out, I left it so Quad-stereo is always on as I will use the mono out for programs that don't use stereo. And of course, the main reason for the DIY mod board, is a real S-video jack. The S-video on both my Atari's gets fed through either video-to-VGA or video-to-HDMI outs and they don't make the adapters with separate chroma/luma lines. But my 1200XL uses a break-out-box for video which does have separate chroma/luma for when I get my CBM 1084S monitor repaired which does have these inputs. The 800 will always be connected to a converter. (pictures are not in order of descriptions above) Now, except for the power jack, I no longer have to have cables coming out the side of my 800 getting in my way on the desktop. All other I/O will now be discretely placed in the recesses on the underside of the 800 with all cables hidden and running out the back like XL/XE machines. Though I'm out of space there now, since the 800's motherboard fills the rest of the bottom case, my PBI and extra controller ports will have to be mounted to the rear left side of the 800 coming directly out of the back. So all that is left for these upgrades and mods is to cut port holes in the 800's case and mount the boards. Continuing my 800 upgrades and mods, I made a true PBI edge-connector port for the 800. It was already upgraded with full PBI capabilities from the Incognito, but there is a 50-pin (SCSI?) style connector on it that is the gateway to PBI devices being connected. As with my DIY PBI upgrade on my 1200XL, I created and actual PBI edge-connector port on the rear of the 800. With the 1200XL, I salvaged parts from a 600XL for the mod/upgrade. With the 800 I was able to use the a XE ECI-to-PBI adapter that I don't need for an XE and never will, that came with my Turbo Freezer 2011. I still have to get the connector and 50-wire ribbon cable to connect to the Incognito and create the physical buss. On the 1200XL I purchased a length of 50-wire rainbow ribbon cable for it, and of course had to make all connections directly to the IC's, instead of a connector to plug in. I also made an enclosure for the Turbo Freezer's PBI board, with a connector on it for the actual Turbo Freezer housed in a cartridge case. I just used an old, small, project box that has been laying around for years, the board didn't quite fit, so it has "wings" out the side, but I think it still looks better than a bare board, and I'll paint it to match the 800. The Sophia 2 board upgrade was the next and second to last upgrade (dual PIA IC's will be the final upgrade). Since it's a plug-in board I didn't bother taking pictures of the Sophia 2, though I did removed the original socket for the GTIA chip on the CPU board and installed a precision socket to lower it's profile so it can fit inside the shielding were the CPU board is hidden. After that, I had to cut an opening in the heavy metal shielding so the video cable from the board could "escape." I decided to place the Sophia board in between the Shielding and PSU board's heat sink vertically as there was few other choices with the modifications I've already made. I next cut out a spot on the back of the 800's upper case half to mount the Sophia 2 board. I again used E6000 adhesive to mount it as I did for the PBI and other audio/video upgrade boards. It's strong and will hold the upgrades in place without the need for screws and bolts and holes drilled, yet easily removable, if needed with a razor blade and peeling away excess. Later on, when the dual-PIA board is installed, another 2-4 controller ports will be mounted next to the DVI output. This bog is not yet completed as I still have to install another multi-part upgrade/modification to my 800 will be dual PIA board to be used for additional controller ports. This upgrade and mod is there are still more than two controller ports when I'm using the 800 Incognito in XL/XE modes and ports 3 and 4 are used for Port B memory banking. I also will be using more than 4 ports, even in 800 mode on the Incognito along with a half-dozen AtariLab Interface devices and DIY clones of the AtariLab Interfaces for help in a future project of building a robot, with an Atari 800 brain, that will eventually be autonomous, but while in the research. experimentation and prototype building stage it will be controlled through the 8 controller ports. AtariLab Interfaces are basically break-out-boxes that make it easier as I can use standard RCA cords between the Atari and all the sensors for the robot to know where it is and avoid obstacles or interact and also Ardruino boards that will control arms and trax of the Robot as well. The intention being a 100% 8-bit robot Some other changes or previous upgrades and fixes to the 800 include: luma output resister change mod (for improving picture clarity as luma is over-boosted for today's standards), The RF has been disconnected to avoid interference from signal bleed on S-video and composite, the channel switch has been re-purposed for a mono/Quad stereo switch, a wire modification to the right cartridge port (and trace cut on the left port) so that a needed signal is available so that The!Cart and MyIDE II will work in the left cartridge slot on the 800 and internal RGB-LED lighting and keyboard lighting. I also have a Fujinet on the way for this 800 too. Another possible upgrade would be a MIDI board. The problem with more upgrades is locations to mount them internally in the 800. There is still plenty of room on the left side of the 800,, but the issue is that anything mounted internally there would either need port extension modifications so I can mount them on the back by the DVI and 2nd PIA controller ports. Obviously there is the left side of the 800 to mount jacks, but I just went through a lot of trouble getting rid of side ports with cables in the way, and I don't want to start populating the left side either.
  35. 2 points
    I've recently found the glitch on Bubsy 2 for Gameboy. I basically found the glitch, which you can have infinite life bar! But that wasn't easy to find, because when I made this glitch by an accident, I didn't know what I did. So I had to try it again and again and again, until I found the way to do it. So here's how you do it: Step 1: Go to Bubsy 2 for Gameboy (duh) and choose grand tour. Step 2: When you're here, choose the plane level. Step 3: Finish this level. The next step is a bit hard. Step 4: When you touch the finish line, go down fast as you can. If you do it, this will happen: Then go down some more, and it will automatically go threw the tunnel. Now the next is like this: when you see this rock, go towards the rock, and this is gonna happen: - either you get in and get stuck (which you have to be stuck in it) - or you'll bounce away (if that happens, it won't work) If you get stuck, great! Now you just release bombs quickly by pressing the B button. Then you should hear this sound: 8.mp3 A sound of game over, but cut shortly When you finish it, Bubsy will flash, like this: If that happens, congratulations! You've made the glitch! Now go ahead and choose the level. As you can see there should be a head of Bubsy as a life bar, but when you do the glitch, it's empty. But it won't be empty, when you touch the enemy. This will happen: If you hit more, the sprite will change. And now you have unlimited life bar. But that doesn't mean it's over. There are 3 conditions you have to know: 1. Don't fall damage 2. Don't waste time 3. Don't touch more than 2 checkpoints If you fail them, it will automatically fix itself and then you loose the power. So there you have it. I hope that this trick interested you. I sure like this glitch. If you wanna try it, go ahead and tell me if it works. Credit is all to me!
  36. 2 points
    Several years ago I rescued a number of old 4:3 LCD monitors my employer was discarding, including several particularly nice 20" 1600x1200 Dell 2007 FP. My plan was to use them to create vertical monitor MAME cabinets. But having learned from past projects, I resisted doing anything on the hardware side until I'd figured out the software side. And then, like many of my projects, that's where it waited. I'd occasionally give the idea some thought, but never really do anything serious. But more recently I've started giving trying to work out a plan. The basic idea is to use a Raspberry Pi Zero as the CPU, powered off the monitor USB ports. The monitor also has a 12V power port which could be used to power speakers - but that's hardware so something for later. From a software side it appears there are a few different front ends which could serve. Basic idea is to select game via a very simple grid which plays attract mode videos. This appears to be doable. But that brings up the question - what games? The current plan is for a minimalist control panel - joystick plus two or three buttons (depending upon what the games require). I already have Lakka on an SD card for my Pi0w which has MAME 0.78 (aka mame2003). So I downloaded the Windows version, generated the XML file and filtered it by vertical monitor and original games. The plan is to then work through that list and try to figure out what works and what doesn't. There are 700 games.... this might take a while...
  37. 2 points
    Couple of updates here: 1.) Having never had the original manual for KXBII (Kull XBII) I had to make up the manual as I tested it out. One problem that has been plaguing me is that occasionally the disk that I had KXBII (or a program wrote in KXBII) would randomly corrupt. Well after much more testing I found that you need to do a CALL INIT before you save a file after using KXBII. It's notes in the new v3 manual attached. See my https://ti99resources.wordpress.com/ for the complete KXBII package. 2.) the KXBII version of Uno that I wrote on my emulator looked absolutely horrible on a real TI99 with a real monitor. I re-wrote the program to change the colors to look much more palatable. Also fixed and added a few things to both the KXBII version and the standard version. KXBII Manual v3.pdf UNO.dsk
  38. 2 points
    So this morning a shout out was going out to Awesomehaig and Mayan People who have been two people who have put some love into the Bubsy Bobcat Wiki. This is an ongoing labor of love of many Bubsy fans. Today's article was inspired by them. Over on the Officious Bubsy Fan Group on Discord there has been wonderful showing of things that Honza 55 44 has discovered on the latest Bubsy game "Paws on Fire". While there has been much uncovered, such as the fact shown from earlier game trailers that the first boss was actually supposed to be Poly and Ester, the Woolie Queen: But most exciting for me, and for those helping on the Bubsy Fan Wiki, are actual names of the enemies in Paws on Fire. DRUM ROLL PLEASE!!! They are... Exciting stuff. Honza has done some great sleuthing into this latest game, and hopefully we'll add more in the future. Wrapping this up, how about some art. Bubsy fans are always drawing great art, and finding art! I tried my hand at 3D printing the Busby "Games Done Quick" award pattern. It had challenges but not a bad first go. Speaking of art, some art done over Twitch... Loved this one... There is a lot of good art out there. Good time to be a Bubsy fan. Also for those that are looking for a Jaguar to play "Fractured Furry Tales" there is currently an auction for a complete system and Bubsy for a nickel short of $350. It is like they had us in mind. Alright, wrapping this up for the Bubsy Wiki editors to read. You all take care and stay safe.
  39. 2 points
    *Background: Hi everyone! I wanted to start a blog about my long term game dev project, because sometimes I have a lot to say, but most of the usual social media is not very well suited for that. I've been working on a flick screen platformer 8-bit project for a while, it's going to be called Baron Lovejoy Travels in Time. My interest in old 8-bit computers (and consoles) has grown exponentially lately and I'm hoping to port the game to more and more old systems. I got this megalomanic idea when I saw a developer called "Misfit" (also from Finland) releasing his game Rodmän for eight old home computers. It's too much fun getting to know some of the classic systems better and trying to learn how to create games for them. The unique "personality" of the graphics is one thing I really like about the old 8-bit computers (and consoles), you can tell right away if a screenshot is from an Amstrad CPC, ZX Spectrum, NES or Commodore 64 game. 16-bit era games were already harder to tell apart between machines. I haven't decided which versions to take beyond pixel mock-ups, but at the moment I have a small working start on the C64, Plus/4 and Vic-20. There's still a lot to do to finish even one of them. The rest are purely pixel mock ups at the moment. For the Atari Lynx version I have the most graphics done so far. (The graphics on the Lynx was the first original version). Atari 8-bit and MSX mock ups planned next in line. For many of the mockups it took longer to find info and understand the different color modes and limitations of the systems than to draw the pixel graphic itself Many thanks to all the wonderful people on the different machine specific forums that have been more than kind and helpful! I have this idea that every other version can have different main character and variations on the graphics if I want, just like it often was back in the day. That's much more fun than having completely identical ports like games nowadays. 😊 *Some thoughts behind the design and the game: Preliminary story synopsis: The main character is a plump rascal, Klaus "Lovejoy" von Kleinschnabel, the world renown painter, astrophysicist, musician and poet extraordinaire. He's built a time machine driven by steam which he and Countess Mimi uses to help people in time and space. The notorious time thieves are after him because his groove of freedom and love threaten those in power. To proclaim himself Baron (free man) was the last drop for the time thieves, who means to own and control every man, they try to hunt him down through space and time. I want the game to have an unapologetically cartoony style that is clear and easy to read. Even when that might be a bit against "convention" on a specific machine. From what I've seen, using a lot of dithering and detail is extremely common in 8-bit graphics, like for example on the c64 and CPC, to the point that it's become THE style of those computers. Breaking style will probably put a few people off (I know I don't always like unconventional graphic styles on the old machines either) but I want to try and do something graphically "clear" and high contrast, like in (old school) cartoons. I don't think my graphics are that far of convention either. I want to keep the gameplay super simple, kind of like in an archetype platformer style. I've been reading about game design lately, and some complain about "generic platformers" now a days, but I grew up with really basic platformers on the C64, so I love simple platformers. That's why I'm going to create the game I would want to play myself. I'm keeping the scope down with a really simple game. It's more about the fun of exploring different platforms than doing some huge epic game. I can't, and I'm not trying to compete with the recent "AAA" titles released on many retro systems that push the systems to their limits. I'm an artsy fartsy type, so I want to focus on the concepts of feeling(s), fun colorful graphics and a "nice end product as a whole" (for example fun cover art and cover design), that are sometimes forgotten in the technical details. I really do admire it when someone is pushing the old systems to their limits and it's fantastic to see what's been achieved, but I think there's room for simpler games too. Hoping to release the game on physical media when it's done, somewhere in the far future. Preliminary thoughts is at least C-cassette version for some of the systems and cartridge for the Atari Lynx. Another thought I have is to release a slightly simpler and/or shorter game for the low end machines like the Vic-20 and ZX81. They could be called "Baron Lovejoy - Tropical Trouble" or something like that, and the slightly beefier versions for some of the more high-end machines (high-end in 8-bit measurements that is) could be the "Baron Lovejoy Travels in Time" version with more levels/level graphics. Let's see what the future holds. Level themes that I was thinking of in "Baron Lovejoy Travels in Time" are: * the Caribbean 1688 * London 1888 * Miami or California 1988 *Disclaimer, the whole thing can and will still take a long, long time to finish. I'm very busy as I have a family and a day job. I was thinking having this as a constant "side" project, so that whenever I'm not working on a game with my friends I can work on this. Also I was thinking that I could release one version at a time when they're done, and not try the (at the moment) impossible task of releasing many or all versions at the same time. *Screenshots and Mockups: ZX81 (1981) mockup Commodore VIC-20 (1980/1981) mockup ZX Spectrum (1982) mockup Commodore 64 (1982) screenshot Commodore Plus/4 (1984) screenshot Atari 7800 (1984) screenshot Amstrad CPC (1984) mockup Nintendo Gameboy (1989) mockup Atari Lynx (1989) mockup
  40. 2 points
    A big box arrived at my home today. Inside are 24 Trimerous chips, 24 boxes, 24 front labels, and 24 side labels. And they all came not being precut, which means I have to be the one cutting. I did the first one with scissors, and it looked okay despite me having shaky hands. Then I remembered "I have a cutter for this type of thing!" So the second one looks much better. Unfortunately though, the labels have curved edges (of course they do.) So that part has to be hand done. But other than that, I think I can make a quality product. And I have 22 Channel F carts left to assemble. I have to get myself down to the copy shop to get the manuals printed. I printed one for the printers to copy. I had to change the ink cartridge in my printer even though it was still half-way filled up because it showed your typical "home printer lines" on the blue parts. Changing the cartridge got rid of them. And THEN, once the printer's visit is done, the labels cut, the cartridges assembled, can I be able to make a for sale thread in the marketplace and accept orders. This is hard work, but I hope it pays off in the end. My arm still hurts when I try to raise it or move it in any direction. Who knew how often I use my left arm? I'm right handed, so I chose my left arm to get the shot in. My hunch of it hurting was good.
  41. 2 points
    Thanks to a Radio Shack solar project kit I owned in my youth, solar power and LEDs have always held my attention. Solar accent lights are neat and handy for a number of reasons. An entire industry of electronics parts exists just for these types of devices, not only simplifying the circuitry, but also lowering the prices to ridiculous levels -- motion-activated solar LED lights can be purchased for under $5! The yard variety of these lights tend to suffer from a hazing of the resin or other material used over the solar panels, eventually preventing them from getting a good charge off a day's sun. In the past I tried various regular household cleaners, fungicides, mold and mildew treatments, buffers, and super-fine grit sandpaper to clean them, yet to no avail. Many of these have wound up discarded because I could not get them restored. Early this spring I was staring at one and mulling over a number of variables when something clicked. The bottom line: these look a lot like water spots on black car trim. I could have tried some CLR or Lime-Away on the lights, but I was concerned these would be too harsh and cause damage. Thinking back to my car, a nonsense idea occurred to me: Mothers Back to Black. Recommended to me by my body shop to put the sheen back into the unreasonable amount of black plastic trim on my car, I figured it could not hurt to try. Such a simple solution, and it works a treat. Of course, like anything else which gets cleaned or restored, this is not a fix which lasts forever. I found that I have to re-apply after a month or two, depending upon rain and yard watering. (Oh, and bird poop.) I also have added a little bit of a tilt to them to help water run off, though you may be able to tell the coating over the panels in my lights shown are recessed and tend to create a small pool. Mind you, this does not account for the yellowing of lower-quality resin or plastic covering a solar panel. That is a whole other problem with which to deal (or just chuck and replace.) I had about twenty at one time I picked up from Ace Hardware. The cover on those was domed and helped prevent water build-up, but it also yellowed and darkened to the point of being unable to produce a good charge voltage or current. The ones I show here are from WalMart and are about seven years-old. Another tip for longevity is to replace the batteries which come with the lights. Every one I get has a cheap cell holding about 200mAh to 450mAh, which is not only not enough to keep them lit for long periods of darkness, but also less than what the panels will pump into them in a fairly well-lit yard over the course of a day. This will result in overcharging the battery, eventually causing battery damage and leakage. You can pick up larger capacity NiMH cells from the WalMart garden center or many local outlets. I get the 1500mAh "AA" and they can keep a simple 5252F-based circuit with a color-changing LED running for almost eight hours. As well, the cells are 1.2V, and the panels shown here output right at 1.2V under moderate to full sunlight. Many smaller lights have smaller cells: some AAA, but I have picked up a few recently which have 2/3AA and smaller. Thus, replacing the battery may prove to be more difficult. I have not tried commercial brand rechargeable batteries like Energizer or Duracell. While I suspect they will work just as well, these lights get very hot under direct sunlight so that may effect longevity of the battery. As always, your mileage may vary (YMMV.)
  42. 2 points
    This is the first of several tutorials to help those new to Forth, fbForth 2.0 in particular, to understand the language and its programming environment, as well as to gain some facility with it. fbForth is based on TI Forth, which was derived mostly from FIG-Forth with some influence from Forth-79. There are more recent Forth standards; but, compatibility with TI Forth was the prime concern. The biggest difference between TI Forth and fbForth is that fbForth is a file-based system, whereas TI Forth reads/writes directly from/to disk sectors without regard to any file structure. This is dangerous for the health of the disk and the user, especially, if you were to inadvertently use a disk with files on it for other systems. It also makes it difficult to exchange programs. Not only does fbForth coexist with as many unrelated files as will fit on a disk, you can create many different blocks files on the same disk as long as there is room. A TI Forth disk cannot contain anything but Forth blocks. I suppose that is more than sufficient for preamble. Let’s get on with learning fbForth. To operate the fbForth 2.0 System, you must have the following equipment or equivalent: TI-99/4A Console Monitor fbForth 2.0 Module (see this forum thread’s post #1 to get yours: fbForth—TI Forth with File-based Block I/O ) Peripheral Expansion Box (PEB) with 32 KiB Memory Expansion Disk Controller with 1 or more Disk Drives RS232 Interface (optional) Printer connected to RS232 interface (optional) If you wish to work through these tutorials but do not have this equipment or equivalent (CF7+ or nanoPEB, which substitutes for a PEB with the first three PEB items above), all of the software and firmware are available in the above-referenced thread for the Classic99 and MAME emulators. I also can supply the same for CaDD Electronics’ PC99 emulator, if you need it. It is a good idea to have a copy of fbForth 2.0: A File-Based Cartridge Implementation of TI Forth (the manual—available in the above forum thread) for reference, especially for looking up commands (Forth words—more below) in the glossary (“Appendix D”). Please note that the glossary is in ASCII order, which is listed at the bottom of every glossary page. Also, if you have a copy of the first edition of Leo Brodie’s excellent beginner’s book on Forth: Starting FORTH, “Appendix C” of the manual cross-references conflicts with fbForth 2.0. After powering up: and selecting “2 FOR FBFORTH 2.0:12” for 40-column text mode, say, If FBLOCKS is found, you will be presented with: followed by (after your color choice): If FBLOCKS cannot be found, you will see: The system blocks file is FBLOCKS and must be present in DSK1 for the first series of screens to display. If fbForth does not find it there, the second screen displays. fbForth will still work just fine. You just won’t be able to display the menu of loadable utilities with MENU until you make FBLOCKS the current blocks file, which you can do by typing the following at the console’s flashing cursor if FBLOCKS is in DSK2, say: USEBFL DSK2.FBLOCKS 1 LOAD You can force fbForth to look for FBLOCKS on another disk at boot time if you hold down the number of that disk immediately following your startup-screen selection. Notes about the welcome screen: The first two lines and the last line of the welcome screen appear regardless of the presence of FBLOCKS. The version number of the cartridge includes the revision number after the ‘:’. The line beginning with “FBLOCKS mod:” comes from block #1 of FBLOCKS and will always reflect the current date of the system blocks file, FBLOCKS, which is always kept up to date in the above forum thread. Commands in Forth are called “words”. You will note that Forth words included in the normal text of these tutorials appear in boldface and are surrounded by spaces. This may look awkward when the space after a word precedes a comma, period or similar punctuation mark; but, since those punctuation marks are also Forth words, this practice avoids ambiguity. Speaking of spaces around words, that is how the Forth text interpreter ( INTERPRET ) knows it has the next word to look up in its dictionary (linked list of already defined words). It searches the dictionary from the most recently defined word to the very first word defined. In fbForth, that word is EXECUTE . See what I did there? EXECUTE has a space after it and it’s before a period. You are in the hands of the Forth text interpreter in two places, viz., at the console’s blinking cursor and when a block is loaded by the word LOAD . The input stream is viewed by the interpreter as a series of tokens separated by one or more spaces. If the interpreter finds the word, it executes the word and gets the next token. If the interpreter cannot find the token as a word in the dictionary, it checks to see if the token can be converted to a number in the current radix (number base). If it can, it pushes that number onto the parameter stack, which is often termed “the data stack” or, simply, “the stack”. The parameter stack, by the way, consists of a stack of cells, much as a stack of plates in a cafeteria, with the same restriction: You can only readily remove (pop) the top plate, i.e., the last cell on the stack is the most accessible and thus the first one popped off. This Last_In_First_Out situation is known as LIFO. Furthermore, in fbForth, a cell is 16 bits or 2 bytes wide. In computer parlance, 2 bytes constitutes a word; but, to avoid confusion with talking about Forth commands as words, we will generally use “cell” instead of “word” to mean “2 bytes”. Finally, if the token is not a word in the dictionary and it cannot be converted to a number, the interpreter gives up and issues an error message that repeats the word it could not find followed by a question mark. It also clears the stacks (parameter stack and return stack, about which more later) and, if loaded from a blocks file, leaves two numbers on the parameter stack to aid in finding where in the input stream the error occurred. These numbers are the contents of user variables IN (the position in the input stream immediately following the token causing the error) and BLK (the block number being interpreted). When loading a block that aborts with the error report just described, you can type WHERE to put you into the editor with the cursor at the error. We will talk more about the editor in another lesson. Otherwise, you may just want to type SP! (stack pointer store) to clear the parameter stack. After you finish entering one or more successfully interpreted words and/or converted numbers with <ENTER>, the interpreter will display “ ok:n” to let you know its success. The ‘n’ after the colon is the depth of the parameter stack, i.e., how many numbers are currently on the stack. Here are a few lines typed at the console: The first line is from just tapping <ENTER>. Everything is OK with nothing on the stack. The second line pushes ‘4’ onto the stack and indicates all is well with one number on the stack. The third line pops and prints ( . ) the number, showing the stack as now empty. The last line obviously was not understood by the interpreter, hence the error message. Let’s wind this lesson up with showing you the most common way to define a new word in Forth. The defining word we will use is : . : starts a high-level Forth definition, which is terminated with ; . The first token that must follow : is the name for the new word. fbForth is case-sensitive. HELLO is different from hello . In our definition, we will use the word .” , which means “print string”. ." accepts any characters into the string except for " , which is the terminator. As soon as it sees the " , it prints the string: We will now define the word HELLO and add CR to the definition before and after the print-string code. This will put the cursor at the beginning of the next line each time it is executed. Typing the newly defined word, HELLO , will execute its contents: Remember that Forth words must be separated by spaces. The Forth Interpreter looks in the input stream for the next word until it finds a space or the end of the input stream. Upon finding a space, it then looks for the next word that starts with the next, non-space character. There are six words used in our definition of HELLO above, which are: : HELLO <---the word we are defining CR .” CR ; That’s all for now.
  43. 2 points
    I've bought a new primary computer to replace the current one - a late 2013 27" iMac. The iMac has been a great computer and for the most part not being able to use it to run Windows apps has been offset by being able to run MacOS apps. Plus it gave me the opportunity to develop an iOS app. And it has a really nice 27" 2560x1440 screen. The problem is games. I've been playing CS:GO's Danger Zone mode and putting up videos on YouTube for over a year and have been getting comments on my low frame rate for just as long. The obvious solution is to buy a new computer. The problem with the solution is justifying paying C$2K just so I can play a game at a higher frame rate. But now that my son is home from college, I can validly say that he can use it to continue his game art endeavours. My objective was to assemble a computer which could run Danger Zone at [email protected] (equivalent to [email protected]). Unfortunately specific performance numbers are hard to come by, so I'm not sure whether it will achieve that objective. In addition, I'm thrifty - so I was reluctant to just throw money at the problem and tried to weigh incremental price vs incremental performance. (Costs given in Canadian dollars and include shipping and taxes.) C$303.97 AMD Ryzen 5 3600 I really started dreaming about a new PC with the Zen 2 processor benchmarks - a high performance CPU at budget prices. This was a processor I could build a decent system around. It benchmarks at over 2.6 times the speed of the Intel 4771 in the iMac (18% faster in single thread), which I am hoping is enough for CS:GO that tends to be CPU bound and only really uses 4 cores. And while I originally dreamed of the Ryzn 7 3700x, that's $200 more for 1/3 more cores but only 28% higher performance (and only 5% more in single thread). I'm going to stick with the stock cooler unless it's too noisy. C$258.77 GeForce 1650 Super I went with the GeForce 1650 Super because it supports NVENC v6 - for making YouTube videos. It benchmarks at 2.5x the GeForce 780M in the iMac. However, I probably should have gotten the GeForce 1660 Super for 28% higher performance for only $100 more. C$134.18 MSI B450M Gaming Plus Motherboard I went with the B450 over the X570 because I didn't see the point of paying substantially more for PCIe 4.0. I went with MSI because, if necessary, I could flash the BIOS to support Zen-2 without a CPU. The Gaming Plus motherboard had all of the features I needed without a lot of features I wouldn't be using. (In addition, I noticed a lot of motherboards which had more slots etc also had cross restrictions on which could be used.) However, this particular motherboard was difficult to find and I had to drive 150 miles round trip to pick it up. I probably should have reviewed what was available the current market rather than sticking with the decision I made 6 months ago. (Note: I learned the B450 won't be supporting the Zen-3 after I bought the motherboard, although I'm not certain it would have changed my decision as I am not likely to upgrade my CPU that soon.) Note: I've also learned there are multiple "Gaming Plus" motherboard models from MSI. I lucked out and got the one I assumed I was getting. C$205.50 32GB DDR4 3200 I bought the cheapest RAM available from newegg.ca when I ordered, although I did spend $10 extra to get the 3200 speed instead of the standard speed. C$214.68 Intel 660p 1TB M.2 PCIe NVMe SSD It's strange to think how much storage this is; and it's both smaller and faster than a normal SATA SSD. I paid a little extra for Intel because they have historically made very good controllers. C$100 Thermaltake Core V21 case I went with this case first because I'm a traditionalist - I like my motherboard horizontal so the graphics card & CPU cooler aren't putting strain on the motherboard. I also find the cube look to be attractive. It also has a massive 200mm intake fan behind the vented front panel, so I shouldn't need any other cooling. I decided to put the windowed panel on the top and the vented panels on the side because, although having a vented panel on the top would probably better for cooling, it would be worse if one of the cats decided to sit or sleep on it. It's also kinda cool to look down into the case. As this is an older case I was able to buy it second hand, although it meant a 80 mile round trip drive to pick it up. C$67.79 Enermax 500W Gold Revolution Duo This was the cheapest 500W gold rated power supply from a brand I recognized. (500W is certainly overkill, but I didn't see the logic to try to get "just enough" and risking "not enough".) For some reason it was in a velveteen bag in the box. The cables are nicely sleeved, although not detachable, and it includes a couple velcro straps. C$101.69 TP-Link TX3000E I new I wanted a PCIe WiFi adapter with external antennas and this one was competitively priced. While I don't have an AX3000 router, I figured having the adapter support the latest and greatest WiFi standards should mean it will get the best results from my last-gen router. C$564.99 ASUS VQ27BQ As I've said, one of the best features of the iMac is the monitor and there wasn't any way I was going to downgrade for the new computer. In addition to being 27", 2560x1440 and capable of 144Hz (or better) it had to support G-Sync (so if the computer wasn't capable of hitting [email protected] I'd at least get the same framerate as fps). Fortunately, Nvidia has enhanced their drivers to be compatible with many Freesync monitors - which are significantly cheaper than G-Sync monitors as they don't have the proprietary chips required for G-Sync. I was going to get the Acer XG270HU as it is slightly cheaper, but it was in short supply and I was able to pick up the ASUS (which has better specs) open box for the same price. One challenge is I purchased some of these components online so I needed to wait for them to be delivered, which was even more frustrating due to the 15 day return policy on the components I picked up. C$213.57 Microsoft Windows 10 Home When first I looked at the Microsoft website I thought "USB" meant you'd download the installer to a USB (and receive the activation code electronically), so I didn't bother buying it until all of the components arrived. Imagine my surprise when I learned it meant Microsoft was shipping me a USB via FedEx! (There might be a download version, I didn't check since I'd already paid.) But then I realized I could download SteamOS and use it while I waited for the delivery. Once I got the components, assembly went fairly smoothly - although not without a few frustrating moments. Why does the AMD stock cooler not use the (presumably) standard motherboard mounts? The case includes a bracket for the power supply but it's difficult to install so I left it off. Getting the motherboard and I/O shield mounted was annoying. I ended up putting the I/O plate on the motherboard and then putting the two into position in the case as the grounding tabs on the I/O shield made it impossible to do it otherwise. Then I had to push the motherboard into position to get the mounting holes to line up and hold it there while I screwed it in. A dual slot graphics card (which is the norm these days) covers the slot to the right (looking from the rear) of the PCIe x16 slot. Fortunately my motherboard has two PCIe x1 slots (both to the right of the PCIe x16 slot) so I had an open slot for the WiFi card. (I'd assumed the graphics card would extend to the left, over the M.2 card.) Of course when I first powered on the PC all I got from the monitor was "no signal". Immediately I started to wonder if I'd bent some pins on the CPU because I'd dropped it onto the socket (forgetting to open the retention clip first to boot). But before taking things apart I decided to see what I could troubleshoot first. So I connected a laptop to the monitor via the HDMI cable - that worked. So I swapped the Display Port cable I had used (required for G-Sync) with the HDMI connection and was greeted with the BIOS menu. Hooray! However, the SteamOS install wasn't successful When the install first started it presented a warning message about UEFI vs BIOS which had me spending a bunch of time trying to get GPartEd to run (eventually just dropped to command line and used parted) to try and see if there was anything pre-installed on the SSD which I might want to keep. (Nope) After going through the primary install it very unhelpfully popped up a window saying it can't connect to the network (no duh) and I needed to configure my WiFi (double no duh), but just dumping me into the GNOME desktop with no hints about what needed to be done. After many, many frustrating attempt to try to configure the network (during which it keeps popping up the "no network" message), I found a how-to online which showed I needed to click on the WiFi adapter in the Network Device Manager (or some such). Except I didn't have a WiFi adapter listed in the Network Device Manager. I guess SteamOS doesn't include the Linux device driver for my next-gen adapter. In the morning (while everyone else was sleeping in) I dragged the computer over to the living room and plugged it directly into the router (and the TV instead of the monitor) and let it finish the install. Or tried to. At some point it got caught in an infinite loop of "encountered a fatal problem attempting to correct... <reboot>: Figuring something had gone wrong, I tried to reinstall, then had to use parted to clear the partitions, then go through the reinstall process to... same problem. After a shower I realized I was wasting my time on something which was going to be temporary anyway. I would have liked to have seen how CS:GO under SteamOS performed, but it wasn't worth the time, effort and frustration.
  44. 2 points
    [From the Vic 20 Version] Hey fans of the Bubster, thanks to MKdoes711 we now have a nice manual for this game. I've updated the first message of this thread with it. Or you can click here to download the manual. I've added pictures showing the development progression of the sprites through the alpha and release revisions, and pictures and links of this game on other platforms. We've had some Bubsy fans on the Bubsy Officious Dischord server recently find an interest for this game and updating things was a fun shelter at home project for today. Thanks again for Troff making the SuperCharger version of this game, which I've also linked in the opening message. Check out all that and a Kitt'N Kaboodle here... https://atariage.com/forums/topic/271192-bubsy-for-the-atari-vcs2600/#comments -Doctor Clu [Atari computer/5200 title and Commodore 64] Originally posted here... https://atariage.com/forums/blogs/entry/16642-cruizin-atariage-kittn-kaboodle-update-april-2020/
  45. 2 points
    For the first time in almost 10 months, I worked on Aaron the Aardvark for the Jaguar again. The time was spent trying to add a big huge boss in the game. And that introduced a lot of bugs. It's hard to tell whether I got rid of them all or not. Here is a picture of the very big UFO for Aaron to shoot his poop at. So here what Aaron has to do is keep shooting. It doesn't matter here where he shoots, he'll hit the ship. The hard part is avoiding the lasers. He'll get three points for each shot. It takes ten shots to beat the UFO. I wanted to have the UFO flash before it disappears, but I couldn't get it to work. So it just disappears. And if you don't die, you get a bonus taco. So this huge ship appears every 5 waves. I also worked on the title screen. I don't know how and I wasn't intending to, but I made the Aaron the Aardvark logo bigger. What I was wanting to do was center it. I also made the "(C) 2020, chris read" more visible by putting it at the bottom because it's printed in white and I don't know how to change that. And I tried to center it as well. Something I need to do that I just noticed is make it so the ant total is correct by erasing both its digits when a new game starts. The score was once written as "0 0" when I started a new game. Luckily it should be an easy fix.
  46. 2 points
    As I blogged about earlier, Panzer Dragoon Remake made me want to hook up the Saturn again to play though the original. Now I'm mostly working on Panzer Dragoon Zwei, which is one of my favorite Saturn titles. I am up to level 6 which is the assault on the huge flying imperial ship. I died at the boss fight, so I'll try it again next time - this game allows a Save End option to continue later. It has been so long since I had played Zwei, that I keep getting killed off. I don't remember the strategies or patterns, and that makes the game a lot of fun all over again. In fact almost all the levels killed me off at least once. Level 5 (I think) where you battle in the high-up snowy skies killed me the most so far. I finally remembered the secret to beating the boss - have enough health of course, but also don't lock-on at all because his rotating shield blocks all missiles. Just keep following him and button-mash fire at him until he's gone. I also popped in my Williams' arcade classics disc and enjoyed a round of Bubbles, Defender, and Robotron. For Robotron I have to angle my controller a bit because the firing buttons aren't laid out in a perfect diamond. for Up/Down/Left/Right shooting, but I adjust pretty quickly. Love using the Saturn japanese pad for gaming. I didn't even have to take a carpal-tunnel-syndrome break like I often have to with other controllers (my hands go numb). Maybe next time I fire up the Saturn, I'll finally beat all of Zwei and open Pandora's Box.
  47. 2 points
    So in the past we've talked about the Bubsy plush that the Accolade developers had as a promotional item during the development of Bubsy 1 and Bubsy II. And we talked about it in 2010, 2013, and this one and that one in 2019. At this time, ten known in the world to still exist. Earlier this year a Bubsy plush came up on ebay, which I went ahead and bought. A decade long dream come true. And today with all the #Stayhome things going on... ... I finally got around to the purpose I bought the Bubsy plush for in the first place: To study it and share my findings. Afterall, as the Dungeon Master once said in the D&D cartoon, "The man who knows and never tells is as good as the man who never knew." This morning I VERY roughly mapped a pattern for the Bubsy plush using frog tape. For those that don't know, frog tape is what you lay down to keep something from being painted. Just sticky enough to apply, but not so sticky that it can't be removed easily. Basically a post-it-note in tape form. And from that, I got the results that you see below. So if you wanted to try to assemble a Bubsy plush, well, this will point you in the right direction though I am no fashion designer. But this and the pictures of the plush I've included should give you a pretty good idea of what it looks like, and the scale of the plush. Bubsy Plush Pattern.zip Until next time I wish you well, and say "Fashion designers' license? What for?!" -Doctor Clu of the Bubsy Bobcat Fan Blog. Originally posted here (to see all the pretty pictures) https://atariage.com/forums/blogs/entry/16612-cruizin-home-the-bubsy-plush-april-2020/
  48. 2 points
    The Heathkit Hero Jr robot came out in 1984 as a more home friendly version of the original Hero 1 robot, but was still equipped with multiple sensors, speech and programming capabilities albeit without a robotic arm attachment. I bought my robot on Ebay and upgraded it with extra memory (24K), an updated ROM, serial communication and a multi-cartridge which combined all of the cartridges produced for the Hero Jr into one master cart, as well as a beefy 10Ah battery and full documentation. The Robot Workshop (https://www.robotworkshop.com/robotweb/) still has most parts, upgrades and documentation for the Hero Jr at very reasonable prices. Manufacturer Heathkit Type robot Release date 1984 Introductory price Kit US$599.95, Assembled US$1000[3] Discontinued Before October 1987 (Assembled)[15] 1995 (Kit) Units sold 4000 (across 8 years) CPU Motorola 6808 1 MHz Memory RAM: 2 kB, expandable to 24 kB Monitor ROM: 32 kB Display 9 LEDs Sound Votrax SC-01 speech synthesizer[5] Input Hex keypad with 17 keys Power Batteries:6 V 3.8 A·h x2, x4 optional Dimensions 19 inches high[16] Mass 21.5 pounds[16] The interesting thing is that all the electronics are located in the "head" of the robot and under the front panel, while the drive mechanism and battery are in the bottom part, leaving most of the mid-section open, which was very inviting for modifications and modern upgrades. And while I dabbled with this idea for a while, I ended up deciding not to modify the robot from its original condition and opting to experiment with using the serial port as the only means of communication with it. The Hero Jr is capable of baud rates from 300 to 9600 with Even parity and 7 data bits. An early experiment I did involved a wired serial connection to a Raspberry Pi Model B where I had a Pi camera recognize a ball using the OpenCV framework running on the Rpi, and the result was communicated to the Hero Jr who in turn verbalized it using its on-board speech synthesizer: This served as a proof of concept, but I really wanted to ditch the serial tether and go completely wireless. I also wanted to use the TI 99/4A computer, and I already had quite a bit of experience with wireless serial communication on it from my previous wireless weather station project: The main problem I ran into was the the Xbee transceiver I used for that project did not support 7 data bits, only 8, and it turned out that almost all available modern transceivers had the same issue!. Luckily, I finally was able to find a very cheap Chinese transceiver called the HC-12 which costs less than $5 per module and supports a wide range of communication parameters. It's really designed for use with an Arduino, but with the addition of a GPIO to serial converter, one can connect it to a standard computer terminal. From there, I went through a couple of experimental tests as shown below. The main difficulty encountered was the very short range of the coil antenna that comes stock with the HC-12 module, and so this required upgrading it to beefier coax antenna. From there I was finally ready to put the project together using the TI 99/4A computer. I opted to use RXB on the TI side because it allowed low-level access to the serial card using the CALL IO command, something not available on other Basics. This was necessary because the HC-12 was not very reliable in its wireless transmissions and communication was frequently dropped, thus requiring a form of communication time-out feature in order to resend dropped data packets. Here's the code for the TI. You might note that there are a lot of repetitive routines which could not be consolidated into subroutines because the ON ERROR command in Extended Basic does not work within subroutines. // HERO Jr remote exploration program // November 2019 // INITIALIZATION CALL CLEAR OPTION BASE 1 DIM MAP(23,32) HOMEX=16 HOMEY=12 PRANGE=0 TCOUNT=0 DIR=1 !1=N 2=E 3=S 4=W OPEN #1:"RS232.BA=9600.DA=7.PA=E.EC",UPDATE CRU=2464 !CRU ADDRESS OF TMS9902 (>1340) DIVIDED BY 2 // CHECK IF ROBOT IS READY PRINT "CHECKING ROBOT STATUS" CheckStatus: CALL IO(3,1,CRU+18,0) PRINT #1:65 GOSUB BytePresent IF FLAG=0 THEN CheckStatus Status: ON ERROR Status INPUT #1:ANS$ ON ERROR STOP IF VAL(ANS$)<> 1 THEN CheckStatus ELSE PRINT "ROBOT IS READY!": : PRINT "PRESS ANY KEY TO START" GetKey: CALL KEY(0,K,S) IF S=0 THEN GetKey // SET UP DISPLAY CALL CLEAR // CHARACTER DEFINITIONS CALL CHAR(104,"FFFFFFFFFFFFFFFF") !BLACK LEVEL 0-20 CALL CHAR(112,"FFFFFFFFFFFFFFFF") !GRAY LEVEL 21-100 CALL CHAR(120,"FFFFFFFFFFFFFFFF") !WHITE LEVEL 101-255 CALL CHAR(105,"FFC3A59999A5C3FF") !OBSTACLE CALL CHAR(106,"183C5A9918181818") !UP ARROW CALL CHAR(107,"080402FFFF020408") !RIGHT ARROW CALL CHAR(108,"18181818995A3C18") !DOWN ARROW CALL CHAR(109,"102040FFFF402010") !LEFT ARROW DIRSPR=106 CALL COLOR(10,2,16,11,15,16,12,16,16) CALL SPRITE(#1,DIRSPR,9,(HOMEY-1)*8+1,(HOMEX-1)*8+1) // START EXPLORATION RX=HOMEX RY=HOMEY Explore: TCOUNT=TCOUNT+1 IF TCOUNT>10 THEN Home // GET LIGHT LEVEL LightInput: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:6 !Read light sensor GOSUB BytePresent !WAIT FOR BYTE TO COME IN IF FLAG=0 THEN LightInput Status1: ON ERROR Status1 INPUT #1:LIGHT$ ON ERROR STOP IF VAL(LIGHT$)<21 THEN CALL HCHAR(RY,RX,104) ELSE IF VAL(LIGHT$)<101 THEN CALL HCHAR(RY,RX,112) ELSE CALL HCHAR(RY,RX,120) CALL DELAY(1) // Check for movement in front of robot MotionCheck: CALL IO(3,1,CRU+18,0) ! CLEAR RECEIVE BUFFER PRINT #1:8 !Read infrared sensor GOSUB BytePresent IF FLAG=0 THEN MotionCheck Status7: ON ERROR Status7 INPUT #1:HEAT$ ON ERROR STOP IF VAL(HEAT$)=0 THEN RangeInput DISPLAY AT(24,1)BEEP:"MOTION DETECTED!" Speak1: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:9 !Speak CALL DELAY(1) PRINT #1:1 !PLEASE MOVE CLEAR OF ME GOSUB BytePresent IF FLAG=0 THEN Speak1 Status8: ON ERROR Status8 INPUT #1:ANS$ ON ERROR STOP IF VAL(ANS$)<>89 THEN Speak1 DISPLAY AT(24,1):" " GOTO MotionCheck // Check for obstacles RangeInput: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:7 !Read sonar GOSUB BytePresent IF FLAG=0 THEN RangeInput Status2: ON ERROR Status2 INPUT #1:RANGE$ ON ERROR STOP IF VAL(RANGE$)>40 AND ((DIR=1 AND RY>2) OR (DIR=2 AND RX<31) OR (DIR=3 AND RY<22) OR (DIR=4 AND RX>2)) THEN GOTO PathClear IF DIR=1 THEN CALL HCHAR(RY-1,RX,105):: MAP(RY-1,RX)=1 IF DIR=2 THEN CALL HCHAR(RY,RX+1,105):: MAP(RY,RX+1)=1 IF DIR=3 THEN CALL HCHAR(RY+1,RX,105):: MAP(RY+1,RX)=1 IF DIR=4 THEN CALL HCHAR(RY,RX-1,105):: MAP(RY,RX-1)=1 Speak2: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:9 !Speak CALL DELAY(1) PRINT #1:2 !OBSTACLE DETECTED GOSUB BytePresent IF FLAG=0 THEN Speak2 StatusObs: ON ERROR StatusObs INPUT #1:ANS$ ON ERROR STOP IF VAL(ANS$)<>89 THEN Speak2 //Back up Reverse: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:2 GOSUB BytePresent IF FLAG=0 THEN Reverse Status3: ON ERROR Status3 INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN Reverse IF DIR=1 THEN RY=RY+1 IF DIR=2 THEN RX=RX-1 IF DIR=3 THEN RY=RY-1 IF DIR=4 THEN RX=RX+1 CALL LOCATE(#1,(RY-1)*8+1,(RX-1)*8+1) CALL DELAY(2) //Check for surrounding blocked path IF DIR=1 THEN CALL GCHAR(RY,RX+1,BLOCK):: GOTO Turn IF DIR=2 THEN CALL GCHAR(RY+1,RX,BLOCK):: GOTO Turn IF DIR=3 THEN CALL GCHAR(RY,RX-1,BLOCK):: GOTO Turn CALL GCHAR(RY-1,RX,BLOCK) Turn: IF BLOCK<>105 THEN Go_Right ELSE Go_Left //Turn right Go_Right: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:4 GOSUB BytePresent IF FLAG=0 THEN Go_Right Status4: ON ERROR Status4 INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN Go_Right DIR=DIR+1 DIRSPR=DIRSPR+1 IF DIR>4 THEN DIR=1::DIRSPR=106 CALL PATTERN(#1,DIRSPR) CALL DELAY(2) IF HFLAG=1 THEN Home GOTO Explore //Turn left Go_Left: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:5 GOSUB BytePresent IF FLAG=0 THEN Go_Left Status6: ON ERROR Status6 INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN Go_Left DIR=DIR-1 DIRSPR=DIRSPR-1 IF DIR<1 THEN DIR=4::DIRSPR=109 CALL PATTERN(#1,DIRSPR) CALL DELAY(2) IF HFLAG=1 THEN Home GOTO Explore //Move forward PathClear: CALL DELAY(1) Forward: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:3 GOSUB BytePresent IF FLAG=0 THEN Forward Status5: ON ERROR Status5 INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN Forward IF DIR=1 THEN RY=RY-1 IF DIR=2 THEN RX=RX+1 IF DIR=3 THEN RY=RY+1 IF DIR=4 THEN RX=RX-1 CALL LOCATE(#1,(RY-1)*8+1,(RX-1)*8+1) CALL DELAY(2) IF HFLAG=1 THEN Home GOTO Explore // Go home routine Home: HFLAG=1 IF RX=HOMEX AND RY=HOMEY THEN DISPLAY AT(24,1)BEEP:"AT HOME!":: GOTO GetKey1 ELSE DISPLAY AT(24,1)BEEP:"GOING HOME..." Speak3: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:9 !Speak CALL DELAY(1) PRINT #1:3 !GOING HOME GOSUB BytePresent IF FLAG=0 THEN Speak3 StatusHome: ON ERROR StatusHome INPUT #1:ANS$ ON ERROR STOP IF VAL(ANS$)<>89 THEN Speak3 IF RY>HOMEY AND MAP(RY-1,RX)=0 THEN TDIR=1:: GOTO CheckFacing IF RY<HOMEY AND MAP(RY+1,RX)=0 THEN TDIR=3:: GOTO CheckFacing IF RX>HOMEX AND MAP(RY,RX-1)=0 THEN TDIR=4:: GOTO CheckFacing IF RX<HOMEX AND MAP(RY,RX+1)=0 THEN TDIR=2:: GOTO CheckFacing GOTO Explore CheckFacing: IF DIR<>TDIR THEN FacingTurn ForwardH: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:3 GOSUB BytePresent IF FLAG=0 THEN ForwardH StatusHF: ON ERROR StatusHF INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN ForwardH IF DIR=1 THEN RY=RY-1 IF DIR=2 THEN RX=RX+1 IF DIR=3 THEN RY=RY+1 IF DIR=4 THEN RX=RX-1 CALL LOCATE(#1,(RY-1)*8+1,(RX-1)*8+1) CALL DELAY(2) GOTO Home FacingTurn: IF ABS(TDIR-DIR)>2 AND TDIR<DIR THEN TurnRightH IF ABS(TDIR-DIR)>2 AND TDIR>DIR THEN TurnLeftH IF TDIR<DIR THEN TurnLeftH TurnRightH: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:4 GOSUB BytePresent IF FLAG=0 THEN TurnRightH StatusHR: ON ERROR StatusHR INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN TurnRightH DIR=DIR+1 DIRSPR=DIRSPR+1 IF DIR>4 THEN DIR=1::DIRSPR=106 CALL PATTERN(#1,DIRSPR) CALL DELAY(2) GOTO CheckFacing TurnLeftH: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:5 GOSUB BytePresent IF FLAG=0 THEN TurnLeftH StatusHL: ON ERROR StatusHL INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN TurnLeftH DIR=DIR-1 DIRSPR=DIRSPR-1 IF DIR<1 THEN DIR=4::DIRSPR=109 CALL PATTERN(#1,DIRSPR) CALL DELAY(2) GOTO CheckFacing // Resume exploration GetKey1: CALL KEY(0,K,S) IF S=0 THEN GetKey1 DISPLAY AT(24,1):" " HFLAG=0 GOTO Explore // Check for incoming byte over serial line BytePresent: COUNTER=0 CheckByte: CALL IO(2,1,CRU+21,BYTEIN) IF BYTEIN=0 THEN COUNTER=COUNTER+1 ELSE FLAG=1:: RETURN IF COUNTER>50 THEN FLAG=0:: DISPLAY AT(24,1)BEEP:"TIME OUT! RETRYING...":: CALL DELAY(1):: DISPLAY AT(24,1):" ":: RETURN ELSE GOTO CheckByte // Delay routine SUB DELAY(DUR) FOR I=1 TO DUR*100 NEXT I SUBEND On the Hero Jr side, I ran a very simple Basic program which accepted coded commands mapped to specific robot functions and executed them, and also sent back sensor data and communication acknowledgments. All actual control and decision making was made by the TI. 1 REM HERO ROAM PROGRAM 10 INPUT C 20 IF C<>65 THEN GOTO 10 21 FOR I=1 TO 100:NEXT I 22 PRINT 1 30 INPUT C 35 IF C<1 THEN GOTO 30 36 IF C>9 THEN GOTO 30 40 ON C GOSUB 500,600,700,800,900,1000,1100,1200,1300 50 GOTO 30 500 REM FORWARD 5 UNITS 510 FWD 5 511 GOSUB 1510 515 PRINT 89 520 RETURN 600 REM BACKWARD 5 UNITS 610 BWD 5 611 GOSUB 1510 615 PRINT 89 620 RETURN 700 REM FORWARD 10 UNITS 710 FWD 10 711 GOSUB 1510 715 PRINT 89 720 RETURN 800 REM RIGHT ROTATION 810 RIGHT 90 811 GOSUB 1510 815 PRINT 89 820 RETURN 900 REM LEFT ROTATION 910 LEFT 90 911 GOSUB 1510 915 PRINT 89 920 RETURN 1000 REM LIGHT LEVEL DETECTION 1010 L=EYE 1011 GOSUB 1510 1015 PRINT L 1020 RETURN 1100 REM RANGE MEASUREMENT 1105 R=SONAR 1110 GOSUB 1510 1115 PRINT R 1120 RETURN 1200 REM INFRARED HEAT DETECTION 1210 I=MOTION 1211 GOSUB 1510 1215 PRINT I 1220 RETURN 1300 REM SPEAK FUNCTION 1305 INPUT C 1306 IF C<1 THEN GOTO 1305 1307 IF C>3 THEN GOTO 1305 1308 ON C GOTO 1310,1340,1370 1309 REM PLEASE MOVE CLEAR OF ME 1310 SPEAK "PLEZHPA1MOO1VPA1KLEERPA1OVPA1MEE" 1315 GOSUB 1510 1320 PRINT 89 1330 RETURN 1335 REM OBSTACLE DETECTED 1340 SPEAK "OBSTAEKLPA1DE1TEH3KTEHD" 1345 GOSUB 1510 1350 PRINT 89 1360 RETURN 1365 REM GOING HOME 1370 SPEAK "GOWINGPA1HO1O1MM" 1375 GOSUB 1510 1380 PRINT 89 1390 RETURN 1500 REM DELAY SUBROUTINE 1510 FOR T=1 TO 200:NEXT T 1520 RETURN > And here's the final result: Another fun one
  49. 2 points
  50. 2 points
  • Create New...