emily's ramblings

MixTape: A Postmortem

MixTape is a program developed by bucketofwetsocks. According to the GitHub page, it's a Windows-only Electron app that is designed to "[build] and [play] curated mixes of Super Mario World ROM hacks." There are two modes of operation. The first allows the user to manually select and arrange levels to create a custom "playlist." The second randomly grabs and arranges levels to produce a list of levels for the user to play through. When it first released, it was opt-out, meaning all hacks were included by default. Hack creators were particularly upset about this because they hadn't been consulted about their work being used in this manner. Many considered it disrespectful to both the art and the artist, and a symptom of people getting more comfortable with commodifying art.

The program has since changed to be opt-in, which is how it should have started. Despite the program only being publicly released for less than a week before this change, the damage has been done. People are disappointed with MixTape and the team behind it. A lot of creators feel that their trust has been broken, and people following the situation don't have much respect for those responsible. What MixTape once was and had promised to be no longer exists, and it's impossible to say whether MixTape will regain the momentum it so briefly held. With this in mind, I think it's appropriate to do a postmortem of MixTape to talk about what went so wrong.

MixTape: The Idea

First and foremost, ROM hacks are art. Hack creators spend an incredible amount of time on their work. They put their blood, sweat, and tears into crafting unique and enjoyable experiences. If you look at SMWCentral, the site that is effectively the core of Super Mario World ROM hacking, you'll find an endless amount of hacks waiting to be explored. And, by the nature of ROM hacking, all of these creators are doing it because they want to make something. There is no money for the artists to make here, nor any fame to be had. Instead, they want to take the time to build and share something meaningful to them. It's a truly beautiful thing.

Like all art, hacks have been commodified. The original release of MixTape is perhaps the most potent example of this. It was not created out of respect for hack creators or their work, but rather to produce content. We don't need to speculate on this, either. On BlueSky, people like MrMightyMouse and GrandPooBear, two relatively popular Super Mario World streamers, have been open about their involvement in the development of MixTape. They have also been the strongest defenders of the tool. When people were first criticizing it, they responded in the following ways:

There seems to be an impression by the MixTape team that anyone worth talking to in the Super Mario World community is someone connected to their Twitch streams. Obviously, there are lots of reasons to not be present on Twitch. People are busy, or not interested, or simply want to do other things. Even as someone who is on Twitch, I don't tend to visit those streams because they target a very particular demographic that I am not a part of. Interestingly, this is the case for most of the opponents of MixTape. I'm not going to claim that the exclusion was deliberate, but I will say that the MixTape team didn't try very hard to get a variety of opinions on the program. The very least they could have done was make a forum post on SMWCentral, but they didn't. It's strange that they didn't, especially because I find posting a link a lot easier than starting up a stream.

This is not meant to disrespect streamers. I genuinely believe that Twitch streams and YouTube videos are also art. Spend any time browsing around either site and you're sure to find something that amazes you. People put a lot of work into their craft. For that reason, I have been trying to stop using the word "content" to describe streams and videos. Reducing art to a single simple idea that has been commodified to Hell seems kind of messed up, doesn't it? It's almost like, by doing so, you aren't respecting the artist or their work.

There's a quote by Bennet Foddy that I think fits the situation:

For years now, people have been predicting that games would soon be made out of prefabricated objects, bought in a store and assembled into a world. And for the most part that hasn't happened, because the objects in the store are trash. I don't mean that they look bad or that they're badly made, although a lot of them are -- I mean that they're trash in the way that food becomes trash as soon as you put it in a sink. Things are made to be consumed and used in a certain context, and once the moment is gone, they transform into garbage.

From this perspective, describing the purpose of MixTape as "to produce content" seems reasonable. There's no substance to it. It randomly grabs levels, puts them all into a blender, and produces mush that barely resembles what was put into it. A friend of mine, Lexie, called this "blenderization." This is a symptom of the "content culture" that has seemingly taken over as of late, where the way to win is to find something that can easily be blended up and poured out into the mouths of hungry viewers. Bonus points if it can be repeated.

Here's the thing: there isn't a correct way to enjoy art. The Bennet Foddy quote was used in his game "Getting Over It with Bennet Foddy." That very game was created almost entirely out of prefabricated objects. It clearly isn't trash, like Foddy implies it would be, and that's because he created a new artistic context for those objects. Suddenly, the objects aren't trash, but rather essential pieces to the point that he's trying to make. As a result, the game is not equivalent to what was used to create it. MixTape doesn't do this. Instead, it strips the context from each and every hack that it uses and replaces it with absolutely nothing. The result is meaningless. I think Lexie said it best:

The problem with blenderization is that you're no longer experiencing the work of art at all; what you're experiencing is a melange of pieces of the work of art that are so mangled and removed from their original context that it is prejudical to the creator to claim it is their art at all.

The pursuit of creating "good content" lends itself well to this kind of thing. When someone needs to find their next big video idea, they tend to overlook the importance of art and its context. I've done that too, and I look back on that with regret. At the very least, art must have some kind of context associated with it. I do not believe that it is disrespectful to art or artists to create derivative works. But nothing is being created here. To claim it has any association with art at all is a bastardization of art.

Does this mean that removing art from its original context is a sin? Of course not. In fact, I actually believe that the first function of MixTape, crafting your own playlists, is a great idea! You can craft your own experience and create a new artistic context for the hacks and levels to be enjoyed in. That's what true remixing is. That's why derivative works are great. I truly believe that if the MixTape team solely focused on that aspect of art instead, the conversation surrounding the program would be much different. That's what I wish MixTape was.

MixTape: The Program

There's another side to this that I think is worth talking about: the development of MixTape. Normally, I wouldn't go out of my way to discuss someone's code in-depth for a situation like this, but I think it ties into the social consequences of the program and is therefore worth talking about.

I: The Opt-Out System

One of the claims that the MixTape team made is that MixTape was opt-out first. It would respect the wishes of creators and ensure that no hacks made by an opted-out author could be used in MixTape. The problem is that, on release, this wasn't the case. It still isn't.

In order to get a list of all Super Mario World hacks, MixTape uses an API provided by KaizOFF. KaizOFF is an unrelated site that facilitates casual and competitive races for Super Mario World hacks. It's basically racetime.gg if it was AI generated and terrible (a redundant statement, I know). For reasons that I still don't understand, it hosts its own API for accessing hack metadata. It is effectively just serving a mirror of the entire catalog on SMWCentral, download links and all. SMWCentral already has a public API, but the MixTape team chose not to use it. I can only speculate as to why.

MixTape doesn't have its own server, and the MixTape team doesn't seem to have control over the KaizOFF API. So, everything must be done locally. This means that the opt-out list could only be enforced locally. This is a complicated problem to solve, but the key is that you don't have to solve it. As long as you put measures in place to make it remotely difficult to bypass the opt-out, less people will be willing to do it. The MixTape team solved this problem in an interesting way: they didn't try to. On release, it was hilariously easy to simply remove all of the users in the opt-out list. I'm willing to bet it still is, but you don't even need to do that.

Using the KaizOFF API is optional. There are other ways to source hacks for MixTape, including entirely locally. Suddenly, you control the API, meaning you can make whatever changes you want. You don't need to interact with the code of the program to bypass the opt-out, you can just provide your own files and skip the entire thing.

In addition to all of that, the opt-out list could only ever be updated with a new release of the program. So, if you decided to hang on to an old release, you never had to worry about being blocked from using specific hacks with MixTape. Of course, because this entire thing was opt-out at the start, the very first version of the program is unrestricted. I heard that the developers were planning to fix this by revoking the API key that the early versions of MixTape used, but that doesn't make a lot of sense considering the most powerful parts of the KaizOFF API require no authentication whatsoever. This also implies that MixTape shipped with an API key out in the open, which is very funny.

There's another extremely obvious flaw with the opt-out system that confirms (in my mind) that the MixTape team never cared about opt-out: the opt-out list used SMWCentral usernames instead of user IDs. Generally speaking, if you're working with user data, you want to identify users through something that never changes. In this case, you would use a user ID because those can't be changed once assigned. Usernames on SMWCentral can change, though. This means that if someone on the opt-out list changed their username, they would effectively be eliminated from the list. This is such a basic error that it's honestly hard to believe this made it in to MixTape. Believe it or not, it's still there! If you go to the current version of MixTape on GitHub and look at opt-in.json, the list is still just usernames!

The MixTape team was claiming to care about the opt-out system on launch, but they either weren't able or didn't care to properly implement the system. If there was any effort whatsoever to protect the opt-out list beyond the code minification that Vite (a frontend web build tool MixTape used) does, I would give them a pass. Unfortunately, I can't. There's just no way that I can justify this to give the benefit of the doubt.

II: Credits

If you looked at the archived version of the GitHub page linked at the top of this post, you may have noticed that one of the bullet points talks about credits. It says that there is a "per-run description + author so credits and context ride along with the mix." We've already talked about how the context does not, in fact, ride along with the mix. But what about the authors?

I honestly haven't opened MixTape before. For reasons that follow this section, I don't feel very comfortable running it on my computer. But, to be honest, I shouldn't have to. The creators of the hacks being used should be evident just from looking. The admins at SMWCentral also feel this way and now require that all people who provided assets for a hack be credited either in a text document bundled with the hack or the hack itself.

Naturally, the credits don't matter to MixTape. Extra files, including credits, are discarded when MixTape downloads a hack. There is another way, though. Many creators put a lot of effort into making custom credits levels to properly credit everyone who contributed. Surely MixTape requires you to visit the credits for a hack before you can move on to the next one, right? No! Instead of looking for a credits level that it might be able to jump to, it just loads up the vanilla credits sequence and calls it a day. Using the vanilla credits sequence is kind of rare in modern times, so the credits that often show up are just for the vanilla game. MixTape is fully capable of searching for a credits level. It already extracts level names directly from hacks for the purposes of assembling a playlist! Instead of using that ability to even attempt finding the real credits, it simply does not.

III: Closed-Source Software

Despite being distributed on GitHub, a platform that normal users famously struggle to download files from, MixTape is closed-source. Due to the distribution method, you can still easily view the source code, though it's a bit difficult to read due to the minification I mentioned earlier.

How easy it is to view the source code isn't the point, though. The point is that the source code is not easily accessible. This is, plain and simple, a bad choice. This is a program that relies on the work of ROM hackers, a group of people that celebrate the openness of their craft. One of the draws of Super Mario World hacking in particular is that almost everything is open. If there's a sprite you want to look at, you can do that. If there's a cool script that you want to learn more about, you can do that. Hell, if you want to properly remix someone else's work, you can do that too!

The fact of the matter is that, with one major exception, the entirety of the Super Mario World hacking scene is built on free and open software. Super Mario World wouldn't be what it is today without that idea backing it. The community has managed to do incredible things by sharing their work with each other and iterating on it. It just makes sense to do that, especially when the work is hacking a game loved by so many people.

So why isn't MixTape open, too? Why did the MixTape team feel the need to go against the ideas of openness and the remix culture that underpin the very idea of Super Mario World ROM hacks? There's no good answer for this that I can think of. A program that relies on the open work of other people ought to be open itself, especially one designed to blenderize that work.

IV: It's Just Bad

If you're familiar with Electron, you might have caught my jab at MixTape in the very first sentence of this writing. If you're unfamiliar, Electron is a framework that allows developers to build cross-platform applications with HTML, JavaScript, and CSS. In essence, it works by having the developer build a website and then bundles that website with an instance of Chromium, the web browser. That is what gets distributed to people.

Electron is heavily criticized by people who give a shit about computing because it's such a wasteful way to make an application. Asking users to run an entire instance of Chrome to use your application is, frankly, asinine. The performance is terrible on account of being Chrome, and the popularity of Electron means that you're probably running at least 3 instances of it on your computer right now.

The singular benefit of Electron is that, as I said before, it creates cross-platform applications. But MixTape isn't. It only runs on Windows. The single benefit of using Electron vanishes with that decision, and all that remains are downsides. With what this program does, there is no good reason for it to run exclusively on Windows. I was confused about this choice, so I decided to dig into the code to see if I could find anything. I specifically dug into an older version of the program that has since been removed, so what I point out here may or may not still exist.

I can say with confidence that this program was (and maybe still is) poorly-written. Most of MixTape's functions are cross-platform, but there are a few that aren't. One such thing that it does is spawn a non-interactive, invisible, executionpolicy bypass PowerShell window to run a script for auto-updates. Dear reader, this isn't the way. It is so "not the way" that the script didn't even work. bucketofwetsocks had to push an update after the fact to get it working correctly. I suspect the reason it didn't work is because the PowerShell script was AI generated. I can tell that it was because, at the very top of the script, there's a line that says MixTape update applier — auto-generated. Safe to delete.

Final Remarks

Many years ago, bucketofwetsocks attempted this exact thing. In many ways, MixTape is a mirror of that old project. Much of the code for MixTape is lifted from the previous attempt, and you can find references to the original name of the project. The difference is that, when people were upset when the original program launched, bucketofwetsocks decided to get rid of it entirely. If it was so poorly received before, then why would he attempt to do it again with minimal changes? People asked, and he allegedly responded by saying "if we hadn't done it, someone else would have."

bucketofwetsocks isn't a stranger to the Super Mario World community. He's been around for a long time, and he's contributed by making a couple of hacks and ASM tutorials. People know who he is, and some of his friends are devastated to learn about his involvement with this project. But I don't think that this is all his fault. He is certainly to blame, but I think that there was an external driving force: GrandPooBear.

GrandPooBear is, by far, the most vocal supporter of MixTape. He has taken credit for its creation, and he continues to insist on defending the original release. He also has money. I have personally watched GrandPooBear throw money at other Mario-related projects, and I'm confident that he did it for this as well. With this knowledge, what bucketofwetsocks said makes a lot of sense; someone else certainly would have taken the money. But I don't know this for sure, and that's not really the point.

MixTape is a symptom of a larger problem. The uncomfortable truth is that there are some pernicious attitudes within our community that we need to deal with. For too long, people have seen Super Mario World hacks not as art, but as an opportunity. Certain streamers have historically taken hacks and, with their community, beaten down on both the art and the artist. A common sentiment has been that, if a big streamer gets their hands on your hack, you shouldn't take whatever is going to happen next personally

If MixTape had been done correctly and made by different people with different motivations, would things be different? There are genuinely cool ideas here that, in a lot of ways, embody remix culture. But, even if it had been done right, I don't think it would have been MixTape's time. There is a long way to go before people, especially streamers and video creators, recognize hacks for what they are: art. This isn't just about Super Mario World, either. Hacking and fangame communities for many other games suffer the same issues.

I didn't write this to target or hurt anyone. I wrote this because I was struggling to understand why I felt the way that I did about MixTape. This post is a reflection of my own thoughts as I explored the parts of MixTape that upset me and that I liked. I hope that this can help other people understand how they feel about it, too. At the end of all of this, one thing is for certain: we, as a community, need to consider what ROM hacking means to us, what being a community even means, and how we can move forward living in the uncomfortable realities that this situation has revealed. Let's keep fighting for each other; we all deserve that much.