Wednesday, January 6, 2010

Jeffrey Stanton

Apple Graphics & Arcade Game Design

It's odd how something like a simple book from your past can spark up memories. When I was about 14, my best friend and I used to rent Apple II software from a local shop near the airport. They had about 2 shelves worth of Apple II games and probably VHS cassettes in the rest of the place. One day, a very fine book magically appeared on the shelf of this rental store: Apple Graphics & Arcade Game Design by Jeffrey Stanton. In his book he demonstrates via real 6502 assembly language by creating a defender-clone! I can't remember much else but in those days it was a real gem and we were thankful. Amongst all the 6502-reference books out there this one really stood out. This book was our most beloved possession and we actually kept it in a zip-lock bag when it was not in use!

So I managed to track down the author's biography and here is what I came up with. The thing I find the most interesting is that the Apple // book was merely a side project in his life. I somehow expected him to be this established game programmer. Just goes to show ya!

The best part is that I managed to score a copy of this book on Ebay and I eagerly await its arrival. I will be sure to bust out my copy of BigMac Assembler so I can test out the sample code! Perhaps I'll post some of the code in another post.


Sunday, November 29, 2009

The Prince of Persia development journal

One of my favorite Apple II games EVER was called Karateka which was single handily programmed by an 18 year old chap named Jordan Mechner. In the years following Karateka, Mechner moved out to San Franciso and spent the next 3 years working on his next master piece called Prince of Persia for the Apple II. I stumbled upon his web site recently and found that he has transcribed his early journals from that period and it is just completely fascinating. The most interesting part of this journal for me was the development of the game including actual video footage of test demos during the various phases and the original video of his younger brother doing the prince movies that he later digitizes.

And here they are!

My ramblings follow...

* He really didn't devote his 100% full time to this project until the last year. He was very interested in writing screen plays since that's what his degree was in. He wrote Karateka while he was in college as a side project.

* He makes references to lots of world events both directly and indirectly. Examples: The 1987 stock market crash, The Tiananmen Square incident, Steve Job's creation of NEXT

* You can see how the Apple II is dying around 1988 and the publisher that he works for is getting nervous that he will miss the boat by delivering the game too late.


Tuesday, November 24, 2009

When 1993 technology goes online

It was a very exciting and frustrating night for me. I had spent a good portion of the evening trying to decipher very old information from the Internet to get my Amiga 1200 networked. (more after the click)

So I had the right hardware: A 3COM Etherlink III PCMCIA adapter card that I got off ebay for 99 cents. This is one of the older cards that has the RJ45 dongle. It supports a blazingly fast 10Mbps connection although I doubt the 68060 can push the data that fast. I also have an 802.11b wireless card but unfortunately it lacks the appropriate support for WPA encryption. So I didn't want to open my home network up to hacking just for the Amiga's sake. So it was wired we go.

So apparently TCP/IP has been part of the Amiga OS's vocabulary since around 1992 or so. Commodore actually produced their own Zorro Bus (a bus similar to PCI) ethernet card back then for the big box Amigas (2000, etc). I found reference to several TCP/IP stacks such as AmiTCP, Miami and Genesis. The problem was finding the newest, more support version. Supposedly a version of AmiTCP shipped with the last official 68k OS3.9. I pulled out my official AmigaOS3.9 CD and attempted to hunt down the install files for this. I did indeed find it on the CD but no install or documentation. So this is when I started to go down a long path of old information. I had to use the wayback machine in order to scrounge up documents. The one thing the Amiga really lacks is a up-to-date FAQ. You will find a mismatch of old information from the mid to late nineties (usually 404'd these days). It was truly frustrating and I quickly realized how the Internet is getting so big and links go bad very quickly. Now granted we are talking about 10+ years that some of these people decided to let their personal pages go bye bye. If it weren't for the wayback machine's archive, I would have never figured this out without help from others.

So yes, I started down that path of installing different versions of TCP/IP stacks and nothing worked. The Amiga OS is a little confusing. There's DEVS: and LIBS: and ENVS: and binaries (C:) and startup sequences (S:) that all need to be configured. When things go right, you simply click on an installer icon and it guides you through the setup. I went through this with several older versions of Amitcp, genesis and the miami stacks but had little luck. Finally it came down to a guy who happened to make an emergency single-disk version of a network-boot-disk. It was relatively new (within a few years) so I downloaded it, unarchived it, and wrote the ADF (Amiga Disk Format) file to a blank disk. By the way, I have hundreds of 3.5" 880kb disks and only about 10% still work. I throw away a lot of bad 3.5" disks these days. I booted up the disk and it configured itself along with asking me some basic TCP/IP questions and it worked! I was actually able to ping other machines on my network and even use a samba utility to map to a windows share! The Amiga was on the network!

Next time I will share with you how I got FTP, and a real web browser up and running! As a bonus I had a look-a-like winamp player playing MP3s that I had just downloaded from a friend's FTP site! All good stuff and very amazing for a machine from 1993!


Thursday, November 19, 2009

My Apple //c

The Apple //c was a wonderful Christmas gift that I received as a boy in 1985. My mother worked very hard to give me that computer back then...

So waaaaaay back in 1982 I got my first computer as a birthday gift. I actually wanted one of those fancy BMX style bicycles which turned out to be more expensive than a home computer. My first computer was made by Radio Shack called the TRS-80 color computer or "coco" for short. It hooked up to a standard television and used a cassette tape to save and load programs. It was that computer that I learned how to program. Initially I learned BASIC programming and shortly after MC6809 assembly language. I used it so much that I wore the silver color off the plastic bezel and the letters from the keys.

Later that year, my best friend also got a computer for his birthday: A brand new Apple //e with 64k and a 5.25" disk drive. I spent a lot of time over his house playing Zork I, Exodus Ultima III and programming our own games. His computer was about 10x more expensive than my TRS80, so I could do nothing more than just be a little envious and spend quite a bit of time at his house.

Jump ahead a few years to 1985. I vividly remember that Christmas eve because I went to work with my Mom on the graveyard shift at her company. I caught a little sleep in a sleeping bag on the floor but mostly stayed up with her all night. By the morning I was completely exhausted but stayed up and unwrapped my most wonderful Christmas gift ever: My own Apple //c computer complete with green screen monitor and built-in 5.25" disk drive! I finally hit the computer motherlode. I distinctly remember playing games such as Aztec, Bolo, Chop Lifter, Rescue Raiders, Star Blazer, Situation Critical, Gemstone Warrior, Sword of Kadash, Conan and a million others. I cherished that Apple computer like no other computer. It was one of my most prized possessions as a child. I eventually learned to program 6502 assembler and write games and graphics hacks. It opened a world to me and I owe it all to my Mom who financed my computer love and is responsible for my success in the world today.


Tuesday, October 20, 2009

Amiga Day - 3

Tonight I learned/re-learned a little bit more about OS 3.9

My full report behind the click...

1) Although I had successfully played Dungeon Master for an hour or so the other day, most games are apparently fairly incompatible with the new versions of the ROM that my A1200 has. Unlike PCs which just have a very minimal ROM BIOS, the Amiga has a huge chunk of the OS in the ROM including the kernel. I guess this harks back to when RAM was expensive so you didn't want to clock up all your 256k or 512k of RAM with OS code.

So tonight I learned that you can "kick"(ala kickstart) your Amiga's ROM to use an older version. You basically need the original ROM files. In my case the v1.3 from my A500 system. It then loads the ROM into RAM and remaps something in memory and reboots the system. You then have a A1200 running with the older kickstart ROM.

2) This guy named Thomas Richter is this super programmer who up until about 2000 was making some amazing utilities and apps for the Amiga. One of these utilites is called VinceD which is a shell replacement giving you all those great features you'd expect like command/file completion via TAB and all sorts of other amazing improvements. It is nice and customizable through a dialog window. I DID however manage to mess things up pretty nicely so I had to track down the original installation files and redo it. It's ok though because my original installation was missing the help files.

3) This stuff is pretty complicated. I need a refresher course on AmigaDos because I keep messing simple things up like COPY and RENAME. I accidentally made a file called "?" and I have no idea how to get rid of it because "?" displays info when you do a "DELETE ?" - I'm sure there is a way to quote it or something.

4) The Amiga fonts are pretty bad. It could just be that the fonts look poor on my LCD panel because the same fonts look great when I run them in UAE (The Amiga Emulator). I may end up using a 19" CRT as an experiment. I think the LCD tends to make lower, non-native resolution very ugly. Try it on your PC. Go ahead and set your WSVGA++ LCD panel to something weird like 1024x768 and see how great that looks. Hint: It don't.

5) Even though I had successfully run Dungeon Master off my original (ahem) disk, that's not the preferred way to do things these days. The you really want to do it is by using a program called WHDLOAD which allows you to make a hard-disk version of your games. But it's not quite that simple (I haven't gotten it to run as this I'm still getting stuck on things like COPY). It also requires that somebody (smarter than me) creates a custom WHDLoad configuration file for that specific game. There's a huge list of configuration files on the WHDLOAD site itself so it's more than likely that the game you want to play is on it.

6) I can't figure out how to set the date/time on my battery backed up clock. Yes yes, RTFM.


Saturday, October 17, 2009

Amiga Day 2

So it's officially day 2 of my retro-amiga-weekend-love-in.

Here's some of my initial observations,

* The Indivision AGA/LCD combo is great but I find that my panel takes a few seconds to re-adjust itself when switching resolutions. I really want to try a VGA CRT next just to see the difference.

* The euro keyboard takes a little getting used to although the feel itself is very good. There are some strange blank keys which I need to remap. One is by the shift key which I always hit by accident and the other is near the return key.

* It's quite easy to farg up the configuration and have the amiga not boot by just doing a simple change. Thankfully the newer 3.x ROMs have a feature to boot without the startup script so you can just get in quickly and revert back. Always back up your configuration files before making changes!

* AmigaKit has pre-installed OS3.9 for me but I'm not sure what is original and what has been added. There seems to be a nifty dock on the bottom and I found that a better shell had been installed (Vince's?).

* Working with AmigaOS reminds me of how computing has become very appliance like in our day to day lives. It's good and bad because nobody really has a good idea of how everything works in today's modern operating systems. We just hope and pray that it doesn't break and if things get bad enough, you just reinstall or revert to a backup (easy to do with VMWare).

In the early days of MSDOS and Windows, you really had to know what you were doing in order to get things straight. I remember having to make intricate diagrams of which hardware cards were using particular interrupts, Base IO addresses and DMA. It was a difficult task but there wasn't much room for error. You had to know a lot about the hardware and software to get things running. It kept the layman from messing with things because it would inevitably break if they did. Now-a-days, everybody is an expert and I think part of the reason is that it's so easy just to click through installation screens without having even the slightest idea of what you are doing. Don't get me wrong, I'm glad that things are easier and I would not want to go back to those config.sys/autoexec.bat/jumpers/dip-switch days. But I wouldn't mind a cleaning out of all these mediocre-wanna-be-techs that have infiltrated the industry. It's one of the reasons that I no longer give out technical advice or assistance because A) It's under-appreciated and B) "Joe", your Mom's friend at work will convince your Mom that what you did wasn't right and that he has a better program/system, etc.

I didn't mean to get off on a rant, but working with the Amiga really means you have to think and be clear about what you are doing. You have to understand what's going on if you want this machine to work. I was thoroughly enjoying the experience and having to type in commands and edit configuration files and research command line arguments. Call me crazy, but I'm having quite a bit of fun trying to figure these things out. I'm still very much at a novice level when it comes to AmigaOS but I look forward to really understanding and getting the Amiga to function like I want it to.


Friday, October 16, 2009

Amiga 1200 - Day 1

Got my new 1200 from yesterday!

Here's the slide show to prove it!

First day experience:

After taking photos and setting things up, the first thing I wanted to do was get a baseline benchmark for the original system (which is still several times faster than my original 7mhz A500). This meant that I needed to copy files between my new system and my old. There are several ways to copy files between the two, including:

* via 3.5" Disk via CrossDos which allows the Amiga to read 720kb DOS disks.
* via CF Card - I have have a PCMCIA/CF Card reader that allows the Amiga to r/w to them.
* via Ethernet - The Amiga has a PCMCIA 802.11b adapter.

I decided to go the CF Card route since I have a few 512mb and 1GB cards around that my Canon camera uses. Easy, right? Wrong! Well, the Amiga side was easy. I installed the drive disk everything was up and running fairly quickly. The Mac/PC side literally chewed up HOURS of my day. You see, I usually just use the Camera's build in USB to transfer photos to the Mac/PC. The problem is that I needed to copy files. The camera itself does not show up as a mass storage device or a mounted drive. The next solution was to use my printer's built-in CF card reader. That took about 30 minutes just to access the SMB share over the network and another hour or so trying to get proper permissions setup on the printer to write to the card. Argh! In the end, no matter how much finagling I did, I was only able to read files off and not write them. Finally I tried some old junkie USB CF-Card reader that was hanging around the house. But that didn't work because of missing drivers which were no-where to be found/incompatible with all my systems. Here is one instance where the Amiga was actually easier to get going than the modern stuff! I had to make a late night run over to best buy to get a reader. BTW, best buy staff is totally useless when it comes to finding products in their own store! Useless! How is this place still in business?

CF Card is now working on the Mac/PC but that left very little time left in the day and I was pretty tired of technology by then which was completely no fault of the Amiga.