Fallout 3 terminal emulator

April 18th, 2016 11:51 AM
by
Filed under Game trail, Software showcase;
Comments Off on Fallout 3 terminal emulator

I'm a fan of both retro and modern video games, and I love to see the lines blur between the two — whether that's a new game like Plangman that has a classic feel, or a modern game like Halo that's ported to a classic console such as the Atari 2600.

Falling into the latter camp is the work of thewheelman282, a fan of the action-RPGs Fallout 3 and Fallout: New Vegas, released in 2008 and 2010, respectively. This franchise is set in the 21st century that arose after nuclear war broke out in the 1950s, impeding the advancement of technology beyond a Cold War state. In this fictional future, players use monochromatic computer terminals that wouldn't look out of place in an Apple II user's collection.

thewheelman282 brought that connection to its logical conclusion by porting the Fallout 3 terminal software to the Apple II. He gives a demo starting at 2:55 in this video, which uses the Agat emulator:

I've never played Fallout 3 so would have no idea how to use this program without the above tutorial, as the software comes with no documentation or inline help that I can find. However, it does appear to function quite similarly to the source material:

This program was written to perform a specific function and doesn't allow the input of new commands or programs, recreating a utility instead of an environment. I think it'd therefore be more accurate to call it a simulator instead of an emulator. Regardless, it's an impressive work of 958 lines of Applesoft BASIC code, which you can download in disk image format. I converted that source code to a text file, which is available here.

I originally thought thewheelman282 was going to demonstrate piping Fallout 3 output to an Apple II, similar to what Joshua Bell did with Second Life. While that too is an impressive hack, it's been done before, and eight years ago at that. To see something original and which is further available for us to download and play with is pretty cool. Thanks, thewheelman282!

(Hat tip to Robert Rivard)

Volkswagen's EPA source code

February 22nd, 2016 9:21 AM
by
Filed under Mainstream coverage;
Comments Off on Volkswagen's EPA source code

A year ago, Jalopnik published the story "Autonomous Cars Will Rob Us Of Our Freedom To Be Unproductive", showing a motorist using an Apple II behind the wheel. The unlikely choice of computer could be attributed to the article's author, Jason Torchinsky, a well-known Apple II enthusiast. If you can work any computer into your writing, why not choose your favorite?

This past October, Jason upped his game. "The EPA May Have Found A Second Secret Defeat Device In Diesel VWs" revealed that Volkswagen may have rigged their vehicles to past certain environmental quality tests. Here's the picture Jason used, Apple III and all:

Volkswagen EPA hack

But Jason took it one step further by revealing the source code Volkswagen used to cheat the Environmental Protection Agency:


10 REM SECRET CHEAT CODE #2 STARTS HERE
20 PR#2: REM SET OUTPUT TO INTERNAL CENTER STACK SCREEN
30 PRINT "ARE YOU CURRENTLY TESTING EMISSIONS FOR THE EPA? HIT HORN FOR 'YES', TAP BRAKE FOR 'NO'" : INPUT A$
40 IF A$="HORN" THEN EM$="YES"
50 IF A$="BRAKE" THEN EM$="NO"
60 IF EM$="YES" THEN POKE 232, 64: REM TURNS CLEAN EMISSIONS ON
70 IF EM$="NO" THEN POKE 232, 0: REM GO AHEAD AND RUN IT DIRTY
80 END

Not only are the cars dirty, but so's the code: a more elegant hack could be written in half as many lines. But given that it's likely been decades since any Jalopnik reader saw Applesoft BASIC, it's impressive that Jason got away with including any code at all!

(Hat tip to Jayson Elliot)

Ivan Drucker's BASIC to Python

January 18th, 2016 9:41 AM
by
Filed under Musings;
Comments Off on Ivan Drucker's BASIC to Python

Ivan Drucker is an unsung hero of the Apple II community. His line of programming utilities, networking tools, and Raspberry Pi applications might pigeonhole him as a software savant, but his contributions to the Apple II community extend across multiple media, including KansasFest presentations and Juiced.GS cover stories.

It's no surprise, then, that someone so prolific would be comfortable in many programming languages. His latest contribution to the community is a Python translation of an Applesoft BASIC program:

This is a line-for-line conversion of an edited version of CLOCK.PATCH from the System Tools 2 disk in GS/OS 6.0.1. It's not good Python, but I thought it would be an interesting exercise. In general I have tried replicate each line as closely to BASIC as possible.

For those of us who never learned a programming language that doesn't have line numbers, this Rosetta stone of classic and modern languages is fascinating. Since each translation performs the same function, seeing how similar concepts are expressed in different environments makes it easy for someone unversed in one language to follow the other.

Applesoft & Python

I don't know the practical value of this exercise, but that's what makes Ivan so great: he pursues goals he's passionate about because he finds them cool and fun. That's the epitome of the retrocomputing enthusiast.

Codes that changed the world

April 20th, 2015 10:40 AM
by
Filed under History;
Comments Off on Codes that changed the world

Growing up with the Apple II, I learned to program in BASIC. Its line numbers, GOTOs and GOSUBs, and spaghetti code were unlike anything I would encounter later in my education. Perhaps for that reason, I never mastered a language like I did BASIC. While I was able to grasp Prolog and FORTRAN, the "pointers" of C++ were so incomprehensible to me that I eventually had to change majors to get away from it.

Had I continued down that programming path, I doubtless would've faced many other challenging concepts as I attempted to master yet more languages, like C Sharp, Perl, PHP, Ruby, and more. By some estimates, there are over 20,000 languages in existence, only a fraction of which I ever could've learned on the Apple II. Some are more practical than others, while others are of more historical significance.

The BBC attempts to scratch the surface of those historical languages in a recent limited-run podcast series, Codes that Changed the World, hosted by Aleks Krotoski.

Codes that Changed the World

The podcast, which debuted this month and ran for all of five episodes, covers four languages: FORTRAN, COBOL, BASIC, and Java, with a fifth episode discussing how so many different languages are able to coexist.

Of course, you can't discuss the rise of BASIC without the role the Apple II played, and vice versa:

BASIC enabled computing as we understand it today. When Apple was a two-man band building this thing called the Apple II, there were no other computers out there like it. So they had to put something on it that would allow individuals to program it themselves. Apple just wouldn't exist without BASIC. And Microsoft! The first thing that Microsoft did as a company was selling BASIC to run on other people's computers. The two biggest names in modern computing, Apple and Microsoft, both wouldn't've happened if it wasn't for BASIC.

BASIC celebrated its 50th birthday last year, earning it a cover story in Juiced.GS:
Juiced.GS Volume 19 Issue 2

While researching that story, author Steve Weyhrich (who also pointed me to this podcast) delved into the resources available at Dartmouth College, where BASIC was invented. As part of its "BASIC at 50" commemoration, Dartmouth produced a free 38-minute documentary, Birth of BASIC:

If you want to learn more about other programming languages, Codes that Changed the World is available in iTunes. While it's unreasonable to expect all 20,000 languages to be covered, I do lament that the podcast's scope was limited to only five episodes, as I rather enjoyed these 15-minute encapsulations of technical topics for a lay audience. If the BBC or Krotoski ever produce more, I'll be first in line to listen!

Richard Garriott's teletype D&D ported

June 30th, 2014 11:17 AM
by
Filed under Game trail;
2 comments.

In March 2013, Richard Garriott, aka Lord British, aka the Tony Stark of gaming, announced his return to Ultima with a spiritual successor called Shroud of the Avatar: Forsaken Virtues. This computer role-playing game, which will be playable both online and off, is scheduled for release in 2015. But we don't need to wait until then to see Lord British return to his roots.

This April, Garriott released the source code for his 1977 game called D&D #1, a precursor to Akalabeth, which itself was a precursor to Ultima. The code is BASIC and was written for a teletype machine. But it wasn't solely the code's historical significance that motivated its release. As a promotion for Shroud of the Avatar, Garriott announced a contest to port this ancient game to either Unity or a Web browser interface. Winners would receive the equivalent of the $500 backer tier from Shroud's Kickstarter. As always, the snarky team at LoadingReadyRun has the details:

I marvel that this programming contest could be seen as a challenge. Admittedly, the original game, roughly 1,112 lines of code, dwarfs a similar game I wrote in in 1996, a mere 624 lines of Applesoft. But a game for a teletype machine has to be even more basic than one for the Apple II, and development tools such as Unity make far more complex games even easier to develop than a BASIC game was 35 years ago. How hard could it be to port, or even develop from scratch, a new D&D #1?

Turns out a straight port might not be enough to win; it's the flair each developer implemented that earned them recognition. Sean Fahey recently alerted me that the contest winners had been announced, and that across the two categories were 24 entrants and six winners. Mundi King produced the winning Web port, though I've not been able to get past the initial prompts, being stymied by passive-aggressive "WHO SAID YOU COULD PLAY" responses. I prefer Santiago Zapata's runner-up entry, which sports an authentic interface:

Richard Flemming won the Unity version, which can also be run in your browser but requires a plugin. Flemming called the original "1,500 lines of single-letter variable names, magic numbers, and spaghetti logic."

These ports are neat bridges between Ultima's origin and future—and a timely one, given Juiced.GS's recent cover story on the fiftieth anniversary of BASIC. Though I'm not likely to spend much time playing these ports, I'm heartened to know that a new generation has the freedom to enjoy Garriott's legacy across the ages.

If you want to hear Garriott speak further about Ultima, he was interviewed by Greg Kasavin and Felicia Day at this month's Electronic Entertainment Expo (E3).

What schools don't teach

March 18th, 2013 11:18 AM
by
Filed under Musings;
2 comments.

Computers play an important role in education, be it in programming or game design. Retrocomputers like the Apple II can be especially valuable in any of these disciplines, especially programming. The finite, knowable universe of an 8-bit machine provides the perfect canvas on which budding programmers can craft their first algorithms.

But in many schools, the question isn't with what computers should programming be taught, but whether programming should be taught at all. Demand for programmers has never been higher, with the number of positions growing at twice the national rate. Yet ninety percent of schools offer no programming courses at all, leading to colleges graduating fewer computer science majors than they were a decade ago.

The non-profit Code.org is bringing attention to the need for more programming education in this country with a public service announcement (PSA). For this five-minute video, they have recruited the likes of Bill Gates, Mark Zuckerberg, and will.i.am, as well as some less likely suspects.

(There are also one-minute and nine-minute versions of this PSA.)

When I was in high school, a required course was geometry. I found it a challenging course, but reasonably so. The theorems and corollaries about alternate interior angles and their kin weren't intended to train me to be an architect; rather, they were lessons in logic, teaching me how to think and solve.

Programming is the modern geometry, offering similar value to students, whether or not they seek careers in computer programming. I do not consider myself a programmer, yet I have benefitted immensely from the languages I taught myself outside of school. I have occasionally tried to pass on these lessons to friends, showing them some (literally) BASIC concepts on the Apple II, such as variables and FOR loops. They remain completely mystified, with one going so far as to marvel at my own capacity to grasp programming: "You're a creative person, Ken, yet you can program. I've never met anyone whose mind can switch between those two modes so effortlessly."

But programming is creative. A relative who doesn't realize that basic tenet recently characterized programming to me as "Doing the same thing, over and over". How he confused programming with data entry is beyond me. But the fusion of creativity and logic is perhaps best found on this digital landscape, and students would benefit from being introduced to that sandbox — whether or not it's on an Apple II.