No, Eurogamer, Nintendo didn’t sell a ROM downloaded from the internet.

In the wake of Nintendo’s lawsuit against LoveROMs and LoveRetro and the subsequent closing of ROM downloads from EmuParadise, I saw an article from Eurogamer from early 2017 crop back up. A part of the site’s “Here’s a Thing” video series by Chris Bratt, the article’s headline poses the question “Did Nintendo download a Mario ROM and sell it back to us?” The conclusion drawn, quoting Bratt from the video, is that “every sign here points toward Super Mario Bros on the Wii Virtual Console being a ROM that they sourced online.” I’m writing this post to explain why that conclusion is wrong.

The .nes/iNes format

If you use homebrew software to dump the original Wii VC release of Super Mario Bros to an SD card and look at it in a hex editor, you can find an iNES format header in the file 00000001.app. iNES was one of the first NES emulators to be released, developed since the 90s by Marat Fayzullin. For his emulator, Fayzullin created the .nes file format that is now the de facto standard for NES ROMs, hence it being called the iNES format. An attempted successor format called the Universal NES Image Format or UNIF was created with the motivation “to offer more description of the mapper board than the popular iNES 1.0 format” but failed to gain traction and was supplanted by the NES 2.0 extension to the iNES format. With the exception of a very few game dumps that according to a Nesdev forum post from 2015 only exist in UNIF format, you are damn near guaranteed that any NES ROMs you find will be in the format Fayzullin created.

So we have Nintendo’s VC release of SMB1 verified to use a format created for unauthorized emulation. This in and of itself is worthy of discussion, given Nintendo’s ardent stance against emulators as demonstrated on their corporate legal information FAQ page

How Does Nintendo Feel About the Emergence of Video Game Emulators?

The introduction of emulators created to play illegally copied Nintendo software represents the greatest threat to date to the intellectual property rights of video game developers. As is the case with any business or industry, when its products become available for free, the revenue stream supporting that industry is threatened. Such emulators have the potential to significantly damage a worldwide entertainment software industry which generates over $15 billion annually, and tens of thousands of jobs.

What Does Nintendo Think of the Argument that Emulators are Actually Good for Nintendo Because it Promotes the Nintendo Brand to PC Users and Leads to More Sales?

Distribution of an emulator developed to play illegally copied Nintendo software hurts Nintendo’s goodwill, the millions of dollars invested in research & development and marketing by Nintendo and its licensees. Substantial damages are caused to Nintendo and its licensees. It is irrelevant whether or not someone profits from the distribution of an emulator. The emulator promotes the play of illegal ROMs , NOT authentic games. Thus, not only does it not lead to more sales, it has the opposite effect and purpose.

How Come Nintendo Does Not Take Steps Towards Legitimizing Nintendo Emulators?

Emulators developed to play illegally copied Nintendo software promote piracy. That’s like asking why doesn’t Nintendo legitimize piracy. It doesn’t make any business sense. It’s that simple and not open to debate.

[…]

Are Game Copying Devices Illegal?

Yes. Game copiers enable users to illegally copy video game software onto floppy disks, writeable compact disks or the hard drive of a personal computer. They enable the user to make, play and distribute illegal copies of video game software which violates Nintendo’s copyrights and trademarks. These devices also allow for the uploading and downloading of ROMs to and from the Internet. Based upon the functions of these devices, they are illegal.

Bratt brings this up in the video, talking about how misleading it is to conflate emulators themselves (which are completely legal and have even acted as platforms for new games long after the death of the emulated platforms) and piracy of copyrighted games. There’s even a jab taken at how Nintendo’s stance against legitimizing emulation not making business sense must not apply to the Virtual Console line itself, given that it is itself a form of emulation. While it makes sense that Ninty would use a tried-and-true format internally, by basing their work on that of a community they so vehemently denounce as being such a threat to the industry the corporate dickheads are having their cake and fucking it too.

where the argument falls apart

The video then continues with the line “every sign here points toward Super Mario Bros on the Wii Virtual Console being a ROM that they sourced online.” Bratt even has Fayzullin weigh in.

“There are minute differences between ROM dumps,” explained Fayzullin. “Depending on the cartridge version and how it has been dumped. If you see that your .NES file DOES NOT match any of the ones found online, it is likely to be their own ROM dump. I have cut the ROM content out of the Wii file you sent me and it indeed matches the .NES file found online.”

This is a peculiar thing for someone who’s been an expert in NES emulation for decades now to say, because a non-expert like me can point out the obvious flaw, a basic principle of ROM dumping…

All good dumps of the same cartridge/release version will be identical

So any ROMs that don’t match known good dumps are different versions, modified, or badly dumped. The most common sort of bad dump you’ll find will probably be overdumps, since while they have more data than should be present, that extra data is usually meaningless filler that will be ignored and is thus still perfectly playable. But it won’t work for something like RetroAchievements since it won’t have a recognized hash. For an example of a database of good ROM dumps that hashes can be verified against, there’s No-Intro’s DAT-o-Matic.

Since the Virtual Console release of SMB1 matches a known good dump, it’s impossible to prove whether or not it was sourced from a pirated copy or dumped internally. If it matched a known bad dump, it could be identified as coming from a particular pirated ROM source. As it is, the most likely answer is that they made a dump in-house using a pre-existing format so they didn’t have to reinvent the wheel.

New Research From ResetEra

This post has been sitting in my drafts since 31 Aug, and since then new information came to light from a ResetEra thread. Back in August, Reddit user PPLToast posted about how a developer named Tomohiro Kawase was credited for the “NES Emulator Program” in Animal Crossing, who after work on emulators like iNES (“Sound support completely rewritten, thanks to Kawase Tomohiro”) got hired by Nintendo, and his work is most likely why Nintendo has used the iNES format. ROMs extracted from Animal Crossing are also in iNES format. Except one.

ResetEra user Krvavi Abada did more research on Kawase and revived the ResetEra thread on the subject of his work in October. He found that everything Kawase was credited with at Nintendo had to do with emulation, starting with Pokémon Stadium’s GB Tower. At the time of Kawase being hired there was not yet a standardized header in the emulation community for Famicom Disk System games, standardization didn’t happen “until around November 1998 with the release of the fwnes emulator. About 3 months after the release of Pokemon Stadium, Tomohiro Kawase’s first project at Nintendo.”

That one game in Animal Crossing that doesn’t have a header is the FDS game Clu Clu Land D (originally known as  “Clu Clu Land: Welcome to New Clu Clu Land” and retitled outside Japan when included in Animal Crossing). CCLD was never given a retail release, only being available from the Famicom Disk Writer kiosk to write onto a blank FDS disk. The FDS includes data blocks both for manufacturing date and date the disk was last written to. This means dumps of kiosk games will be unique to the particular disk it was dumped from. Abada looked at the write date for the CCLD dump in Animal Crossing and found that it’s from a disk manufactured and written on 22 November 1988, which matches with the 1988 copyright of the game.  But despite this copyright date, “Welcome to New Clu Clu Land wasn’t actually released until 1992 […] In fact it was the last FDS game released.” This dump, then, must have been from Nintendo’s own archives. With this knowledge, it is almost certain that the other first and second party emulated games Nintendo has released have been sourced internally and not grabbed from the internet.

On an interesting closing note, in Marat Fayzullin’s documentation of the NES architecture, one of the people credited with helping obtain the information is a “Kawasedo”, a nickname Kawase used. The Game Boy Advance’s BIOS has a developer credit embedded in it: “// Coded by Kawasedo”

Update

My mental health is still in the gutter and what creative energy I have is mostly directed to physical projects. I have something in the works to post to YouTube but I have to finish recording it and then edit so that will still be a while. There’s a post that’s been sat in my drafts since the very end of August but it was supposed to have a video portion and I still have yet to record that and I’m thinking about scrapping the entire post. Hopefully I can get some substantial writing done at some point soon, but I’m not going to try to force it when I’m not in a great place

Blogging hiatus & mental health note

Since I started this blog in February I’ve stuck to a goal of at least one substantial post a month (last month’s angry poem totally counts damn it!) For this month there won’t be a post, and possibly next month. My mental health has been particularly volatile this summer to the point I had to back out of the D&D game I posted about. I need to get my shit together before worrying about an arbitrary self-made obligation for writing.

First Campaign Hype

I’ve only played Dungeons and Dragons once in my life so far, a one-shot run for me by a buddy from work. That’s about to change. Next Thursday we should be starting a campaign taking place in Critical Role’s Exandria, as a coworker who started about a month or two ago is also a Critter. I’m so fucking excited.

queers

queers, horrible deviants
sexually immoral
preying on innocent children
they should be shunned
they should be outed
they should be threatened
why can’t they just be normal
why can’t they just be like us good gays

happy fucking pride month twenty eighteen

A Rebranding

Over the last couple days I’ve updated things around here. There’s a new theme, Carbon Lite, with a new header image from Pixabay user geralt. I’ve also gotten rid of the godawful placeholder title of “Jay’s Thoughts”, with the blog you’re reading now called “Androgyne of the Archeart” (the Archeart being the androgynous deity of the elves in Critical Role based on Corellon of the Dawn War D&D pantheon).

I’ve also licensed my work here under Creative Commons BY-NC 4.0. You can find a link to the license in the page footer, but the short version is that you’re free to redistribute and adapt my writing for non-commercial purposes as long as you give proper attribution.

Book review: The Hobbit

This post was written first as a Goodreads review, with a rating of three out of five stars. The Goodreads posting can be found in the syndication links below the post.


After about four different attempts over the past few years to start reading this classic, I finally stuck with it with the deadline of an OverDrive library time limit. That kicked me into gear to actually finish it and I’m glad I did. While it is a very good story that I would definitely recommend people give a try, it is definitely not without its flaws. I found about the first half of the book to be a slog to read through, the best way I can describe it being a cross between a campfire story of legends of old and a family roadtrip comedy with an incompetent protagonist. Once Bilbo Baggins starts to show his cleverness and wit rather than surviving on pure luck and the wits of his companions it really picks up and I actually wanted to keep reading, getting a glimpse of this in Riddles in the Dark before returning to the roadtrip legend for a while. There’s also not much to differentiate most of the dwarves in the party, with only Thorin and a couple others being mentioned at all significantly throughout the journey, the others mostly relegated to being named when the entire party’s names are being given or called.

The History of a Username

This blog is on a subdomain of my site, sixy.name. My social media and messaging names are almost always “Sixthhokage1” or “Sixthhokage95”. So how did I come to be known as these names?

Well it starts in 2006. A friend got me to try RuneScape around the end of fifth grade, so I created an account using my go-to username at the time. I ended up losing the password for that account. Later that year, I had gotten into Naruto. When I created a new account to get back into RS, I tried to use the name “Sixthhokage” but found that it was already taken. I tacked a 1 at the end and a new identity was born.

For Christmas 2007 I got an Xbox 360. My Xbox Live account became the next major one to bear the name of Sixthhokage1. Years and several email account migrations later, I’d nuke the Microsoft account associated with that gamertag. I now have Sixthhokage95 as a current gamertag that I never use since I don’t play any Xbox games anymore and don’t have any games from the Windows Store.

I created a YouTube account as Sixthhokage1 in 2007 or 2008. Ended up locked out of it. So at some point in 2008 I created a new YouTube account which was the first thing I used as Sixthhokage95. I chose 95 as the numeric suffix for the obvious reason of being born in 1995. Even though it’s no longer my display name, my channel URL is still youtube.com/user/Sixthhokage95.

In 2010 I found and joined TV Tropes. I mostly lurked the wiki until I joined the roleplay We Are All Pokémon Trainers on the forum and found a community that I found comfortable in. Until this point I’d left a trail of dead accounts on forums I never really participated in, thanks to what I later found out was social anxiety. But by summer 2012 I was exploring the wider TV Tropes community and started posting in the Yack Fest section. Here I made friends with a troper named Inhopelessguy who nicknamed me Sixy which caught on. A few years later when I was purchasing a domain name I ended up deciding on sixy.name. For a while my display name on YouTube was Sixy, but that ended up with a lot of follow spam through Google+ of middle eastern and Indian pornbots.

The funny thing is that even though I’ve been using a name based on Naruto for all these years I’ve not watched the show since before Shippuden and the last thing I read was the end of the Pein arc after Shonen Jump skipped a bunch of serialization to get out more volumes, so I had no real idea what was happening.

Mastodon Embeds, Content Warnings, and Ethical Design Choices

So for about the last week I’ve been somewhat involved in a really frustrating situation in Mastodon development, which has thankfully been resolved. Let me preface this by saying that I am in no way a developer, I’m simply a user who runs their own masto instance who was frustrated enough with a change to both revert it on my server and voice my opinion on GitHub. And if it was just this one issue I wouldn’t be writing a blog post about it, but the core issue is about a pattern of behavior and a concerning attitude from the lead developer, Gargron.

For those who don’t know what the hell I’m talking about, Mastodon is an open source Twitter-like social network that is decentralized and federated. The official user’s guide explains it much better than I could, so I suggest reading the linked intro. The change in question is about the content warning system and metadata for link embeds on other platforms like Facebook, Twitter, Discord, or any other platform that pulls Open Graph metadata.

The box to compose a toot with a content warning

So the content warning, or CW, system. This allows you to choose to hide a post behind a warning and a clickthrough, and any attached media will automatically be hidden as sensitive as well (you can mark media as sensitive without a CW as well, but usually anything marked sensitive will be put behind a CW anyway).

A toot with a content warning and an attached image

Previously the metadata would cause a link in an Open Graph enabled platform, e.g. Discord, to embed like this

An embed in Discord1 with only the content warning text as the og:description tag

As of the current stable release it looks like this

An embed in Discord with the content warning text, two newlines, and the body text as the og:description tag as well as the image attachment as the og:image tag

Thankfully after a lot of back and forth, a reversion + revamp was put forth and merged, which has example images in the linked PR discussion.

This change was made almost a month before the final release of 2.3.0, during which time very few people would have actually ran into it as running from master is very much not recommended for a production instance and even the instances using the release candidates in the prerelease testing are going to be mostly mastodev adjacent. Unfortunately it also means Gargron was unprepared for it to become a sticking point of the community. The discussion on the pull request that implemented the change, in which I chimed in and subsequently followed, got a bit heated and also showcased the stubbornness that Garg is unfortunately noted for. Now I was already somewhat aware of this temperament of his and so was frustrated but not surprised. Wanna know what got me pissed off though? From the federated timeline I came to a thread about this situation in which Gargron got involved, and one of his responses was this:

Follow

@cassolotl @clar @HeckTheCistem @maloki Look, I'm not making bank on this. I think I'm slightly above German minimum wage. In the open-source scene, that's a great accomplishment. Compared to Twitter's 200 engineers, that's nothing. But it's my passion and I have fun doing it, so we get the Mastodon that we see. Don't mess with that. If you disagree with my decisions, fork, or switch to one of the existing forks. I listen to feedback. But I don't *owe* anyone to agree with it.

Wait, did that last bit say again?

I listen to feedback. But I don’t owe anyone to agree with it.

Yeah, true, you don’t owe anyone to agree with feedback, Eugen, but you sure as hell have a responsibility to not try your damndest to dismiss a criticism that isn’t from your own friends and/or others heavily involved in development until it becomes obvious that the users offering it aren’t going to back the fuck down in the face of your stubbornness. Especially since unless an instance’s sysadmin changes the localization YML files you get this (or a translation thereof) on the landing page of every single instance:

A more humane approach Learning from failures of other networks, Mastodon aims to make ethical design choices to combat the misuse of social media.

Yeah, acting dismissive about your user’s concerns about how Open Graph embeds not respecting content warnings in the interest of ~engagement~ sure is some ethical design choices right there. That’s definitely the sort of project leadership I look for.

Okay that’s enough snarky bitchiness from me, but in all seriousness if Gargron wants to talk the talk about breaking free of the shit of corporate social media, he needs to walk the fucking walk. He got lucky that his passion project for an alternative to GNU social without its technical debt happened to catch on with a good number of marginalized folks sick of the dumpster fire of Twitter and its enablement of nazis, white supremacists, and harassment in general. Now he’s built masto’s brand around its moderation tooling, robust privacy features, and yes, the content warning system.

I think he truly believes in doing better, but an unwillingness to look past his own privileged perspective leads to, well, shitstorms like this. It leads to a userbase that dreads having to bring up concerns with development. It leads to resentment among users for the guy who, while nominally only in charge of the flagship mastodon.social instance, is essentially the Benevolent Dictator for Life of the software development and if you don’t like it you can go fork yourself.2 It leads to god knows how many follower only toot threads about how fed up people are with this bullshit, and for some people to just abandon ship either back to Twitter or to other OStatus/ActivityPub projects. It’s not good for the health of either the community or the continued development and ~engagement~ of the software.


  1. These Discord screenshots are slightly modified using Chromium’s Discord’s element inspector from how they actually appear due to my own testing of modifying CW behavior in Open Graph tags
  2. (On that note the glitch-soc fork is p nice and the custom profile fields are a great feature)