Ring, ring... Terebikko calling!

2020-11-22 - Reading time: 4 minutes

So, a couple weeks ago I was watching this video tribute to Super Mario World's 30th anniversary.

At around the 17:20 mark, in the middle of talking about various tie-in products to promote the game, it brings up Mario & Yoshi's Adventure Land. A one-episode animated movie that follows Mario and Luigi through, essentially, the events of Super Mario World.

temp2.jpgWhat makes it unique is that it this is a "VCR game" of sorts that uses the Terebikko: an interactive 'quiz' device that mimics a telephone. Mario calls you. The phone rings. You pick it up. He asks you a question that needs a 1, 2, 3, or 4 response. (Or red, green, yellow, blue.)

You press the answer within the allotted time, and you get a response. (Near I can tell, it mutes the phone for the inappropriate response, but that's something we're going to find out definitively.)

And it's more than just Mario. There's a whole catalog of videos made for it in Japan, including Dragon Ball Z and Sailor Moon.

I found it all oddly fascinating. And my curiosity started to kick in. It seemed so simple, but it was a clever idea. I loaded the audio into Audacity and realized I could make out binary... uh oh.

See, one of the things I've always had an interest in, but never got a chance to try was demodulation of a digital signal from an audio file. Like the screeching of a modem, or a game loaded off an audio tape into a ZX Spectrum. That kind of thing. This seemed like the perfect on-ramp for it.

With very little actual information online, this also seemed like a perfect reverse engineering project in general.

I found out they released a version of this in the United States in 1989 under the Mattel label, a year after it's debut in Japan from Bandai, and... I found one on eBay for under $20 shipped. 😎

temp.jpg

So now I'm, seemingly, irrevocably committed to this project, now that money is involved. 😏

Here's what I'm planning. I've already spent a couple days dicking around and have a stack of notes. I'm hoping to get at least several decent blog posts out of this adventure:

My Goals for this Project!

Primary

  • Reverse engineer the digital protocol used, as much as possible
  • Create a real time decoder for it
  • Create a tool to generate the codes, so people can create their own, new videos

Secondary

  • Do a complete tear-down of the actual device with high res screencaps of the internals (I believe both US and JP versions are identical -- the case and operation certainly is, and the videos are all compatible with each other's versions). Just totally document the hell out of it. Get it all onto Github and Archive.org for safe keeping.

Nice to Have

  • Possibly integrate the decoder into a software emulator/video player as an all-in-one playback app. (How hard are VLC plugins to write...? 🤔)

That last one is unlikely, but hey, if I haven't burned myself out on the entire thing by that point, who knows?


Archer Season 11 Thoughts

2020-11-21 - Reading time: 9 minutes

MV5BOWFhNzE1YTMtMjUwMy00ZDlkLThhMjctNjI4YzdiZTQ3YmY3XkEyXkFqcGdeQXVyNjczOTE0MzM@[1].jpg

Lots of spoilers here.

Season 11 of Archer has been over for a while now, but a recent video from Wisecrack discussing the downside of the "coma seasons" got me thinking about it again. (For the record, I thought the coma seasons were generally fun, interesting "what if" anthologies that I understood helped break up creator Adam Reed's creative block. But I was happy to see them in the rear view mirror.)

This latest season? Fun in the moment-to-moment. But on the whole? I was left feeling apathetic.

I thoroughly enjoyed the rest of the team becoming better without him, while he was in a coma. I mean, I loved the better people they became. Especially Cyril. It was like they all evolved in their ultimate forms.

archer1100-2[1].jpeg

And I know, deep down, that "backsliding" is where the plot of the show HAS to go. Their transformation is the setup, and Archer being the reason they were held back is the punchline.

I understand that. But it also brings a great deal of personal frustration.

I found myself thoroughly enjoying the new, improved ISIS. And I kind of hoped the show was going to subvert my expectations. Instead of resetting everyone to their pre-coma semi-incompetency (they weren't technically shitty agents before; just... distracted... and held back), let's explore the a new normal. One where Archer turns his back on his friends, because he feels betrayed. And they no longer need him to be the agent of chaos 'glue' to keep them successful.

temp2.jpg

For a while, I seriously believed they were going to do this.The various clues I picked up on almost seemed to suggest Sterling might basically say "fuck it" and start recruiting for his own, competing spy agency. And maybe we'd see future seasons dip into that awkward, jealous rivalry. It certainly looked like Sterling was beginning to accumulate a series of friends who actually LIKED him, for a while there. Aleister, Barry, Hands. Hell, maybe even steal Pam. A competing agency of people who actually appreciate him, and maybe work better with him around? Now that's an interesting premise to explore for a while.

But... it didn't go there.

EkU_T03UwAIhaI5[1].jpg

Instead it was, apparently, just business as usual? Instead, Lana's marriage begins to fall apart. Cyril relapses into his "beta" position. And the rest follow suit, with the whole show reset back to Archer being the cause of, and solution to all of their problems.

And that's a letdown. The season felt like it was building this arc in the background... but it wasn't. It was just my imagination. The show was just backsliding. Like the characters themselves.

temp3.jpg

And now with Sterling seeing coma illusions in the finale, I don't know if this is a fake-out and he's still in the coma. Or is this some new psychosis?

I... just don't care...🤔

As a massive fan of the show for a very long time, that genuinely hurts to admit.

Don't get me wrong, the show is still fun, if a bit tired. But it just feels completely aimless in the larger view. And that's on them: they introduced the season-long arc concept back when the show took a hard turn into  Archer:Vice. And now, many seasons later, a viewer can't be blamed for looking for that to continue... trying to find a thread interlinking the episodes... and feeling kind of empty when nothing of consequence is there.

Though, the coma illusion stuff in the finale feels like wanting your cake and eating it. But I guess we'll see what happens next season for that thread. If there WAS anything anything TO it.

Ek3cKw7UUAAbFtN[1].jpg

So yeah. I really don't know what the hell they're doing at this point.

There was a predictable vibe to the show that was it's meat and potatoes in prior years that is hard to accept returning to. Those jokes and tropes made the show what we love. But increasingly Archer feels like a show that knows that it has to change, tries for a bit, but then gets cold feet about commitment and swings the steering wheel back onto the main road. Sterling's daughter was the last straw of my patience for that kind of thing: it felt like we could finally see even a sliver of permanent character development for him, but instead AJ just becomes another delivery system for TWO finger-raised-while-drinking jokes, and, this season, a kidnapping plot point.

Maybe it was better to just leave Sterling in the coma and leave the future to our imagination. 🤔


The Power of the Legion

2020-11-16 - Reading time: 11 minutes

legion6.jpg

As a long time fan of Watch Dogs 2, I observed the initial concept and trailer for Watch Dogs: Legion roll out with a feeling of trepidation.

They'd dropped the number '3' from the title, first off. Perhaps a trivial change, but for the paranoid, this was an ominous sign that things were changing.

And indeed they were.

Gone was a specific lead character. There was a big push towards the idea that you could "take control of anyone". And it seemed like there was an overall less 'realistic' feel: digital-cyber-anarchists in pig masks, skull masks. Lots of masks. And it looked like it took place in a less relatable, less contemporary world, instead set further into the dystopian future.

While I welcomed the change of venue to the UK, everything else I was seeing just wasn't clicking with me.

legion8.jpg

I felt like this would likely be where me and the Watch_Dogs™ franchise would part ways... I was all about WD2's wonderful alternate-yet-familiar world of late 2010s San Francisco, with it's terrific energy thanks to the rebel/ASCII pop art designs, and surprisingly compelling personalities. Not to mention it felt very relatable to today's world. Slightly more advanced than today, but not unrecognizably so. Just twenty minutes into the future, you could say. 😏

And it strongly looked as if Legion was poised to throw away most of what appealed to me. So I stopped following the news about it, and decided all the indicators suggested this wasn't going to be for me.

Then it launched...

legion0.jpg

Between the gameplay footage coming out, the absolutely brutal 2020 US election, and the frustrating additional delay of the much awaited Cyberpunk 2077 until mid-December, I found myself weak and incapable of holding onto the money in my virtual wallet.

So... how'd it go? Well, I just finished it last night. The "Ubisoft Connect" launcher informs me I've put in 49 hours so far. (For comparison, I've put a mere 60 hours into Watch Dogs 2. Or so it says. Feels like more.)

But did I like it?

Well, if the nearly 50 hours didn't suggest it, I'll spell it out: YES. Watch Dogs: Legion was definitely worth it.

legion3.jpg

The procedural/every-man rallied citizen gimmick that I was so skeptical about was actually a rather bold creative decision with a wonderful message about the power of the people. I don't really want to see it return in future entries, but it worked here way better than I'd have ever expected. I didn't notice similar voices. I'm sure the dupes were there but it was varied enough where it didn't stand out. The variation and people, backstories, and relationships (!) it generates is rather impressive. (Though sometimes procedural generation can get you into trouble. 😏)

legion9.jpg

But it also held it back the narrative back in some ways: everyone calls you "DedSec" -- a weak, but workable solution to recording lines without the near impossible task of referring to your procedurally generated name personally. Most of the time it sounded like it was referring to you as a representative of the group, but once or twice it just felt awkward. Not a game breaker, though. Not by a long shot. 

The cinematics felt like a bit of a downgrade from Watch Dogs 2. Possibly this was due to the procedural nature of your current player character. The nuance of performance previously infused into Marcus and his San Fran DedSec friends is reduced a bit here. Again, forgivable considering the technological circumstances. They're still generally quite good.

Even if the cinematics don't always measure up, don't even get me started on the absolute beauty and insane level of detail of London captured here. This might be the biggest advancement over WD2, and even that game still looks fantastic.

Quite often, especially with raytracing enabled, Watch Dogs: Legion is capable of looking almost photorealistic.

legion7.jpg

Another... well... I'm hesitant to call it a down side, as it's merely the side effect of the gimmick.

But I'm kind of bummed that MY Legion experience isn't everyone elses. It was just for me. Everyone playing this game is (with some exceptions) going to have a different vision of which DedSec member was there in the final act.

For instance, my main DedSec crew was composed of:

  • Wanda Baker: a 60+ assassin who's looking for one last great thrill before hanging up her guns,
  • Theresa Green: a tough as nails, mid-40s punk rock MILF hacker with mohawk,
  • and Saeed Rahmanzai: a dreadlocked AR-glasses clad young drone expert (who got less play as the team got better with drone control)

There were a dozen others on the team, but once things really got rolling, they were pretty much just not much more than background noise...

legion1.jpg

For me, Wanda, Theresa, and Saeed ARE the saviors of London.

Yet... they're not. They're just folks I recruited along the way, and I got attached to them. My imagination filled in the blanks and made them more interesting.

The game is structured in such a way that I can do that, and the story won't step on my imagination's toes.

legion5.jpg

One other major difference from Watch Dogs 2: there's a lot of streamlining of the gameplay present.

Many hacks from prior entries are gone. The character skill upgrades are greatly reduced. But you also get certain skills out of the box (like remote controlling vehicles, for example).

Where Watch Dogs 2 had a wealth of various, interesting upgrades, Legion's options are much more... shall we say, focused... to a handful of weapon, accessory, and drone hack upgrades. Many of the more interesting skills are locked behind specific recruit classes with unique abilities. This is likely why the skill tree was minimized. It gives more value to recruiting the individuals. All the really cool tricks went to them. The "beekeeper" comes to mind, with a cloud of robotic attack bees... the "living statue" guy... the hypnotic "magician"... and so on.

I never got around to checking them out, unfortunately. I locked in my core team pretty fast.

This will likely be something I'll be willing to explore on subsequent playthroughs. (There's a perma-death mode, too!)

legion4.jpg

As for the core skills shared by the team, once you realize the spider-bot lets you take down unaware people from a distance, safely, and with ease, it's really the only accessory you'll care about. It kind of makes the game too easy. Nobody is forcing you to use it, of course: most missions have multiple open ended ways to accomplish tasks.

But blimey, it feels silly to NOT use it.

Also important: the drone/turret hijack and betrayal hack skills. Get a drone specialist early on to get access to these quickly, but with enough points in your skills and everyone can do them. (Sorry, Saeed. Thanks for your service.)

legion2.jpg

Overall, Watch Dogs: Legion is a pretty damned cool experiment. Despite all odds, it largely succeeds in pulling off the trick of it's central gimmick while still delivering an engrossing (yet ultimately predictable -- spoiler!) story.

While it hasn't dethroned Watch Dogs 2 as my favorite in the series (it's going to take a LOT to do that, admittedly) it certainly holds it's own as a solid, enjoyable entry in the series.

4/5


HTB Write Up - Misc - misDIRection

2020-09-30 - Reading time: 10 minutes

Another Hack the Box write-up. This one is pretty short (EDIT: is it?), but it illustrates an unintended, but important gotcha that hit me.

But first...

I found out last time that a seemingly unwritten HTB convention* is that you only post write-ups for challenges that are retired (accessible to the paid VIP folks).

* Honestly, I only saw it mentioned while digging into the forums, and was
told about it later when I posted the previous one on Reddit.

While I didn't see an official explanation for this behavior, I suspect this is keep people from simply Googling for the flag. If that IS the case, I disagree with that idea: any good CTF'er will know to exclude the flag identifier -HTB or the CTF name (-"Hack the Box") when looking for information to help them legitimately solve the problem.

If someone is going to be a rotten rat and cheat their way through the challenges, well, that's kind of the risk you take when it's open to the public. Hiding the answers just means they'll squirrel them away out of sight for the rats to find. (Boy there's a lot of animals in this paragraph.)

And, of course, if it's simply to give value to VIP members, well, I have no interest in helping a business maintain a poor model. But I don't expect that to be the motive here. 😉

Suffice it to say, considering this one hasn't been retired since 2018, I won't be sharing it anywhere outside my own blog, apparently. And maybe Twitter. (Hi, Twitter!)

The Case Against Windows

I did this challenge, initially, using Windows. Mostly because this seemed like a pretty easy challenge, and I didn't think that would be a problem.

The challenge provides you with a zip file, appropriately named misDIRection.zip.

Unzipping the file produces a .secret/ directory, and inside a series of directories labelled 0-9a-zA-Z. Some of these are empty. But some have 0-byte files named after integers. There were no duplicates among them.

Archive:  ../misDIRection.zip
   creating: .secret/
   creating: .secret/S/
 extracting: .secret/S/1
   creating: .secret/V/
 extracting: .secret/V/35
   creating: .secret/F/
 extracting: .secret/F/2
 extracting: .secret/F/19
 extracting: .secret/F/27
   creating: .secret/o/
   creating: .secret/H/
   creating: .secret/A/
   creating: .secret/r/
   creating: .secret/m/
   creating: .secret/B/
 extracting: .secret/B/23

...etc...

I thought about this one for a bit, and considered how a message could be encoded.

Then I had an idea: what if the numbers map to a position in an output. Like, where file "1" is, that's in the S directory.  "2" is in F, etc.

So I started charting this out in Notepad, but I got about 4 letters deep and realized -- wait, I should be doing this in a programmatic way. There are tools for this. Work smarter.

So I pull up the WSL bash prompt and throw down: find . -type f | sort -k 1.13 -n

This finds all the file-type entries under the current directory and pipes the result into sort. The -k argument basically says to sort on the 13th column, and -n specifies a numeric sort.

This gave a pretty clear arrangement: SFrce0rjUjNjdeX5XzFUX1BSNdFUX1NPN2V9. NICE!

Not So Fast, Son

While this wasn't the flag, of course, it seemed like a solid lead into a second phase.

So I pull up CyberChef and start messing around with it. I go through the usual transformations I try, and Base64 immediately catches my eye: HZÜ{JãR3cuåù_1T_PR5ÑT_SO7e}.

It's so painfully close to what I'm looking for. You can SEE the skeleton of a legit Hack the Box flag: HTB{xxx_xxx_xxx_xxx}. You can see the curly braces, and the underscores, and even the opening "H". Presumably some of the other letters are correct as well, but you can't know that yet, of course.

So I went down some weird rabbit holes. The hashid tool thought it was BigCrypt:

Analyzing 'SFrce0rjUjNjdeX5XzFUX1BSNdFUX1NPN2V9'
[+] BigCrypt

And The Towel Was Thrown In

Everything I tried wound up being big time wasters.

So I gave up and looked for a write-up. Inside that write-up, the guy did everything I did:

WHAT?

I do a search for SFrce0rjUjNjdeX5XzFUX1BSNdFUX1NPN2V9 -- and sure enough, there it is.

Am I going crazy? It's just a basic Base64 decoding. Why is mine different?

Just to verify, I pipe it through the same base64 tool on my end. Nope. Still different.

What am I doing differently here?!

Then it dawns on me: I'm using Windows.

I'd gotten used to doing some formerly Unix-style command line stuff in Windows, thanks to WSL letting me bounce between the two worlds. And that was my mistake.

A Return to Relative Sanity

Let's take a look:

  • Some characters showed up fine.
  • The same string gave two different decodings.
  • How could that be?

Well, unzipping a file that creates an alphabet... both upper AND lowercase letters... oh shit.

Right: unzipping in Windows means ".secret/s" is the same directory as ".secret/S".

Which one you get depends on which one unzipped first. So I had a jumble of upper and lowercase directories that Windows went all YOLO on. And when I jumped over to WSL to do my find command, the damage was already done.

I needed to unzip the file from Unix.

So I nuked the entire directory and unpacked all of this from a proper Linux bash shell in my lab VM. And sure enough, I have a lot more directories.

I run my find command, and I get a slightly different version of my string: SFRCe0RJUjNjdEx5XzFuX1BsNDFuX1NpN2V9.

Note the case differences:

Wrong: SFrce0rjUjNjdeX5XzFUX1BSNdFUX1NPN2V9
Right: SFRCe0RJUjNjdEx5XzFuX1BsNDFuX1NpN2V9

So I pump that through base64 -d, and we get the CORRECT flag this time: HTB{DIR3ctLy_1n_Pl41n_Si7e}.

The Takeaway

This was frustrating, but still quite educational: in the future I might encounter an issue similar to this, and hopefully I'll remember this experience. I mean, I didn't look closely enough at my string, and searching for it in the write-up made me think it was 1:1 exactly the same. All because search tools are, by default, case insensitive. And Windows is case insensitive.

But I'm very sensitive. 😢

Seriously, though don't get too comfortable with Windows, man. It'll stab you when you're not looking!

I don't for a moment think the author of this challenge intended for this outcome. (I sure didn't.) But hey: thank goodness SOMEONE wrote a write-up on a non-retired Hack the Box challenge, huh? 😏


HTB Write Up - OSINT - ID Exposed

2020-09-24 - Reading time: 9 minutes

I've been doing a lot of TryHackMe rooms over the last week or two, but this morning I decided to jump over to HackTheBox to take a look at their OSINT challenges.

While I've never done a CTF write-up before, I want to start doing this a bit more often. Especially when I encounter new topics or concepts I've never encountered before.

We are looking for Sara Medson Cruz's last location, where she left a message. We need to find out what this message is! We only have her email: saramedsoncruz@gmail.com

With this bit of content, I spent a lot of time going through my usual routine...

Sherluckin' Out

First, I looked for the username saramedsoncruz using Sherlock. It's a tool written in Python that queries a ton of social media services. (There's websites for this, too.) This pulled up only a couple results:

[*] Checking username saramedsoncruz on:
[+] Pinterest: https://www.pinterest.com/saramedsoncruz/
[+] geocaching: https://www.geocaching.com/p/default.aspx?u=saramedsoncruz

When I saw the Geocaching link, I got excited. We could satisfy all of our requirements.

Her last location? Possibly! A potential message left? Sure! Maybe she took a picture of a message left in a cache. Or had comments about a cache she'd just found.

This seemed to be a lock... but, despite a match on that very specific username, it wound up going nowhere.

Struck out with the Pinterest link, but I had low hopes for that one.

Desperation Sets In...

At this point, I'm trying everything I know. Manually clawing though "Sara Cruz" accounts (and various permutations on the name) on Facebook and other social media sites. One even had a Guy Fawkes mask for an avatar -- I thought to myself "Some dumb hacker shit! Surely, this must be it!"

But, no. Another dead end.

As I'm searching around, I see a link talking about Google IDs and Gmail accounts. It looks interesting, but I put it aside.

I'm about to give up -- which is fine by me. Yeah, I'm always a little disappointed when I throw in the towel, but that's part of the reason I do these CTF challenges: to test what I know, and if it's something I don't know: learn. (From write-ups. Like this. 😏)

...when suddenly!

So I return to the HTB OSINT page, and I take a look at the name of the challenge so I can google a write-up.

"ID Exposed"... hey, waaaait a minute...

I think for a moment as that piece of information zip-zaps across my mind over to the article I'd found earlier: Getting a Grasp on GoogleIDs.

I'd completely overlooked a clue in the title. Turns out this was VERY relevant!

I'll leave the article for you to see the details, but long story short: there's a profile ID number attached to every Google account. There's a couple ways to get this ID outlined in the article.

In my case, I added it to my existing Google Contacts collection and sniffed the data-personid attribute from the modal dialog of the Contacts page when the contact is opened for editing (it may be seen elsewhere, but this is where I got it).

With this in hand, I went over to the People API people.get page, which lets you try executing an API endpoint. In order to execute this endpoint call, you'll need to give permission for your own Google account.

Following the instructions in the article, I plugged in "people/c6412528252752365100" for the resourceName, and "metadata" for the personFields field.

The call, successful, returned this block of JSON:

{
  "resourceName": "people/c6412528252752365100",
  "etag": "%EgMBNy4aBAECBQciDG1IQ1NWS3NJSEc0PQ==",
  "metadata": {
    "sources": [
      {
        "type": "CONTACT",
        "id": "58fde0788976062c",
        "etag": "#mHCSVKsIHG4=",
        "updateTime": "2020-09-24T15:59:18.216Z"
      },
      {
        "type": "PROFILE",
        "id": "117395327982835488254",
        "etag": "#4eZz2/IuMFw=",
        "profileMetadata": {
          "objectType": "PERSON",
          "userTypes": [
            "GOOGLE_USER"
          ]
        }
      }
    ],
    "objectType": "PERSON"
  }
}

Under the metadata -> sources entry with the PROFILE type, there is our GoogleID: 117395327982835488254.

Now That's Brazilliant

From here, we can look for various things (again, check the article for what's possible).

As it turns out, you can take a look at the 'contributions' that a GoogleID has made to Google Maps. This means reviews and photos, for the most part. Certainly the kind of data that would tick the boxes of what this CTF solution asks of us.

So, I tack the GoogleID onto the appropriate URL...

https://www.google.com/maps/contrib/117395327982835488254/

...and sure enough:

"Flag Watcher", huh? 😏

No photos, but they've posted a review for the 'Museu do Futebol' in Brazil, giving it a whopping five stars, and a terse comment of "really nice museum"...

Wait, there's more.

Like, literally 'More'.

Click it.

And there's our flag, buried in a bunch of percent signs to force the comment to collapse. :)

HTB{i_W4S_D_I_S_c_O_v_3_R_3_D}

Conclusion

It's okay to give up, as long as you're willing to learn.

Just be careful that you're not overlooking a clue being given to you. Few things suck more than bashing your head against the wall going down a dead end for an hour when a quick re-read of the CTF details might have prevented it. 😳


Gangster Computer God Worldwide Secret Containment Policy

2020-09-13 - Reading time: ~1 minute

I didn't go over every word of this, but I'm fairly sure these are the reenacted insane ramblings of Francis E. Dec. Besides, the phrase "Gangster Computer God" is pretty much his thing. 😉

Francis E. Dec (January 6, 1926 – January 21, 1996) was an American lawyer and outsider writer who was best known for his typewritten diatribes that he independently mailed and published from the late 1960s onward. His works are characterized by highly accusatory and vulgar attacks on various subjects, often making use of phrases like "Mad Deadly Worldwide Communist Gangster Computer God" to slander hierarchies that he believed were engaging in electronic harassment against him.

Here's a sample of his... work... 🤯


Hacking Reality to Save the Princess

2020-09-13 - Reading time: 6 minutes

Came across this over on Hacker News this morning and left a brief thought on it over there (that I'm sure has been ripped to shreds by now). (EDIT: Not so much. But we did reach similar endpoints. Thanks, guys!)

Long story short, even shorter: player manipulates and aligns glitches to basically rewrite the code's stack to force the game ending sequence to execute. Goes from title screen to prince rescued in ~3 minutes.

From a hacker perspective, this kind of thing is -- 😘👌 -- excellent. Even if the player didn't consciously decide to manipulate the stack but happened to stumble onto a combination to make it work, it's still super cool to break it down, which is what this video does.



Originally this post was a reflection on the ethics of this kind of thing being considered a 'world record', and how I'd rather see them split this out into it's own category.

Instead of investigating first, I just vomited out all my thoughts and feelings without actually seeing how the world decided to handle this. I ran on an assumption. And it was wrong.

Because they DO break it out by category:

Here's how they break it down -- and they are NOT fucking around:

100%

Beat the game, entering and completing every stage and Hammer Bros. fight.

  • Time starts on pressing Start on the title screen.
  • Time ends on entering the door after defeating Bowser.

This category includes:

  • All action stages (numbered stages, fortresses, airships, plants, hands...)
  • All overworld Hammer Bros. (including their Boomerang, Fire and Sledge Bros. variations)

Important notes:

  • Do not forget the Fire Bros. behind the rock in world 2, the two plants in world 7 and the three hands in world 8!
  • If you accidentally transform some Hammer Bros. into a coinship, you must either beat the coinship or die on purpose during the coinship to transform it back into Hammer Bros. and then defeat them.
  • Mushroom houses, card games, roulette games and overworld pipes are allowed but not required.

Banned emulators: ZSNES (any version), SNES9x 1.4x

Any% Warpelss

Beat the game as quickly as possible without using any wrong warps or warp whistles. Warp whistles may be collected but not used.

Time starts on pressing Start on the title screen.
Time ends on entering the door after defeating Bowser.

Banned emulators: ZSNES (any version), SNES9x 1.4x

Any% (No Wrong Warp)

Beat the game as quickly as possible without using any wrong warps.

Time starts on pressing Start on the title screen.
Time ends on entering the door after defeating Bowser.

Banned emulators: ZSNES (any version), SNES9x 1.4x

Any%

Time starts on pressing Start on the title screen.


Time ends when Mario is visible in the princess' chamber. If the game crashes, the run is invalid.


Banned platforms: Virtual Console, NESClassic, BizHawk (QuickNES core)Note that BizHawk with the NESHawk core is allowed.

And these are just the Super Mario Bros. 3 specific rule sets. Other games have different rules.

For instance, Portal has "Out of Bounds" (any and all tricks allowed), "Inbounds" (camera and portals cannot leave the map), "Glitchless" (use none of the officially recognized glitches), and "Inbounds No SLA" (Save/Load Abuse).

Even something like bloody Cookie Clicker has a whole bunch of rule sets: "1 Million Cookies", "Neverclick" (bake 1 million cookies without clicking the cookie <= 15 times), "True Neverclick" (bake 1 million cookies without clicking the cookie at all), "Hardcore" (bake 1 billion cookies without upgrades), "40 Achievements" (guess), "1 Heavenly Chip" (🙏).

Finding this out was pretty amazing. Not only were my concerns alleviated, but I've actually found a brand new level of respect for the speedrunning. :)

And I was able to salvage a lengthy post, and turn it into something positive. Everyone wins!


One Blog Too Many

2020-09-06 - Reading time: 2 minutes

Decided I needed to have a place for random, dumb junk. And I'll keep BytesTemplar.com specific to projects and coding.

I've taken this opportunity to explore other flat-file CMS..es...CMSes... (🤔)

Sluggish Gravy

I migrated BT.com from WordPress to Grav at the start of the year. It's not bad, and at the time I was quite pleased with it... until I uploaded it to my shared Dreamhost account. Despite not using MySQL, and despite being a simple 'drop in and go' system, it still had these absolutely weird moments of slowness. Pages would take 3-5 seconds to load. Same for the admin.

This didn't happen on my development VM. It was a bit of a surprise.

I spent hours trying to debug the issue, but eventually I had to just concede that it was some mysterious Dreamhost magic getting in the way, and let it be.

Woof

So, this week I took a look at some others, and this time I'd install it on Dreamhost first to see how it performs. And, long story shorter: Bludit did the job. Fast, uses a clean WYSIWYG editor, but you can also flip over to Markdown. Feels mostly solid, and has a decent backup plugin.

The downsides are that there isn't really an easy to use plugin/theme system. And one of the plugins is broken so badly that it ate a lengthy post I'd written because I saved without a post title... Thankfully it's a completely unnecessary one that I quickly jettisoned once I realized it was a bug in the plugin, not the CMS.

Onward

So, got all this setup in an evening. Manually moved over some goofier posts from BT.com.

I feel like I'm spreading my interests thin -- BT for generic development? This for random junk? Another blog (elsewhere) for infosec?

I don't know what the hell I'm thinking. I need to clean this up and unify.


Elsewhere...