-
How to use the system!
04/22/2019 at 04:40 • 0 commentsTo use our system at Heatsync Labs, or if you replicate this yourself, once everything is going, you'll want to:
1. Write your assembly code using your favorite text editor first. We'll be saving them as .ASM files to avoid confusion once multiple files of the same game exist.
2. Make sure that it and vcf.h is inside a scratch directory and that you have made a PATH variable over to wherever you installed the DASM executable.
C:\ATARI>_
3. A Full example of the command you should then run to compile your code:
DASM GAME.ASM -f3 -oGAME.BIN
4. Once you have made the binary and the compiler throws no errors, make your binary file into a PCM WAV file:
MWDOS -ts GAME.BIN GAME.WAV
5. Make sure the Supercharger is inserted into the ATARI, and the Audio cable is attached to the Speaker Out of the Soundcard. Have the TV on (Ours is set to analog Channel 2), then use the XTX-PLAY program to play your WAV file to the cartridge.
XTC-PLAY GAME.WAV
6. Your code should then load into the Supercharger, and you will get audio and visual feedback of it loading, and then it should run. If the "Rewind Tape" message comes back up, then there was an error.
-
Hello World! All the hacky hacked bits and bytes work together!
04/22/2019 at 03:17 • 0 commentsSuccess! Everything that I figured could work together somehow has!
So it turns out that I was WRONG about how the MAKWAV program worked! It needs a special flag to make a Supercharger compatible audio file! WHOOPS! No wonder it stated that my resulting file was for a "Cuttle Cart" and that I got crazy things happening on my ATARI when loading the files made this way!
So where I was typing in
MWDOS game.bin game.wav
before, turns out that it needed to be
MWDOS -ts game.bin game.wav
As -t is type, s is Supercharger! IF ONLY I had bothered to read the help screen for MWDOS, I would have found this out right away instead of ending up with failed load after failed load! Lesson learned though, and since I focused on other things, I could come back to this with fresh eyes (and a helpful individual who simply asked if I had set the supercharger flag!)
We're now fully operational. No faults or silly things happening anymore. The path of tools is clear too.
1. Write code in MS-DOS Editor, save as .ASM file
2. Compile said .ASM file into binary .BIN using DASM using -f3 flag (and -ooutput.bin flag)
3. Use MWDOS to convert .BIN file into a PCM .WAV file using -ts flag
4. Use XTC-PLAY to play audio file inside dos to Supercharger cartrige
5. Watch your efforts load into the Supercharger memory and initialize
I have used Carlos Duarte do Nascimento (Chester)'s Atari 2600 "Hello World" demo as an example (loaded via USB floppy drive and the special SneakerNET™ protocol) as a reason not to write my own code just yet.
https://gist.github.com/chesterbr/5864935
Thanks, Chester! I'm not sure this is how you envisioned it being put on a 2600 VCS, but there you have it!
Anyone who drops into our hackerspace now can if they want to code up an actual Atari 2600 game and not have to fuss with any distractions from modern computers, and have it run on real hardware. It could use a little bit of polish and automation, but it's rather quick! Changing one line of code to see what happens to a game is a really simple task, and I'd even say it's less fuss than dealing with a SD card cart.
-
So it turns out my copy of DASM is missing some things, primarily vcs.h
04/22/2019 at 03:04 • 0 commentsSo I was determined to forge ahead, despite issues I had with getting already compiled binaries to load up into the Supercharger. I wanted to make sure I could make roms/bins out of assembly code, and I managed to find a copy of combat that had been disassembled on my buddy's old 1997 web page, which mentions some of the very utilities I found through a different way, and also had a link I could use with Archive.org to grab the newest version of DOS based MKWAV and DASM I could find too. Also on that webpage was a file called vcs.h that sets up the instructions for the compiler. I did not know this yet, but I sure tried to compile stuff anyway! I did this all on a VM I decided to make while I was at home and away from the computer at my Hackerspace. My intention was to actually build up another computer with a coprocessor (or just use a 486dx), but the fact I found the right coprocessor meant I could be lazy and didn't have to!
This video was very long as it was real-time as I streamed it on twitch.
I was immediately greeted with the fact that dasm could not open vcs.h . After some quick googling I got this https://github.com/munsie/dasm/blob/master/machines/atari2600/vcs.h and everything worked as it should afterwards. Also there is some horrible audio coming off the VM from when the WAV file plays, so if you choose to view this video, and you have your speakers up loud, or use headphones, you do so at your own risk.
-
Printing out manuals
04/22/2019 at 01:05 • 0 commentsI found a publication online which would help me and others develop a program or game to run on the 2600, and it was called "Atari Programming for Newbies". It was available in PDF form, so I got a hold of it, and printed it out double sided, and put it in a 3" 3-ring binder with heavy weight plastic page protectors. We added a bit of flair to it with our vinyl cutter and printed a little ATARI logo for it while we were at it. The book mentions the STELLA PROGRAMMER'S GUIDE, so I also printed a copy of that and put it in a smaller 3-ring binder to have it as a reference.
I am happy with the results.
-
Upgrading the old computer to function.
04/22/2019 at 00:23 • 0 commentsI originally built the 386 computer that sits at my local hackerspace (Heatsync Labs) to run AT&T UNIX System V/386 R4 V2.1 which I brought to Defcon 24 for people to play with. As a result of me throwing hardware at the OS until it booted and was stable every part in there was picked to simply work with the archaic version of the operating system that was originally made to run on a rebadged Olivetti 386SX/16. I ended up with a motherboard with an AMD 386SX/33 onboard, 6MB of ram, a VGA graphics card, a REAL Novell NE2000 network card that I still lack the proper drivers to make UNIX networking function, a HDD/FDD serial combo card that didn't fight with me, and that was it! No soundcard, no frills, it was UNIX! Just last year at BSIDES LV 2018 I jokingly loaded MS-DOS 6.22 on it, and we ended up having a blast playing DOS games. I left it this way when I brought it back home. I then brought it to my hackerspace configured just like that. I picked up a new NiMH battery for the CMOS since while the leaky battery that was on there was plenty good for a few conferences, it would have been detrimental to the health of the computer, and no one but me would know how to input the hard drive parameters every time it needed to be rebooted, no auto-detection on this board!
The first order of business was getting one of my soundcards working on it, I decided on the SoundBlaster 16 as I would be more likely to find a good dos audio player that would work with it. Once that was going I started loading utilities on it. The first order of business was the Audio Player, I ended up with XTC-PLAY for DOS and it worked. No issues there. I then downloaded a program that I had to dig in the internet Archive for called "Make Wav", and the DOS version at that! It needed a sort of real mode dos runtime to go with it, and then it complained that it did not have a Math Coprocessor. I went through my collection of junk thinking I didn't have a 387 that fit the specific socket on the motherboard, and I was almost wrong! I found one, but it had been on a motherboard that had been for one reason or another left outside in the elements for years. I popped the chip out, a Cyrix 387 "Fastmath" 20 coprocessor, didn't think it would work, popped it in the motherboard and the Make WAV program no longer complained.
Mission accomplished. I tried converting a few basic games like Combat and Asteroids to WAV using the utility, however they would not load up on the ATARI when I played them back to the console, just a horrible racket of sound and scrolling screen glitches.
All hope though was not lost, because if I converted the ROM of a real Supercharger game to WAV, it would load as expected. Communist Mutants From Space depicted here. I was using one of my tools wrong, and I found out about that later, but while this was going on I was at a standstill until I figured out if the problem was with the program I was using, how I configured it, or that something to due with the bankswitching was causing this, and then I might need to physically modify the Supercharger hardware to get it to do what I want it to do. This turned out to be a false lead, and no hardware modification was necessary (yet anyway!)
-
Start of the project idea
04/22/2019 at 00:09 • 0 commentsSince I did a lousy job keeping logs as I was going, I will go over what has happened since the beginning of the idea.
About 2 years ago my friend Nick Bensema told me about a ATARI cartridge he owned called a "Supercharger" which was originally used to load some specially made games via audio cassette. The cartridge itself had a 1/8" mono jack and you would use it with any old tape player. He then demonstrated it's use by playing back MP3 files of games that were made using his smartphone. He said there were utilities to take an ATARI ROM file and convert it into a MP3 or WAV file that could then be used with the cartridge. This got me to thinking that this would make an excellent instant development system, and I could for our hackerspace provide a real Atari 2600 to use with it.
I had already had a 386 PC there (Running MS-DOS 6.22 at this time), and I figured that would be a really amazing unit to do development on, as there would be few distractions and you could really focus on what you were trying to accomplish. It also gave me another excuse for keeping my outdated hardware at the lab for more than just what I had on it already! I figured I would make it up as I went along as I collected utilities, hardware, parts, and cables to make it all happen.