-
Thoughts on Ace Attorney — the original game trilogy and anime series
Hey! Spoilers ahead! This is your only warning! If you have not watched the anime or played the original three games, you are going to learn things you might not want to know yet! I ended up going into a synopsis over an important aspect of the trilogy’s backstory and that will 100% spoil things for you.
Sometime around Christmas, the Phoenix Wright Ace Attorney series was on sale. On a whim I opted to buy it with zero expectation that I’d personally enjoy playing it, but I figured that at CA$20, even a single play through of one or two cases would be its money’s worth.

I made a lot of remarks about how painful aspects of the game were and yet I still wanted more.
Three months later and 100+ hours of streaming the trilogy on Twitch — with one stream lasting nearly 13-hours for a single case — I have labeled myself as a “fangirl” of this genre.
I was also determined to finish this game before Frost Fatales, as I intended to binge watch the anime series during my travel to and from the event — of both which the event and the watching were successful.
So now I have thoughts!
Why did I become so engrossed?
Prior to working in security engineering, I worked in digital forensics incident response (DFIR), which taught me a lot about evidence handling, chain of custody, and so forth.
Thanks to a lawyer friend, I was given a reality check on how civil and criminal matters in the American context do differ greatly (my focus was primarily in the former), but it never stopped me from looking at everything I did from the point of view of my former work.
Aside from the completely bizarre way a lawyer must conduct their own investigation and how evidence is presented in court with it sometimes being modified by the prosecution on the fly, the dialogue and storytelling is paced fairly well and throughout the games you discover how incidents from early on matter in the end.
I think the best example of how it all ties together is in the third game, Phoenix Wright: Ace Attorney — Trials and Tribulations, you start a case as Mia Fey, Phoenix’s mentor who an integral and supportive character in the series despite her being deceased. Phoenix himself (who is not yet a lawyer as it is set five year in the past) is accused of the murder of a pharmacy student who was conveniently the ex-boyfriend of Phoenix’s girlfriend.
This story, entitled Turnabout Beginnings, and the outcome of the case is extremely important to the final game despite being just the tutorial. In the first two games, the tutorial is not as important to the overarching story (the second game’s tutorial is important to the third game weirdly), but here it completely cements it as pivotal to how the whole game will turn out.
My field of work and the intense story writing is what really drew me in overall. It’s rather impressive that a game that frustrates me due to its lack of due process and terrifying evidence handling, that it pulls me in due to its excellent story writing and character development.
The prosecutors Miles Edgeworth and Fransiska von Karma and to a certain extent, Larry Butz are great characters.
I hate the circus
And staying on frustrations, the second game, Phoenix Wright: Ace Attorney — Justice for All, has one of the most frustrating stories and yet the whole game is important to play. The first game could and did stand on its own, but when it was rereleased for the Nintendo DS (originally it was on the Game Boy Advance), an additional case was added to help tie it all together.
In this game’s third story, Turnabout Big Top, we are introduced to the Berry Big Circus (get it?) and its David Bowie-esque magician, Maximillion Galactica who has a personality so big that it literally swallows up the rest of the circus cast. As per usual, he has been accused of murder of his boss and circus ringleader, Russell Berry.

Anyone who has played the third case of the second game knows the circus.
The problems with this case are vast and are hard to pin down, so let’s start with its awful music. Despite playing the HD release on the Nintendo Switch, the music pierced into my ears, literally having me state on stream that I wished that my hearing impairment were worse than it already is.
Referencing back to the bonus case added to the first game, it too had music I could not stand, but it never inflicted the horrible pain that this story gave.
But then we have the characters and boy did I ever just not like any of them.
We have Regina, the ringleader’s daughter and tamer. She’s 16-years old and is completely naive to her father’s death, suggesting that he is not gone but simply a star in the night’s sky.
Her behaviour implies that she has little education and is completely enamoured with the attention she gets. How she handles the threat against her life and her approach to practical jokes suggests how oblivious she is to the happenings around her. She consistently demonstrated throughout the case an inability to perform any level of critical thinking. She deserves so much better.
There’s a ventriloquist, Benjamin, who cannot speak coherently without the aide of his puppet, Trilo. You cannot get anything out of Ben without having to deal with Trilo’s behaviour and it becomes infuriating.
To make matters worse, Ben, who is 31, has an engagement ring for Regina, who is nearly half his age. It’s just outright gross and I was really hoping that he was the murderer, but then the game managed to find a worse outcome.
We have the accused, Max and is aged 22, who is just obnoxious and honestly probably the least frustrating because despite his big ego, you learn that he has a facade up to hide the fact he is from a lower class. He too wants to form a romantic relationship with Regina — please stop.
His redeeming factor is that while he has disputes with the rest of the cast, he does want what is best for the circus as a whole.
Then there’s Moe, a late-30s, divorced clown who ends up being the most reasonable character, but his jokes and puns are frustrating. He along with the previous led me to state that despite my prison abolishionism stance, I wanted everyone jailed because it was the best overall option.
And finally the murderer and boy did I ever hate this reveal.
After the first part of the trial, we return to investigate at the circus and we’re introduced to Acro, who is a former acrobat (get it?) and is presently confined to a wheelchair because of an injury. The paralysis-inducing injury was caused by him intervening in an attack on his younger brother by a lion.
We learn that the lion had injured Acro’s brother, Bat (ugh?), leaving him in a coma. The lion was then shot by Russell. It was revealed that Regina had as a joke gifted Bat a handkerchief laced with pepper, which resulted in the lion sneezing as Bat playfully placed his head in the animal’s mouth to impress the girl (also Bat is 22) all the while wearing the gift he had just received.

This case had me audibly complaining about every character presented.
The coma Bat was in and his own paralysis left Acro extremely bitter towards Regina, who he intended to seek revenge on.
Of course, when Acro decided to take out his revenge on Regina, the letter he had slipped into her clothes as she came to deliver him food never actually made it to her. She did find it, but her naivety led her to just stick it up in the cafeteria for someone else to find. This caused her father to discover it and when he followed the instructions, he died from the dropping of a jade stone or copper lifesize bust resembling Max atop of his head.
Then we get into the ableism nonsense. The bust made its way to Acro’s room via his monkey, Money. This room is on the second floor of the circus dormitories, which is screwed up because this means that Acro is stuck up there with no ability to get down. Downstairs from him is Moe, which then led me to wonder why the hell he didn’t offer to swap room — perhaps this was offered and one’s proudness was in the way, but it’s still messed up.
Of course, for story purposes, Acro had the bust tied to a rope from the second floor and dropped it atop of the ringleader, who he presumed to be Regina. He had no clue that he was murdering his boss, who he claimed to be a father figure in his life, despite the fact that the man kept him upstairs for months.
The game decides to dial this up further: the bust is missing. The prosecution and Phoenix himself cannot find the thing. Where is it? How could it go missing? It’s so massive.
And this is the answer: Acro is called to be a witness and you’re compelled to call him out on the bust. Phoenix proudly announces that the bust is in the courtroom and is is literally contained within Acro’s wheelchair, hidden beneath a blanket covering his legs. Acro is revealed to be the murderer and you’re just left completely angry that this is where the game went.
Finally, it is revealed that Moe is the most reasonable of the cast, but it is hard to recognize this because you spent the whole time angry with everyone either because of the game’s ableism, the negligence toward’s Regina’s intellectual development, or the absurd number of older men being romantically interested in a teenaged girl.
My friend, Aura pointed out early on that she liked Moe the most due to his reasonable-ness. While I agree with her wholeheartedly, this case is engrained my mind negatively for so many reasons and consequently became a low point.
Kurain village, mysticism, and the Feys
This by far is what redeems Justice for All and is what really drives what happens in the second and third game. I’m going to recount what happens so I am sorry for this part being long. The story very much cemented my thoughts and feelings on all three games.
Mia Fey is introduced to us in the first game, but she dies in the second story, Turnabout Sisters, who is found murdered in her office first by her sister, Maya, and then by Phoenix himself. Maya is then accused of murder because she was first to the scene.
Oddly, this case and the handling of electronic data was what started to really draw me in because chain of custody definitely is not a strong suit of these games, but I digress.
In this case, we learn of the Kurain channelling method. This permits Maya to channel her sister, Mia who then assists Phoenix with helping reveal the murderer and win the case for Maya. Mia then tells Phoenix that he should watch over her sister, who then plays a role in all the games, channeling Mia numerous times.
She does not appear in the bonus story, Rise from the Ashes, as she had returned back to her home village at the end of the previous story — hence why the story exists to tie things together.
Where it really starts to matter with the Fey family is when we’re introduced to Maya’s aunt, Morgan, and her 8-year old cousin, Pearl in the second game’s second story, Reunion and Turnabout. This story discusses the abilities of the Fey family to channel the deceased into the real world, a skill that both Maya and most importantly for this story, Pearl possess.
Maya is accused of murder because she supposedly channels someone who was killed due to the actions of her client, who himself was found dead. The story reveals the internal politics of the Fey family, as Maya is from the main branch and as a result is the one to inherit the leadership of the Kurain method as her mother has been missing for long enough.
Pearl is important to this overarching story and also provides us with a game mechanic that while I am not fond of, becomes rather important for progressing through. You’re given a ‘magatama’, which is a special mystical stone you can present as a way to break through someone’s bluffs or lies with evidence to reveal the truth and progress the story — the game gives a visual clue to use the stone through the appearance of “psyche locks”.
Since Maya has been once again accused of murder, you presume that you’ve lost Mia but nope, it turns out that Pearl herself is able to channel too and you work with Mia this way. Pearl’s abilities matching that of Maya is what is driving the politics around the village and Fey family, which becomes extremely important through game 2 and 3.
One thing I didn’t mention about Maya or Pearl channeling Mia is that when they do so, they also channel the appearance of whoever it is. This means that Mia will appear in Maya or Pearl’s clothing, but also ages the body in a way that while with Maya is not unnerving. It becomes extremely so with Pearl since she’s instantly becoming a 27-year old woman.
It’s less troubling to me with Maya, who is 17, but Pearl is 8 so yeah. At least Phoenix always saw Mia as a mentor and nothing more, but still. What we learn in the third game provides some level of comfort here.
In any event, it is revealed that Morgan helped set up the murder through the help of someone seeking revenge over an unrelated matter. It is revealed that Maya never channeled the person the client wanted because the person who he thought was dead wasn’t!
She actually faked her death in a car accident with her sister being the casualty. The injuries endured required facial reconstruction surgery and she used that as an opportunity to take on her sister’s identity right down to her physical appearance. When this is revealed, it’s a fun plot twist, but it results in Maya’s acquittal and Morgan being placed in prison due to her participation in the crime.
This story becomes important and the game makes it apparent at the end of the case, but we don’t come back to the topic until the third game, which opens up with the aforementioned Turnabout Memories, which is where Phoenix and Mia meet. We are introduced to Phoenix’s ex-girlfriend, Dhalia Hawthorne, who is then revealed to be the murderer in this case.
Phoenix reveals his desire to become a lawyer, but is adamant about the person Dhalia was to him and the sort of person she is, giving the impression that he is naive about the people around him. With this in mind, Dahlia becomes important despite being dead by the time we get to the last two cases of the third game.
The second last case, Turnabout Beginnings involves Dahlia, her sister, Valerie; and her “tutor”, Terry — who seems to be modelled on a certain John Steinbeck character — in a fake kidnapping plot resulting in Terry being accused of murder of Valerie, who herself is a police officer.
So many things are revealed, but importantly it shows that Dhalia has been engaged in shenanigans since she was 14-years old, including seducing a 25-year old “tutor” into being an accessory to everything.
While as unnerving as we saw in Turnabout Big Top, it didn’t force matter more than suggestion and instead we witnessed Terry commit suicide on the stand using a poison given to him from Dhalia. This poison becomes important to the backstory behind the game’s main prosecutor, Godot.
The case is left with Dahlia under suspicion, but Terry is dead and the prosecution is fine with remaining with him accused. We’ve dealt with Dahlia twice now and now we’re going into the final case, Bridge to the Turnabout.
One of the things about the Kurain channeling method and who is to lead it is that May and Mia’s mother is still leader despite having been missing for almost two decades — the reasons for why are revealed in the first game’s fourth story, Turnabout Goodbyes. Time has passed and it is now required for Maya to begin the process to assume leadership
We travel to a temple and meet new characters including Elise Deauxnim, who is this up and coming children’s story author and is Pearl is absolutely enamoured with. Also, we meet some other characters, including someone named Iris who looks the same as Dahlia with just a different hair colour. She doesn’t have the same cold demeanour though?
This of course had me on edge because she was found guilty of murder and the game makes it clear that execution soon follows. Has Dahlia escaped death row and has escaped from prison? What is going on? I was pretty terrified of where things were going because this was the last case and we were getting some extreme concentrations of coincidences and occurrences simultaneously.
And then Elise is suddenly found murdered! Then we discover that the rope bridge to the building where Maya is has somehow caught fire (and oh boy it is the same bridge as the previous story), Pearl is missing, and now Phoenix has been swept away by a fast moving current below the bridge because he wanted to rescue Maya.

I was so relieved when there was a murder. It’s incredibly messed up for me to type that statement.
The breaking of tension here was incredible and while we are fortunate to learn that Phoenix has been rescued and is alright, his arch-rival and long-time friend, Edgeworth has been tasked to defend Iris at Phoenix’s request. It is confusing because isn’t Iris just Dahlia?
The part of Edgeworth playing defence attorney as opposed to prosecutor is a strange but enjoyable change and he discovers what it is like to play the role Wright has had for so long. We do eventually learn that Dahlia was in fact executed just recently, so who the hell is Iris?
We endure a trial where Edgeworth and his adopted sister and fellow prosecutor, von Karma face off, with the day ending with no verdict, so now we’re to move forward and figure out what has happened to everyone.
The bridge has been given a temporary fix and we run into Pearl (phew) and strangely Godot, who did not show up for the first portion of the trial but will for the second because Phoenix is now out of hospital. However, where is Maya? We did briefly lose Iris, but now she’s back and we’re trying to unlock a chamber that suddenly went from having a single lock to multiples. Why?
Eventually we perform some investigations and at some point it is revealed that Elise is infact Misty Fey, Maya and Mia’s mother and Morgan’s sister. Oh yeah. Morgan is still around and it seems that Pearl has been visiting her in prison. We also learn that Dahlia has been visiting Morgan in prison. Oh yeah. We also learn that Dahlia is Morgan’s daughter. Oh yeah. We also learn that Iris is Dahlia’s twin sister, which means that we have our answer to who the hell Iris is — phew.
This is of course a trope that gets overplayed, but with the whole spirit channeling we’ve dealt with for the past three games, it actually isn’t that bad here and in my opinion works well.
So who murdered Misty? Larry’s art (oh yeah he’s an artist now and has assumed the last name “Deauxnim”) suggests that she flew across the bridge while it was ablaze — but that is impossible, right? How did Iris do this if she was found on the other side and the bridge was on fire?
This is where the big reveal comes in: we’re in court and we’re trying to figure out Iris’ innocence and Phoenix is now facing off against Godot. It finally dawns upon him: Maya is not missing and the murderer is in court.

“I have been saying for the past three hours that Dahlia is not dead” (hours pass) “well, okay, this makes more sense now, but I am still sort of right!!!”
Where is Maya? Simple: she is right here and is channeling Dahlia. But why would she do that? Does that mean that Maya killed her own mother? Well, it is pointed out that Maya reached out to her sister in a panic and Mia suggested she channel Dahlia.
The spirits are not aware of who they’re being channeled by (unless a clue is left in the physical world such as Maya did by leaving a note asking for Mia’s help) and has assumed that Maya was so distraught from having killed her mother that she committed suicide that it was in fact Pearl channeling her since it was what was arranged between her and Morgan.
But surprise for Dahlia! Mia is right next to Phoenix in court and she is being channeled by her step-sister, Pearl. This leaves Dahlia confused which then reveals that it is Maya! Dahlia disappears and now we’re left with Maya having to testify to what happened.
It turns out that Godot had killed Misty in an attempt to save Maya. Misty on purpose channeled Dahlia and was working with Godot in order to protect Maya in the first place. Dahlia had no clue to what had happened.
Godot is then revealed to be Diego Armando, a defence lawyer and former love interest of Mia who held a grudge against Wright for not stopping her being murdered.
Iris is found to just be the receiver of the body of Misty and wasn’t actually the murderer — at worst she desecrated a body, which is oddly similar to the game 2 story, Farewell, My Turnabout. Iris would blindly follow her sister’s wishes and did so because she felt that she had to.
It’s also revealed that Diego was poisoned by Dahlia in the same way that Terry had, but managed to survive albeit with a five-year long coma and severe damage to his nervous system. This resulted in him requiring the use of goggles to aide in his vision. Because of their glowing red in the dark, it resulted in a clue Maya gave in her testimony.
Maya is saved, Dahlia is eternally damned to know she failed to do what she sought out to do, and Godot consumed four dozen cups of coffee in two days.
Also the Dahlia Phoenix thought he was dating was actually Iris and Iris was in fact love with Phoenix, so there’s that reveal.
The anime tries so hard
The thing about the above is that what I described is really just the surface of the whole game’s story mechanics and imagination. I honestly am not giving it enough justice in how I describe the events as I haven’t talked about the backstory of Miles Edgeworth and Larry Butz in any detail. Their relationship with Phoenix is rather interesting and that is where I think the anime is a bit stronger than the game despite overall being weaker.
The Ace Attorney anime series largely sticks to the stories from the original trilogy for the most part save for excluding the bonus case from the first game, the addition of some backstory (of which I feel is important and missing from the game), a case on a train that wasn’t in the triology, and that the stories are a bit out of order — I don’t think it is consequential however.

The circus is more bearable in the anime than in the game. On purpose, I am only showing Phoenix and Maya because they’re talking to Moe and I don’t want to see Moe again.
Additionally, the pacing in the anime does not match the game, which I feel took a way a bit of the magic that we got in all the games.
There were a few changes that I felt were either not the best or were for the best. I believe that they were done to fix some pacing or to permit the reordering of stories.
For example, Lotta Hart shows up in the first two games as a pivotal character, but then Larry takes her place as photog during Reunion and Turnabout, which I think worked because one of my complaints of the second game was a lack of him — yes, I did miss the guy.
Maggey Byrde from game 2’s first case, The Lost Turnabout should have been left in sequence in order to provide pacing for the follow up case from game 3’s, Recipe for a Turnabout. Why I found this disjointing is simply because game 2’s last case, Farewell, My Turnabout was made the first season’s finale.
However, the anime really shines on the backstory behind Larry, Miles, and Phoenix. Phoenix credits his being a defence attorney because of Edgeworth coming to his aide and while the game spends some time giving details on their backstory, they really rope it in better in the TV series. It really is what makes the anime compelling to watch even if the pacing is out of whack.
What is next?
If you want to see all of my play-throughs of the trilogy, they’re up on my YouTube. They were some of my best streams I feel and they’re also the first that have gotten a lot of people watching recordings of.
Starting tomorrow, Tuesday, March 15th at 5 PM PT, I’ll be live on Twitch streaming Great Ace Attorney Adventures, which I guess is a prequel of sorts. I’m super excited and I hope you all will come watch.
-
Adventures with an 11,000 kilometre-long Game Boy Advance link
One of the things I lamented a lot growing up was an inability to find anyone else to do Game Boy link cable games with. I had a few games which would work with the setup, but very few of my friends had Game Boys themselves and when my younger brother received a Game Boy Pocket (I had the black-coloured original), it used a different cable all together, making it impossible for us to play Pokémon together.
My Game Boy was always on its own little island, never to see any real interaction any other device. It wasn’t until I was much older that I would have the ability to hook it up with other Game Boys since I now own a Game Boy Advance (GBA), Game Boy Player, and Super Game Boy 2.
But everything is online now and starting with the handheld’s successor, the Nintendo DS: it’s also wireless. There are a lot of gems for the Game Boy out there which relied on this cable that have since become largely forgotten or at least cannot have the full extent of their capabilities realized.
The GameCube and Game Boy Advance
One of the features of the GameCube was the ability to attach to a GBA via a controller port. This wasn’t meant to output from a handheld to a TV necessarily (such as with the Super Game Boy on the Super Nintendo), but instead to act as an alternate controller or to transfer content between. This same cable also works on Wii consoles with the appropriate controller ports.

My rather beat-up GameCube attached to a Game Boy Advance
One other benefit of this cable is when using the Game Boy Player, you can use the GBA as a controller instead of the awkwardly-shaped one provided with the console. And if you want to go further, you can also attach the cable to another GameCube if you want to make use of the Player on there instead.

As weird as this looks, it’s entirely possible to use your Wii and GameCube this way.

Or you can go all “chaotic evil” and use this configuration, which too works, but not for the purposes of I am discussing here — I just thought it was neat to share! Two friends of mine gave me a SGB2 after returning from Japan and it’s a far better device than the original Super Game Boy.
One of the features of the GBA is the ability to load software on it without having to insert a cartridge. This made the handheld rather powerful as a game loaded on a GameCube could load content on to a handheld without additional copies of software.
This was taken advantage of games such as PacMan Vs., Final Fantasy Crystal Chronicles, and importantly for this article, The Legend of Zelda: Four Swords Adventure. All of these games required the use of a GBA to be attached for multiplayer action and acted a lot like what you’d see in some Wii U games.
However, this required you to have multiple GBA handhelds, the cables themselves (sold separately), and the appropriate copy of the GameCube game.
A ridiculous dream
One of the consequences of the ongoing pandemic is the inability to not only safely play some games in the comfort of our own homes, but to travel to see each other when we have shared interests. I’ve been wanting to play one of the aforementioned games with a few friends, but safety is important.
So on and off I’ve been thinking about just playing these games over the Internet. It was more or less an idle thought in 2020, but then in early 2021, someone released an adapter which allowed you to make use of a Raspberry Pi Pico to allow a desktop computer to interface with a link cable. I quickly ordered one and assembled it.

No. This doesn’t work. Yes. That is my Game Boy from childhood.
There’s now no reason that physically a GameCube couldn’t attach to the Internet if I had at least three of these USB adapters attached to the console with three of those appropriate link cables, and then three other people with GBAs with the same adapters attached to their PCs.
And that is where the problems started: it required everyone to have the hardware. Unfortunately, that wasn’t going to be the only issue.
The adapter itself was intended purely to trade Pokémon, which itself should work even with the latency the Internet creates. It was designed around the idea that it should be fine for pure Game Boy to Game Boy connectivity, which is forgiving due to how the protocol is supposed to work.
Since the link protocol is synchronous and bits are sent and received simultaneously, that means the master device requires the slave to send its response at a rate equal to the clock speed. In non-Game Boy Color mode, the master Game Boy supplies an 8KHz clock (data transfer speed of 1KB/s). This means that there is only a ~120μs window to respond! The Game Boy Color can operate at even higher speeds. No internet connection could possibly satisfy this latency requirement. However, the slave device has no such constraints. It just responds when it receives data!
Unfortunately, it doesn’t appear that this is the case with the GBA. Based on what I am reading in some excellent documentation, the clock rate is even tighter with its tolerances (256 KHz to 2 MHz for the GBA as opposed to the original Game Boy’s 8 KHz). As a result, the hardware is unlikely to accept being a GameCube controller once you are of significant distance, which in the GBA’s case is more than a few metres.
But maybe the hardware being a problem is a non-issue. What if we just scrapped the hardware idea and do this using software instead?
Luck would have it that a few months after the USB adapter was released, the team behind the GameCube (and Wii) emulator, Dolphin announced a new feature: Game Boy Advance netplay.
This was no small feat for the team, but they’re also known for being rather meticulous and talented with their software. It wasn’t fool-proof and was rife with problems as evident from this excerpt from their blog:
These games in particular loved to spam tons of commands, sometimes sending over 200 commands a frame. This exposed a rather serious flaw in the TCP GBA protocol. Namely, they could get tripped up if they received a command while they were still emulating forward to catch up to the point from the previous command.
When I casually brought up in the fall of that year that I wanted to do this, someone linked the above blog piece, which then led to some organization.
Getting a crew together
Eventually my friends, authorblues, tinahacks, Aetyate, and I got together to go over playing this game online. We kept testing brief as we wanted to play the chosen game mostly obscured from us aside from “does it work”.
Once we were assured, we set up a night to play and thus The Legend of Zelda: Four Swords Adventures was being played on Twitch with all four Game Boy Advance displays on stream alongside the GameCube game itself.

You have to go back and forth between the GameCube screen and the Game Boy Advance you’re playing on in order to complete this game in multiplayer. In single player mode, this is not required.
While Aetyate and authorblues are in the eastern United States, tinahacks herself is in Finland. With my being in Vancouver, we effectively had two 4,000 KM (2,500 mi) connections and an 11,000 KM (6,800 mi) one going to my PC, playing a game which originally used a two metre (6 ft) cable itself — these distances are approximations and not based on the actual connections between us.
A single button press would find itself travelling 15,000 KM (9,300 mi) one-way, meaning that we’re approaching at least 3/4ths of the circumference of the whole planet considering the nature of of both TCP and the link cable protocols. The emulator was required to do this in order to keep everything in sync and consequently we had to endure somewhere of a 1/5th of a second delay on our individual inputs just to make it manageable.
But it was possible and we were playing it.

Two people in the eastern United States, one in northern Europe, and myself in Western Canada were about to do something that would have been seen as absurd when the game initially came out
Reducing the latency was something I had considered. I looked at options for acquiring a virtual machine with a GPU located somewhere in eastern North America close to fibre links across the Atlantic to Europe, but the costs for such systems have become quite expensive.
For example, one large cloud computing service was quoting me US$800 for a single month’s use of a machine meeting these requirements. Even with a discount I had available plus US$450 in credits I had with them, it just didn’t seem worth it.

One thing we learnt quick to do was test our controllers by using the battle mode within the game just to make sure that nothing found itself remapped.
This was something another streamer had done in order to host fighting games online and had a great deal of success, but we didn’t feel that the cost was worth it for what we were playing. Four Swords Adventure is an action role playing game and with two streams of this game under our belt, we were feeling that latency would not hinder us too much.
Or so we thought.
When the lag caught up with us
The latency in Four Swords Adventures was largely manageable for us and often was comical. In fact, the latency was the least of our concerns for the most part as we had other issues to deal with.
During one of our streams, tinahacks’ copy of Dolphin suddenly ran into problems and started to spew all sorts of errors on her computer. Fortunately, we were not too far past the last save point so we all opted to just restart Dolphin and carry on.

When the game broke, the stream broke.
On average, I was seeing about 60–80 ms of latency between Aetyate and I, 110–130 ms for authorblues, and unsurprisingly, 180–220 ms for tinahacks.
This is where the whole 1/5th of a second from earlier comes from. We were restricted by the laws of physics to what options we had available.
Dolphin includes an adjustable buffer setting in its netplay feature and we can adjust it based on what feels right. I kept it at ‘20’ the whole time as reducing it any further started to introduce audio choppiness and that is just not good “stream content”. It was fine for the first two streams, but towards the middle of our third night of playing the game, it reared its ugly head.
The game wanted us to walk in-step to get to the other side and failing to do so would result in us having to circle back to where we began on the screen.

Walking into this square without care will lead to you falling into a pit and having to come around back. You can see Aetyate falling into a pit on the bottom-right with myself and authorblues right — tinahacks is presently dashing across on the far right.
Typically if you run across a pit in a Zelda game, you can use your “Pegasus Boots” item to quickly dart across large gaps. However, the game developers placed what appears to be potato-pineapple hybrids in the way so if you were to dash across, you’d collide with them and then fall down the pit.
The game requires you to walk parallel to each other in formation in order to keep the platform balanced and then upon approaching the blocked items, simultaneously pull them off of the ground and then toss them. If you can pull off the second part successfully, then the pit is resolved so all we need to worry about is just getting at least one of us across.
With the current buffer settings, we probably made a dozen and a half if not more attempts. It was starting to look dire as the input latency combined with the latency that a Discord audio call produces made it impossible for us to just get the timing down right. It was beginning to look like this might be the end of this fun experiment until we tried one idea.
Let’s just make the buffer not exist and play the game frame-by-frame.
You absolutely should watch the video in this tweet to understand how everything went because while we were successful, someone decided to be a “bother” once it was known that we made it.
Each frame we progressed was progress in itself and when we made it to the other side, almost all of us managed to remember to pick up the object on the other end — I inadvertently hit my sword button instead (oops).
What proceeded was pure comedy because once one of us successfully got over, another went and attempted to sabotage everything because it was possible to get away with that now and I found myself and that saboteur at the bottom of the pit.
However, this was no longer a problem as now the boots I had put on earlier were now possible as an option across this pit.

At least two of us were on the other side despite someone’s best efforts.
This wasn’t the only obvious latency problem we had to contend with as a prior boss battle during this stream was proving difficult due to a need to time certain actions, but this was the first time we had to adjust the emulation in order to actually make any meaningful progress.
What’s next?
We have a few more streams of this game left with plans for this upcoming Sunday and Tuesday (February 6 and 8, 2022), with the second day being a hopeful completion of what has been a rather fun experience. This will be on authorblues’ Twitch channel.
If you’re interested in watching the past broadcasts, you can view the VODs on Twitch here (I will do my best to update this with the other streams once we are done):
After completing our misadventures, we intend to play Final Fantasy Crystal Chronicles, which is another game I have never played.
This is likely to be after the upcoming Frost Fatales 2022, an all-women speedrunning marathon I contribute my spare time to. I hope you’ll check out as we’re raising money for Malala Fund and lots of talented women will show how fast they can play games!
-
More hacking on automating Wordle
Just a warning: if you are playing Wordle and don’t want any hints, this is not the Medium entry for you. Also, I am not a mathematician or statistician, so everything is just based on my knowledge of cryptanalysis and nothing more.
One other thing to note is that the word list I am working with is not Wordle’s as I intentionally wanted to avoid looking at its source code.
Okay. So I had one remaining question from my last entry on Wordle: what is the most efficient starting word overall?
“Cares” has a word score of 967.4, whereas “audio” gets 288.4 and “ports” has 796.6. The point of the game is to produce an answer in as few steps as possible and while you will knock off a lot of vowels and consonants with those two, you are likely reducing the chances of answering in the fewest attempts.
My choice of word also includes the letter “e”, which is the most common letter used in the English language. On average, you should see that letter appear about 10–13% of the time, with the letter “a” being about 7–9%, and “s” being 6–9%.
You can also order it as “scare” or “races” too if you desire, but I believe that with “s” at the end and putting “r” in the middle, you cover all initial possibilities quite effectively here.
I did not like what I wrote here, but at the time I didn’t really run numbers on outcomes. However, I was working on this because you cannot really automate Wordle without a good starting word.
Methodology
Using the same logic from before, the process to find the winning word was fairly simple.
For each starting word, we then ran through each possible five letter word other than itself. It would run each guess against an implementation of Wordle in my own code with the same hints and correct guesses. Once it got to an answer, it would then record all attempts into a set and then move on to the next word.

The word “bases” was guessed with a starting word of “caves” and made five other guesses before coming to an eventual answer. This obviously would have failed if I used it against Wordle.
Unlike Wordle, there was no guess limit as I wanted to know how many attempts it would take using the methodology I did before where I came up with a list based on efficiency. So the first word based on possibilities made by the hints and correct letter guesses available from the list was the word chosen.
There are flaws with this list sorting as discussed on Twitter, but I wanted to stick to my current methodology, so we’ll proceed forward.
The worst words
Defining the worst word can be achieved one of two ways. We can either look for a group of words or a single word that has the most guess attempts or we can look at them on average.
A minimum of the number of guesses is quite simple: one if you’re lucky, but if the word doesn’t match, then two. Guessing what the largest number of guesses will be took a little bit of magic.
The words that managed to hit a the maximum-seen attempts of 14 were: “agile”, “anile”, “dells”, “duels”, “dulls”, “dully”, “exile”, “gaily”, “guile”, “gulls”, “gully”, “jails”, “jello”, “jells”, “jelly”, “jinns”, “jolly”, “keels”, “kelly”, “lolls”, “lolly”, “lulls”, “nails”, “ninny”, “nulls”, “quell”, “rails”, “rials”, “villa”, “ville”, “villi”, “yella”, “yells”, and “yield”. If you are to notice a pattern here, almost all of them have the letter ‘l’ in them, but this isn’t really the reason why they performed badly.
Word scores are all over the place with these words, which leads me to believe that it is not necessarily indicative of a good start. For example, “quells” is amongst that list and had a score of 307.4, but then “rails” received 768.6. The average score for all of the words was 531.1, so I’m not confident all that much in using that as a metric for a good starting word.
So then what about averages? This gives us a better picture because Wordle limits us to six guesses. I would suggest if a word has a minimum average of 4 or higher that it should not be used at the start.
The worst performing word had an average of 4.26 attempts, which was “jujus”. This was followed by “wheee” at 4.23, and “yukky” at 4.21. There were three tied for 4.2, and they were “vexes”, “sexes”, and “esses”.
The word score “jujus” was 506.6, but interestingly, “sexes” received 888.6.
Is there a guaranteed winner?
The short answer is: no.
All words with this methodology ranged from 8 to 14 maximum attempts. No single word went below 8 attempts, meaning there are starting words which will lead to failure.
There is a silver-lining, the number of words with the smallest maximum is only slightly larger than the number of words with the largest maximum.
There are 1,764 words of which had 12 maximum attempts, 2,085 with 11, 984 with 10, and 411 with 9. However, with 8, there are only 39 words, and all of them might justifiably be the best candidates.
The words that performed the best were “blest”, “deism”, “doest”, “durst”, “feist”, “heist”, “least”, “liest”, “merse”, “midst”, “obese”, “pseud”, “sebum”, “sedan”, “sedge”, “sedgy”, “sedum”, “seize”, “sepia”, “serge”, “serif”, “serum”, “sheaf”, “sheik”, “sherd”, “siege”, “sieve”, “skein”, “skirt”, “slept”, “speck”, “spend”, “sperm”, “steal”, “suede”, “swell”, “swift”, “welsh”, and “wrist”.

“Obese” has a word score of 277.8 and “pseud” is 281.6.
Going back to word scores, we arrive upon something curious: the range of scores is between 277.8 and 526, with the average being 398.4. Perhaps the way to look at the word score is not at whether it is strong at the start, but instead if it eliminates all of the least likely? This would suggest that words such as “obese” or “pseud” could be good starting candidates.
Could we find a most-likely?
This is where I want to deviate: a maximum does not imply that it is the worst choice. And in this case, I am willing to believe this because I did find something amongst all of the words that allows me to suggest that there is either a flaw in my methodology or I am looking at this all wrong.
The words “estop”, “epsom”, and “serum” had an average attempt count of 2.74, 2.77, and 2.79 each respectively. When I looked at their word scores, “estop” had 160.4, “epsom” had 165.8, and “serum” had 418.
I decided to look at all words of which were lower than 2.9, and within the the 54 words, the minimum score was 106.6 and the maximum was 496, with an average of 336.3. I think I know where the word score’s usefulness may lie: it’s better to start with a lower than a higher one.
When I spoke about maximums earlier, “estop” found itself with a maximum of 9 attempts. In fact, “serum”, which had a slightly higher average than “estop” found itself with a maximum of 8 — “epsom” received 9.
But this is still an incorrect approach.
We’re looking at the average and what I’d like to know is what has the highest percentage of wins within the limitations imposed by the game. We have six guesses, so what word is best suited on average to produce an outcome.
With these parameters in mind, we can then use the following methodology: which word is most likely to get a guess correct within those six attempts and then not consider the steps beyond that point since they’re not indicative of what would be considered a success.
Of the 5,756 words tested, one word managed to achieve a win in three moves 69.4% of the time: “verso”. It also achieved a win in two moves 10.8% of the time, four was 13.1%, five was 4.6%, and six was 1.5% — a 99.4% successful starting word.
But this is not the best word even though it is the best word for the quickest win — fortunately we already know the best one to use in order to win.
As mentioned before, “estop” had an average of 2.74 attempts before a win, but importantly it has the highest success rate. It edged out “verso” by achieving a 99.6% win rate with 46% of all attempts being achieved in its first two guesses and then three in 40% — four was 9.4%, five was 3.2%, and six was 0.9%.
With a failure on only 19 words from the word list — compared to 30 for the other word I was testing with — starting with just “estop” should net you a win most of the time.
So in my opinion: “estop” is by far the best word.

From January 30th’s Wordle: “estop” showed that despite failing the first two guesses, the algorithm did it in four tries whereas “verso” had to make an extra guess.
The data
I’m happy to share the data I have made and I welcome you to demonstrate anything you have done with it. However, I must reiterate that I am not a statistician nor do I consider myself adept with mathematics. What I will say that I was out to have fun to solve this challenge and I feel like I have.
I wanted to play this game unconventionally and I think I accomplished that goal. There are some further ideas to achieve a 100% success rate or at least get extremely close to it, but being that I am at 99.6% successful on just this algorithm alone, it does make me think that this little project can be considered “ended”.
-
Hacking Wordle through automation and cryptanalysis
Recently, a game called Wordle has exploded in popularity with its simple five-letter guessing game. I’ve been playing it for a few weeks but have also been musing over how to automate this all using my knowledge of classical cryptography.
So let’s dive in!
Patterns in the English language
While English is a very complicated language, it is also rather predictable and it is because of this we can play around with statistics. Letter frequency is often spoken about in cryptanalysis and is often a basis for solving cryptographic puzzles I release periodically.
With Wordle, we’re limited to five-letter words, so what I wanted to do is figure out what are the most common letters per position. The use of letter frequency is helpful, but because we’re dealing with restrictions, the base statistics are merely a guide and not a rule.
Using a list of five-letter words, I generated some statistics and came up with some answers for each position. In order, the first position had the most common letter of “s”, the second “a”, the third “a”, the fourth “e”, and the last being “s”. Now obviously, the word “saaes” does not exist in this word list, but we can use this knowledge to build a score for each word.
By going through the list, we can use the counts of each position to its letter within that position and then come up with a score. For example, the word “sores” in a set of the highest word score and has the values of 724, 911, 475, 1228, and 1764. If we create an average of those numbers, we come up with an answer of 1,020.4.
Using these averages to create a score for each, we can then order a list. That is all right? Well, not exactly, because there’s one other hiccup.
Of the 5,756 words I am working with, 38% of them end in the letter “s”. This is not really all that surprising seeing that four-letter words made plural should not be uncommon. However, I don’t want them to be dominant when I go to automate this later on, so I need to fix this.
While maybe not the best way to do this, I sorted the list in to two halves. The first half were words with all unique letters and the second not. In both halves, the order was kept from earlier, so once we finished the first half starting from the highest score to lowest, the same would repeat on the second.
At this point I decided I was done and felt that I had the most “efficient” list.
Where to start
Now that we have this list, we need to know what word to start off with. I’ve seen a lot of people suggest words like “audio” and “ports”, but the one I seem to find works best is “cares”.
“Cares” has a word score of 967.4, whereas “audio” gets 288.4 and “ports” has 796.6. The point of the game is to produce an answer in as few steps as possible and while you will knock off a lot of vowels and consonants with those two, you are likely reducing the chances of answering in the fewest attempts.
My choice of word also includes the letter “e”, which is the most common letter used in the English language. On average, you should see that letter appear about 10–13% of the time, with the letter “a” being about 7–9%, and “s” being 6–9%.
You can also order it as “scare” or “races” too if you desire, but I believe that with “s” at the end and putting “r” in the middle, you cover all initial possibilities quite effectively here.
Writing code to deal with this
Wordle’s rules are very straight forward: you have five letters and six attempts. On each attempt, the game will inform you on whether or not each letter is valid based on colour. If the letter in a position is valid, it’ll give it a background colour of green, if invalid then grey, and if invalid but elsewhere in the word, amber.
With this knowledge, I went and created a Python script to churn through a word list and find words based on inputs I give. I am solely responsible for the starting word, but the script itself will use my inputs and produce an answer based on the first hit in a list of words which matches the patterns.
The script works by dynamically generating a regular expression pattern for words that are not valid and then goes through to confirm that the letters that are suggested to be anywhere in the word are then only included. It then spits out the first word from the list created which itself is based off of the scoring method I wrote earlier.
It’s fairly simple and runs from a command line.
Testing it out
One hiccup is that Wordle only allows one guess per day. Now, while I could just erase my browser session data to test this out, there is fortunately a clone which not only allows for the same five-letter words, but can also be used on words of which are much longer — and my script can be used on words of any length provided there is a word list.
This clone allows you to keep playing to your hearts content so it became my test bed.

Feeding letters to the script to find the word

Even if the first guess is completely incorrect, we can do it in three steps
The positional arguments in the script are simple. You supply a wordlist (“words_efficient_er.txt”), the letters you wish to completely discard (“c”, “a”, “r”, “e”, “s”, “o”, and “l”), the letters you want to find anywhere (“d” and “i”, or just “_” for none), and then for each position you either put “_” as a wildcard, the known letter, or you precede letters in that position with a “.”, so if you want to exclude “r”, you can do “.r”, or if you wanted “h” and “y” to be exempted, you just do “.hy”.
Because we have the list ordered in a way that allows us to find the most likely word based on positional letter placement scores, it’s entirely possible to have an answer in just two guesses if your first guess isn’t correct. This has in fact happened with my attempts.

Two attempts and we have our answer
This is of course not fool-proof and I have had it take six attempts.

It came very close to not winning here
The placement of “V” and starting with “L” demonstrates that the scoring isn’t exactly fool-proof because it doesn’t take into account the prevalence of the word in the English language. I’d argue that “loves” is more common than the preceding two, but maybe in the case of a random word choice it does not matter?
But sometimes it seems like it won’t get it and then it suddenly it has an answer.

“Girls”
I guess what may have happened on the last one is that the scores for the other words being higher gave it precedence, but ultimately it came across “girls”. This is why I am only so confident in the efficiency of the list because there might be a way to do this better, but it is beyond my knowledge of statistics.
Closing
You can grab the script from this gist here and any five-letter list from a Google search should suffice should you wish to try this all out.
-
Whatever Twitch is doing with machine learning is absolutely useless
Back in March, I wrote about harassment on Twitch towards individual streamers via its chat function. Then, a few months ago, I followed up with a small piece on them admitting to using machine learning when they filed a lawsuit against known bot users on their service.
Finally, in late November, Twitch announced this machine learning feature and I have this short review: it’s absolutely useless.
After its launch, there were still new bots
Twitch has been dealing with a persistent and never-ending bot problem for a very long time. With a number of Black, persons of colour, LGBTQ+, and women streamers taking a stand and the media taking notice, the company finally relented and admitted that they were not meeting their end of the bargain.
It should be repeated here: the only reason why Twitch has made any response is not because of streamers making an issue of this but because the media took notice of the streamers and asked Twitch about it.
So now we have them admitting to using machine learning to track ban evasion and we also have them providing tools to verify users through their mobile phones, but even with all of that it appears that they haven’t dealt with the elephant in the room: they still have massive numbers of accounts being registered to engage in harassment.
The thing about these hate raids is that the bots used them often have been known to have a pattern. With the case of the “hoss” bots, we saw them follow a rather consistent pattern. These bots ceased to exist a few months before the new feature, so did it stop similar patterns from emerging?
The short answer is: no.
On December 3rd, just a few days after Twitch made a big deal about machine learning, 472 accounts were registered in a small time frame. Each of these accounts started with the same 12 characters resembling a popular streamer and were then followed with four integers with the first one being a 0 and then the last three varying.
The first account was registered at 18:58:10 UTC and the last account was registered at 20:01:06 UTC. However, the first 27 accounts were all registered within 2.5 minutes with the remaining 445 all being registered every few seconds starting from 19:47:28 UTC.
How did Twitch’s machine learning not capture such a pattern of account registrations when this pattern was repeating itself nearly every two seconds?
Why I know
I lead moderation for two events run by one of Twitch’s largest channels. My day job is running a cyber security team, so I have a keen interest in knowing how to contend with the nonsense that streamers (including myself) face and how to mitigate the inadequacies the service has automatically.
Twitch’s API is absolutely garbage to deal with when it comes to automating moderation and they make it spectacularly worse for trying to do anything useful that also flirts with violating their developer terms of service.
So here’s the reality: want to know who followed you or another account? You have to have to have a web service receiving pushed messages. Want to ban or timeout a user account? You have to use their IRC-esque service and issue the same commands a human would. Want to pull the user profile? You have to use their REST API.
These are the official ways to perform these tasks and the rate limiting around them is abysmal. The REST API by default limits you to 800 queries per minute and the IRC one is just over 200. If you wanted to ban every single account from one of the hate raid lists out there, it would take 16-hours to just get through 200,000 of them — there is one list that is almost 1.4 million accounts, which would take almost five days.
There are unofficial ways but you raise the possibility of finding your account access suspended or a legal threat being sent your way. There’s an undocumented API that every Twitch user interfaces with all the time, but if you perform an action with it from outside of a browser, you’re violating those terms.
Nonetheless I’ve endured and come up with ways to do all of these things in a way that is fast, doesn’t violate their terms of service, and can be flexible. It has sucked and Twitch hasn’t been helpful, but a year later and I know more about their developer tools than any non-Twitch employee should.
So when these bots come up, I often notice that there are patterns. These patterns more often than not remain consistent and are predictable. In fact, some of these patterns are predictable enough that I literally can anticipate the accounts existing in the future and be aware of their existence within the minute they’re registered.
When that example from before was made aware to me, I put the pattern into the prediction engine and look at that, hundreds of accounts. I am certain that the number I reported may be inaccurate because it’s possible that some were already suspended, but what the hell is Twitch doing when they see these reports? Do they not themselves look for patterns?
If my report from March is indicative of anything, the answer is pretty obvious!
And you know what? It’s ridiculous because everything I have been doing has been largely automated and is performing things faster than whatever machine learning feature Twitch has put out.
And that is just one example. The hate raid lists that have been floating around have patterns too. When I examined one particular set, I was able to cover approximately 40% of them with just one single definition (of a sample set of 480,000 bots, 192,000 were covered). A simple regular expression was able to do that and it wasn’t even that complicated or computationally expensive.
Yet here we are with some poorly implemented machine learning nonsense that could have been done with much simpler techniques. Making it worse, this whole security theatre they’ve put on isn’t even addressing the other problems the site faces.
Spam bots are still around
Here’s a line many streamers will know: want to become famous?
The BigFollows spam bots themselves are indicative of Twitch’s machine learning really not working the way it should. The bots which spam the URLs inviting people to buy up followers, subscribers, and “actual” viewers are all tied together and can be tracked.

Recent example of a bot spamming a URL which redirects to the BigFollows service.
The service offers customers followers, viewers, and subscribers at varing prices. Need 200 followers? That’s $2.10 US. 30,000? That’s going to be $100.

BigFollows showing available plans for gaining new followers. For as little as less than one penny per new follower, you can get 30,000 of them.
The subscriber services they provide is very damning however.

For $2, you can get a $5 subscription given to you. For $70, you can get 50 of them. Each subscription can pay out a customer about $2.50 US each if they’ve reached affiliate status.
For $2, you can get a new Twitch subscriber. For $70, you can get 50. When you take into account that a Twitch subscription itself is typically $5, you can easily come to the same conclusion I am here. The problem is, I have already pointed this out and Twitch is aware of these things, but has done nothing.
Based on my research, BigFollows has about 80,000 accounts available to be used for following customers or spamming its services with a sizeable number available to offer subscriptions.
On October 31st of this year, the service registered 11,107 new accounts between 13:43:46 and 15:22:19 UTC. Every 3/4ths of a second, the service was registering new accounts and this is not just a single blip.
I was able to find the same sort of mass account registrations in 2021 on October 19th, August 26th, and August 14th. For the 14th, we can see 3,700 accounts were all registered in a three hour period, so it has only become worse since.
Personally, I do not care about who’s behind the scenes of this service because I can make a professional guess and say it’s likely affiliated with or linked to organized crime.
However, the fact that this service persists on Twitch and is engaging in what cannot be anything other than fraud leaves me wondering what the hell is going on with Amazon’s audit, risk, and legal teams when it comes to Twitch.
Looking at a buyer
A recent user of BigFollows is Twitch user, yonkukaido. Between their account registration in mid-2018 and until just before last month (November 2021), the account had just 489 follows with just one in 2020 and most being in 2018.
However, with zero activity until November, the account gained over 77,000 new follows starting on the 14th. This is of course for an account with what appears to be zero activity leading up to that point and with a Twitter account in their bio that was registered just this month (December 2021) and has no real activity.

Profile of Twitch user, yonkukaido showing 78,200+ followers with links to the person’s Twitter, Instagram, and Facebook.

Twitter account, yoku123414 which is linked from from the previous Twitch example.
Their Instagram and Facebook accounts appear to indicate a man possibly living somewhere in the Middle East. The Instagram profile in particular implies that they’re “a gamer”.

Previous videos by Twitch user, yonkukaido showing streams of Fortnite being played as recent as December 14th, 2021.
When reviewing the video on demand (VOD) streams on the account, the amount of interaction in the saved chat is quite small for someone who has 78,200 followers. Even a streamer with 500 users is going to have a lot more interaction in chat in their hour-long stream than what was shown for this streamer here.

Towards the tail-end of this streamer’s VOD, it shows a grand total of five chat messages in just one and a half hours. With 78,200 legitimate followers, this would be significantly more active.
In reviewing some of these videos, there is little to suggest that they’re even talking on stream. However, evidence shows that they’re streaming from a desktop computer as their are using a Streamlabs progress bar on the bottom, something not possible when using console-based streaming.
Overall, the content they’re streaming and how they interact with their stream plus the lack of progress on their on-screen donation bar should be enough to suggest that their sudden explosion in popularity is falsified.
What is the problem?
Twitch has requirements for becoming an affiliate and also a partner.
To become an affiliate, you require a minimum of 500 minutes of stream time, 7 unique broadcasts, at least 3 average viewers per broadcast, and a minimum of 50 followers all across a block of 30 days.
With partner, it’s 25 hours, 12 different broadcasts, and at least 75 average viewers per stream.
In the case of the Twitch streamer example, they have already achieved affiliate status as their profile permits subscriptions, meaning that they can earn money from streaming on the service. When reviewing the view counts for their streams, it’s apparent that they’re also likely buying up viewers and may have achieved enough to meet partner.
The wildcard in all of this is the subscriber count as unless the streamer divulges that information, it remains unknown. However, we can at least confirm that they’re just an affiliate as Twitch provides a purple checkmark in a user profile for anyone who achieves this status.
The consequences of this manipulation on this user’s part are the same as I wrote back in March: it puts the whole affiliate and partner programs Twitch provides into question.
Twitch’s inaction on this despite knowing about it seems to suggest that it is going to continue regardless of their ineffective machine learning components they keep promoting.
The approach is misplaced and incorrect
Here’s a question: how many Twitch users are going to know what machine learning is?
If you’re me, then yeah, you understand it and you also groan whenever you hear it. But if you’re just someone who plays video games and doesn’t have any knowledge of computing programming, you’re going to see the term “machine learning” and see it as a buzzword.
And that is just it: I don’t see a reason for why Twitch is going on about this because it’s simply all show. The extended moderation tools they’ve put out that allows you to “watch” and “restrict” suspicious users relies on the moderators themselves to engage with them. Twitch barely explains what they do and when I have used them personally, I don’t see their effectiveness especially when dealing with ban evasion.
Twitch needs to investigate further these spam bots, they need to actually do research on these hate raids, and they also need to make meaningful tools that do the basics first.
Give users the ability to ban people from their chats by allowing wildcards (similar to IRC) and make it clear that whatever moderation or reporting decisions are made are given a follow up and an outline of what has actually happened.

Email excerpt showing a report has been sent to Twitch.
To close out, I went and checked my inbox to see how many times I’ve reported accounts to Twitch and in 2021 alone I reported 152 users and of those 38 received a follow up. This meant that for every four reports I would make, only one would get actioned on and unfortunately Twitch doesn’t make it clear who you reported or who was actioned upon.

This excerpt contains as much information as the whole email itself on what has actually occurred.
I report not because I expect Twitch to do anything but because I wanted to know how often they actually bothered to enforce their terms of service.
Twitch hasn’t done better.