The fun thing about that is the entire map is generated by something like 50 bytes of code. (Yes, bytes.) As far as I know, it goes through all 256 screens. I could swear there used to be a whole world map online, but I’m having difficulty locating it.
Actually, here’s a map, and if I’m reading it right, that one shows 255 unique screens.
I would be extremely surprised if it were 255, since it would take slightly more space to program for 255 screens than 256, and with space at as much of a premium as it was, there’s no way they’d do that (especially not to shrink the world).
Yes, and the algorithm is simpler for 256 rooms than for 255. With 256, every time you change screens, you can just add or subtract 1 from the seed. With 255, you’d have to add or subtract one, and then check to see if you’re on the skipped seed, and go another step if you are. There’s no way they’d put in a complication like that.
I just programmed the algorithm using the source code (and then looking up to see if someone already did the work doing it in C or C++) for Pitfall and, indeed, it loops back to the initiall value after 255. The output of “0” is not represented, so that’s the number missing.
Note that the seed, 196, appears at count 0 and count 255, so the pattern repeats after 255, not 256 iterations. Note that “0” as an output does not appear. Entering “0” as the seed value results in constant output of 0.
And here is the C code implementation of the assembly source that I used, if you want to check. That’s 15 bytes long in assembly, but note that’s only half of the map generation code (this is what happens when you go rightward in the world), and doesn’t include some branching.
Well she was kind of hesitant at first but it obviously meant a lot to me and I really wanted to do it, so she’s rolling with it and some of my other ideas. She only likes angry birds and bejewelled type phone games, but she is in all other ways my sweetie, so we’ll celebrate 5 years at the end of this summer
Oh, and I talked her into doing a mostly red porch
Ok, I’d like to get the Atari and the game within the next few weeks and start the painting at some point in april.
I got an art tablet that has sheets of tracing paper between thin plastic sheets you can cut stencils out of. I have 10x17 printouts I was going to use to draw/trace the objects out, then stencil. But…
I’m thinking about doing this one. The question I have is: my printouts are 10X17cm, how do I change the image to print at 12x20cm? I just have whatever program windoze 10 uses by default to print and it has some size options but not 12x20cm.
pulykamell: er, yes that Thomas Jentzsch’s descriptions are a bit confusing because he keeps using the word “random”. I do not think that word means what he thinks it means. But I’ve done a few languages of programming back in the day, and I’d love to have all the original code (and many other games from back then) and analyze it. Maybe I could then make my own Pitfall sequels!
Yeah, it’s a pseudo-random generator called a linear feedback shift register (LFSR). While he does say “randomly,” he immediately says that it’s through a bi-directional LFSR, so if you know what an LFSR is, you’d know it’s more accurately referred to as a pseudo-random number generator. Perhaps he should have used that term or caged the word “random” in quotes.
As far as the code goes, that is all the Pitfall code. You can modify it, reassemble it, and run it on an Atari 2600 emulator (Stella is the one I used.) I’ve done it, but all I did was change the starting seed value for the in LFSR, so I’d get a different map (or, really, a different starting point for the map; the “random” number sequence is still the same, just starting from a different point.)
ETA: Oh, and, sorry, you’ll need a 6502 assembler to generate the machine code before you run it through the emulator. I used DASM.
Yes, but putting it in quotes would have cost him 16 bits of storage for the quote characters, and adding the pseudo- prefix would have cost him a whopping 56 bits. There’s no way he could afford that much bloat!
I should add, if you are really interested, check out the Atari Age website. That has a whole mess of Atari 2600 programming resources. I don’t know if there’s any higher language level tools available out there, but most of the Atari 2600 programming I’ve seen requires knowledge of the 6502 instruction set/assembly language programming (same processor as used in the early Apples, Commodores, NES, etc.) There apparently is a BASIC compiler available, but programming the 2600 really requires knowledge of assembly. If you dig, you can find the disassemblies and commented source code versions of a number of 2600 cartridges.
(1) You are talking about a HELLUVA lot of teensy tiny detail painting, vertical, no less. . . And you’re on disability? I hurt all over just contemplating the task! The stretching, climbing up on ladders or boxes, bending double or laying on your stomach for the bottom row. Ow!
(2) Stencil work is messy. Potentially bloody, too, if you make your own stencils. Make sure you practice A LOT before you start on the actual garage doors! I’d recommend a sponge for painting, instead of gobs of paint on a brush. The paint loves to run under the stencil.
Personally, I’d take the screenshots to a graphics shop and tell them what you want to do. Perhaps they can make a transfer or a decal. And then go to a decent paint store and get advice on the best painted surface for this decal. Don’t worry, you’ll still get a chance to measure and calculate and create and contort your body! I just think you’ll get a better finished project that would also better accommodate your disabled status.
I personally like the free program IrfanView. The print menu has all kinds of options for custom sizes, and allows selecting the proper unit (cm vs. inches). Uncheck “aspect ratio” so that it doesn’t try to calculate it for you–although in principle the size should be 20x11.764, in practice you won’t notice the difference between that and 20x12, and it’ll just make the calculations annoying.