Easy, right? :-P Now I can play my homebrew (2048 2600) on the real thing.
By the way, if you want to buy a physical 2048 2600 cart, Good Deal Games sells them. I have no participation in that (other than coding the open-source game and pestering Jenn Harrison into drawing the cool cartridge front art), but I’m really happy to have my game on a real cart!
I got pretty excited when I first read about Soylent. Don’t get me wrong: I do like food (otherwise I’d not need to track everything I eat to mantain my weight), and I also understand its social aspect. But having to decide what to eat, preparing/going after it burns a time I’d rather spend on more fun things.
Unfortunately, Soylent doesn’t deliver in Canada (yet). But I found an alternative in Space Nutrients Station 100% Food. It is a mix of different foods that, just like its creppy-sci-fi-named competitor, claims to offer all the nutrients you need on a single meal. After a quick exchange of emails, I purchased an 8-bottle sampler kit with PayPal and had it here in about a week.
Shellshock is a serious server security issue that was made public yesterday. The best fix is to apply security updates from your Linux distribution, as they become available.
If that is not possible for any reason (e.g., unsupported distros, like the Ubuntu 13.04 boxes we have not killed yet), you will need to compile bash from the source (including all the patches) – which may be confusing if you are not used to build C/C++ software “by hand”.
There are some scripts that compile and install a new bash (like shellshocker.net’s curl https://shellshocker.net/fixbash | sh), but they assume you are ok with the latest bash version (4.3), and I needed to stay with 4.2. Here is how I did it:
rePLAY: Symphony of Heroes features an orchestra interpreting an unusual (but increasing popular) genre: video game music. Between a great previous experience with Video Games Live and a nice Groupon offer, we could not miss it when it came to Toronto.
An untrained observer would infer I’d spend this Canada Day lazily reading comics. That isn’t true: to honor the spirit of the day, I’ve been lazily reading Canada-related comic books (by author or subject).
The biggest surprise, however, was Archie Goes to Canada: it collects stories from multiple periods that are not (much) stereotypical, and even doubles as a cultural/travel guide of sorts.
But my day wont’t be just comics: there is also the
Captain Canuck animated series, available online for free. It is modern-looking and (judging by a peek) very action-oriented, so I expect a very un-canadian punch-to-apology ratio. Anyway, it’s the red-and-white that counts, so…. Happy Canada Day!
In Portuguese, the word “copa” isn’t just a reference to the FIFA World Cup, or any generic cup. It is also often used to designate a pantry, or a small dining room inside a kitchen – some people even use the term interchangeably with “cozinha”, the word for “kitchen”.
Netflix Brazil used this in a smart commercial that dribbles FIFA’s Orwellian (and borderline unconstitutional) countrywide media ban on expressions (which includes things like “Christmas 2014”). The spot showcases the freedom of not watching any important soccer match (a non-trivial luxury in Brazil, trust me) by playing entirely as a double entendre. Here is a rough translation:
Guy: “You know what? I’m gonna watch Netflix on the [copa].” (grabs a tablet)
Girl: “Oh, you and this [copa], [copa], ewww.”
Guy 2: “Yeah, why not on the living room?”
Guy 3: “…or the office, the bedroom, the porch…”
Guy (walking to the “copa”): “I watch Netflix WHEREVER I WANT. And I want it ON THE [copa].”
Guy 2: “So I can watch movies… on the [copa]?”
Guy 3: “…pausing and returning on the [copa]?”
Guy 4: “Watch exclusive series… on the [copa]?”
Guy: “See? Netflix changes everything!”
Narrator: “Netflix on the [copa]? Why not? Movies and series for you to watch whenever and however you want. Subscribe now.”
Just watched AMC’s first episode of Halt and Catch Fire – a TV show that about a hyper-stereotyped bunch (chrarming entrepreneur, family-man engineer and punk-girl hacker) facing “big corps” of the early 80s. And they start by challenging no one less than IBM, so I had to check it out.
Every fiction piece about computers has one innacuracy or another, and I usually just eat my popcorn and enjoy the show. But this one had an issue too close to home to be ignored. And it started with a good idea: they borrowed the plot from Phoenix Technologies’ cloning of the IBM PC BIOS, which I’d summarize like this:
In order to run software made for the IBM PC, a computer would need a piece of software knonw as the BIOS. It was inside every IBM computer, but was dutifully copyrighted. Copying or mimicking it directly would likely result in legal action, but Phoenix got over that (and sold their version to several IBM PC clone manufacturers) by having two teams on the job: one studied the code and wrote specifications on how it worked, and another created a new BIOS only from reading such specifications, making it a “clean room” reverse engineering.
The episode puts the hacker girl in the role of the second team, while the engineer guy replaces the first (helped by the entrepreneur). Also, his task was simplified into just generating a printout of the BIOS that the girl would recreate. Things were fine up to this point, but the male duo would accomplish the task in the most complicated way possible: they hooked the guts of the computer to a LED panel, which would show a binary representation of the codes, one digit at a time. Then they would write each one on a block of paper and then type it all (into the reassembled PC or another computer, not sure), and finally print it all out!
Heck, I understand the need for dramatizing the effort. And I also wasn’t for sure the genius computer designer this engineer is supposed to be, but if you asked me how to do that in the IBM PC era, I would likely just suggest typing these two commands:
The first line calls debug, the monitor/assembler/disassembler tool that came with DOS since verison 1.0. The second one (typed under debug’s - prompt) will dump (d) the contents of the first 128 bytes of the PC-BIOS. It will even print the characters that match each code (revealing some of the messages printed when you turned the computer on), and typing d again will reveal the next batch of 128 bytes, again and again. Attach a printer and you are done.
But don’t take my word for it: go to James Friend’s nice PC emulator page (based on PCE) and try the commands yourself (the page actually emulates a slightly more modern computer, but it boots in the IBM-PC-like “real mode”). You will get a result like this:
Some people may argue they could not know the location (F000:0000) without Google, but the IBM PC technical manual (PDF) that came with it tells you on page 1-12 that it’s located at F0000 (an absolute 80861 address that can be referred to as F000:0000). Even if IBM had hidden it, the Intel 8086 manual (PDF) reveals (in page 2-29, table 2-4) that the processor boots at the FFFF:0000 address (CS:Instruction Pointer). Typing u FFFF:0000 on debug would reveal the first instruction ran is a JMP to the beginning of the BIOS code (just after a few header bytes), and one would reasonably dump from it until the end of memory, which would match the ROM chip capacity (which was also public information).
But wait, there is more: if they had really bothered reading the aforementioned PC manual, they could have saved some ink and paper. Appendix A contains the fully disassembled BIOS code – meaning those guys spend a whole weekend printing something that was already on the box, in an easier to read format. Geniuses.
Having that out of my chest, I can focus on the episode itself: it was ok-ish. I may check future ones if they appear on the website/over-the-air/Netflix/whatever, but I’m not really holding my breath.
As pointed by Clonejay, the IBM PC actually had an 8088 processor. Programmers (including myself) tend to refer to it as 8086 because software-wise, they were identical. The 8088 had a smaller data bus, compatible with cheaper-but-slower RAM chips). You won’t find much 8088-specific documentation, so I’ll keep the text as-is.↩
As everyone else on the planet, I got hooked on 2048 and amazed by the variants that sprouted. Its simple rules and graphics are one distinctive characteristic. “It’s so simple”, I thought, “that it really could have been done on an Atari”.
And once you have such an idea…
That’s right: this is a version of 2048 for the Atari 2600! It took me about
16 hours of work to get to a playable prototype, and about 50 hours for the final
version, spread over a couple weekends and nights during which I was refining the
core game and squeezing features like sound, two-player mode, and a high score.
During this period it briefly made the front page of
Hacker News, received lots of great feedback on Atari Age and RVG,
and got a couple of contributions (bug fix, PAL support). The 2048 source was
also helpful – even though I had to rethink the whole shifting/merging strategy,
it provided a nice foundation with very readable code.
The project page has all the instructions and files you need to run it on an
emulator, on a real console or even in your browser. The remainder of this post
shows some technical notes (which can also be found at the main assembly source file).
It runs even slower than in MRI and is far from polished, but works. To watch it, just click the button below and wait until the black lines get replaced by Pitfall Harry slooooowly running to the left (sorry, no key bindings for now).
Keep reading if you want the gory technical details!