Sep. 21st, 2008 12:19 am
unbibium: (Default)
2600 Portal continues.  I only worked on it for a couple more hours, got some more bugs out and got the graphics refined.  Now portals will take the shape of the surfaces they're stuck to.

Tomorrow, I'll do momentum transformation.  I might be able to cheat it a bit.

I wonder how important it is whether a portal on the floor should remember whether it was fired from the east or from the west.  When someone falls into that portal, their horizontal momentum will become vertical momentum.  If they're running from the same direction they shot from, their horizontal momentum will become upward momentum.  If they're running from the opposite direction, their horizontal momentum will become downward momentum.  This kind of detail might be unimportant, or even more important.
unbibium: (Default)
OK maybe I won't do the 2600 portal thing after all.

I spent another two hours or so on it, just getting the kinks out of the physics I added, and trying to optimize the BASIC code, and in so doing, render it unreadable.

Structured programming has spoiled me, and Batari BASIC has lots of annoying limitations that make it hard to write code that looks any good. It encourages one to string together lots of commands with a colon, because that's the only way to put multiple commands in an if-then-else. statement
unbibium: (homestar gaming)
First of all, there's an Atari 2600 game based on Portal that came out recently, and has been making the rounds. And I tried it, and was amazed, and because all the hard stuff was already done, I thought to see what I could improve on it.

I dropped a note into that thread; maybe I can get a collaboration going with the original author.

Last night, I downloaded Batari BASIC, the "high-level" language in which this Portal "demake" was written. I learned as much as I could about it, went through the source code, and after much struggling with Batari BASIC's implementation of fixed-point arithmetic, I managed to implement realistic gravity and momentum.

When I first got involved in Atari 2600 programming back in the 1990s, and pioneered the homebrew programming culture for that system, there was nothing out there at all. Someone had run a disassembler on the source code to Combat, and scanned some technical documentation, but that was it. It was up to me and a few other people to re-learn the art.

But now, in 2008 there's a damn BASIC compiler for it, and it's better than I could have imagined. Not the "BASIC programming" cartridge, but a real BASIC compiler that lets you make programs that actually do things. It contains a general-purpose screen-drawing library, including a score, and support for a few advanced features like atlernate-frame sprites, bank switching outside the normal 4k limit, and fixed-point arithmetic. And it works by translating BASIC-like syntax into assembler source, which meant that I learned a lot, and solved a lot of problems, by looking at the ASM files it generated.

The original "Super 3D Portals 6" had the basics. Move with the left joystick (left/right, up to jump), aim your portal gun with the right joystick (left/right), and each joystick's fire button fired a different color portal. There's no momentum, so the portals are more like big square teleport traps. So you can't fling yourself across the room. But there's a goal, and several different levels, and some clever software-based collision detection that makes the movement system very robust.

In my first evening's coding session, I added momentum, at least in normal space. And gravity and jumping both follow a realistic acceleration curve now. You can try it; it otherwise plays pretty much the same.

My next feat: make the portals work a little better. They should be able to tell if they're on a horizontal or vertical surface, and rotate the player's momentum accordingly. But to get much more code in, I'd have to either use bank switching, or assembler-optimize much of the code.

After that, well, that's as far ahead as I've thought. Things like redesigning the levels, or adding lethal obstacles, are things I haven't thought about yet, and the original author might step back in to implement those. It probably doesn't help that I still haven't played Valve's original Portal yet.
unbibium: (Default)
I just stayed in the office for three and a half hours do I could do Atari 2600 programming with three monitors.

And the only reason I thought to leave was because they turned the A/C off for the night and I'm all sweaty now.

I better go have dinner.

As for my project: remember that Atari 2600 port of Portal that came out this week? I found the physics to be a bit lackluster, so I'm revamping them.
unbibium: (Default)
For some reason, I have the overwhelming urge to sink dozens of dollars into upgrading and modding my Atari 800XL.

Half of it stems on what it would look like on my big-screen TV once I got the S-Video cable working.

I even bought an AtariWriter cartridge. That can only become useful if I get a dot-matrix printer.
unbibium: (Default)
So I was going to take stuff out and photograph all my classic video game stuff to sell on eBay. I discovered that I can't find my NES, and my SNES is missing its power supply. So maybe I should just sell the cartridges, even if I can't test them.

But I also found my Rescue on Fractalus cartridge, for the XE Game System. It was one of my favorites from growing up, so I dragged out my Atari 800XL and played it.

The object of the game was to fly along the valleys of a craggy alien planet, rescuing downed pilots, and avoiding enemy laser turrets and kamikaze saucers. Oh, and aliens disguised as downed pilots, that will tear up your ship from the inside if you let them in, and scare the shit out of you if you don't. It was released in 1984, but was the most immersive game I played until well into the 1990s. As the name suggests, the landscape was rendered with fractals. It was one of Lucasfilms' first games, and according to Wikipedia, the alien impostors were George Lucas' own idea.

I just realized the downside of Nintendo's reign over video games: we almost completely lost the 3D first-person perspective in the late 1980s. This isn't just a cultural thing; you can tell by the hardware. The NES was all about scrolling tile-mapped playfields, and square sprites at a fixed size. That's why NES games were always in high resolution: there was no way to use lower resolution graphics to save memory or speed things up. And you can't use tiles to make a good first-person graphics engine. You need bit-mapped graphics to make it look good. With tile mapping, you get the kind of first-person you see in Friday the 13th: cheap labyrinths where all the walls are at a 90-degree angle, you can only walk in six-foot jumps, and you can only turn in 90-degree snaps. When the NES tries 3D, objects never get very large, or very close to the camera. Top Gun got around this by having no terrain at all. It makes a little less of a difference during driving games, because all you had to do was pre-render the other cars at every possible distance, which was already a common practice.

I suppose Nintendo could be forgiven for thinking bit mapping wasn't important, because the 3D first-person games didn't really fit Nintendo's cultural mindset. The US computer market had lots of popular first-person 3D games before 1985, but they didn't have the dramatic appeal of Rescue on Fractalus. Offhand, I can think of the arcade games Battlezone and Star Wars, Commodore 64's Elite, and the Atari 400/800 launch title, Star Raiders. One tank game, and three spaceship games. And all of the computer games, RoF included, really couldn't be played without learning all the keyboard commands from the manual. And there were no cute brand-building characters in these games, not until the SNES brought 3D back, and gave us Starfox.
unbibium: (Default)
Someone on eBay is selling this, which is awesome not just because it's an Atari 130XE, but also because it was used to "roll script" on a cable TV channel somewhere, and has had hardware modifications to that end. I will now geek out for several paragraphs.

I used to love when the TV Guide channel would crash and you'd see an Amiga error message blinking over the commercials on the top half of the screen, while some random satellite channels scrolled up the bottom half of the screen. This was back when an entire half of the screen's real estate was dedicated to program listings, and not just the bottom third. Or what is it by now?

I remember being in upstate New York, back in 1992, and seeing their TV listings channel, and it was clearly powered by an Atari computer. Not only can I recognize that font from a mile away, it took me 2 seconds to find the letter on that page that was wrong. (The "J" should have no hint of a serif, despite the extra-wide ones on the "I".) It was almost as cool as the time I was watching Russian news on C-Span, and the timecode at the top of the screen was in that font. And that was almost as cool as the Pontiac commercial based on the Atari version of Spy Hunter, where all the text, including the fine-print disclaimer, was in that font.

I'd love to see what it does, but I'd certainly not be able to figure out the hardware without having my hardware-savvy friends come over and look at it on my behalf. And he might not get it working at all, and if he did, I might not be able to use it for any purpose at all...

But if it came with the software, it just might be worth it anyway.


unbibium: (Default)

April 2017



RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 28th, 2017 04:56 pm
Powered by Dreamwidth Studios