Honestly, it blows my mind that people still care about Shining Opal in the year of our lord NBA 2K23. This game, written by a child with no concept of how games should be made, restarted countless times, with wildly overreaching ambitions, has somehow kept enough of a following that someone decided they'd come in and finish the whole dang thing. While I've left the Pokémon ROM hacking space (more or less, I keep getting pulled back in no matter how hard I try to escape), I wanted to go in and fix up some stuff before posting it to my official channels, so I did some binary hacking for the first time in goddamn ever and boy was I reminded why I hated it. And that was even with help from the decomps! It's a wonder I ever made any hacks before 2017, frankly.
Now, while this is semi-official, meaning I've blessed this as the real 'final version' of Shining Opal, I had little control or oversight over how hacksrepairman interpreted my vague notes and scribblings, and have not vetted the hack for anything untoward, so buyer beware. I will not be doing any bugfixes from here on if I can help it, and all such bugs to be fixed should be reported on the official PokéCommunity thread so hacksrepairman can take a look if he so chooses. I wouldn't blame him for wanting to sleep for a million years after the absolute gigaeffort he put in. Bravo, my guy. Bravo.
]]>After a decade of work on CrystalDust, and almost fourteen years spent in the Pokémon ROM hacking community, I think it's finally time to say goodbye. This has not been an easy decision to come to, believe me, but it's a decision I've been considering for a while now. After December’s release, I felt like I could take a well-deserved break from CrystalDust and really think about what it means to me. And frankly, it means a ton. It's defined an entire decade of my life, it's what got me into college and my current job as a software engineer, and it’s what kicked off an intense interest in what makes computers tick.
The Game Boy Advance was the first machine I ever learned how to program at the assembly-code level, and I could argue it's the first machine I ever programmed for at all. I definitely have a lot of fondness for its capabilities and quirks. But I'm being held back by the inherent limitations of what I'm doing: replicating a twenty-one-year-old game on twenty-year-old hardware. I'm not bringing to life an idea I had, I'm trying to interpret someone else's to the best of my ability… and I’m doing it on hardware that was released when I was four. And I just don't want to do that anymore.
In 2014, I went on a years-long hiatus, not knowing if I wanted to come back. You, the fans, eventually convinced me that yes, people still wanted it, and no, I wasn't a decade too late to the GSC remake train. The fans have been what kept bringing me back to CrystalDust, because I honestly, truly, don't want to let any of them down. I made a promise that I fully intended to keep, so not seeing it all the way through seems like a cop-out at best and a disappointing, abject failure at worst.
But I made that promise when I was twelve.
I didn't know the realities of game development, how much time it would take, and that I would still be working on it at the age of twenty-four. I didn't know the mental and emotional toll it would take to be working on the same thing, day in and day out, for years, or that burnout would eventually cause me to stop development for almost four years. I didn't know how exacting my perfectionism would become and how it would make the simplest of changes take ages to do. I didn’t know how envious I would get when seeing my friends working on modern hardware and achieving so much more than the humble Game Boy Advance from 2001 was ever capable of. And importantly, I didn’t know just how much making someone else’s game was limiting my creative freedom in other aspects of my life....
]]>Wow, what to even say here? It's been a long journey to get to this point, spanning eight years, being indefinitely shelved, and then a complete rewrite from the ground up. It's also spanned three cities, two states, the entirety of high school and college, and numerous other transitions in my life.
I've officially been working on CrystalDust for a decade at this point. That's almost half my life, and is just an insane amount of time to put into anything. But I'm proud of what I've done, and restarting was definitely worth it even if the game isn't back to where v2 was. I'll be doing semi-frequent bugfixes depending on the severity of bugs encountered, but other than that I'm taking a break from CrystalDust for a bit.
Merry Christmas, y'all, and (I hope) a happy new year.
]]>Mostly, I've just been swamped with school and school-related things (when am I not?) so I haven't been able to work on any personal projects in ages. That's not to say I don't really want to come back to them, I just don't have the time most days, and when I do, I don't have the energy. Who'd have thought that doing school things all day every day could take its toll on someone? ¯\_(ツ)_/¯
On top of this affecting CrystalDust and pokeemerald development though, it's also caused me to neglect both the Diegoisawesome and DoMoreAwesome YouTube channels, and Diego and Ray Play Game. To be completely honest, I'd considered stopping the show for a while now, since my heart and passion just aren't in it anymore, as well as it just being draining to have to sit down and edit videos every week and make sure they go out on time on top of everything else. I intend to release the last few videos Ray and I recorded before I stopped and then a farewell video, but I don't think anything else will happen, unfortunately. I'm considering ways to repurpose both channels and maybe get development-related videos on DoMoreAwesome separated from YTPMVs/shitposting on Diegoisawesome, but we'll just have to see.
Oh, and I'm in a play now, so that's cool (and time-consuming). And while I haven't been actively working on pokeemerald, I have been keeping close tabs on its progress and it's going really well. Soon enough, it'll be possible to use as a base for CrystalDust, even before it's fully decompiled. Exciting! Also DoMoreAwesome has a Discord server now (well it's had one for a while but I haven't publicized it anywhere), so go join that and relish in the addition of one more server to your ever-expanding list! I assume, anyway, that you join a lot of random Discord servers, or at least have more than me (with a paltry eight servers, my list doesn't even scroll).
]]>Okay, I meant to get around to this ages ago, but here it is! I got some interest in seeing OakBrown and Steve so I'm finally releasing their extremely unfinished, early, alpha, what-have-you builds into the wild.
Download here! Apply to FireRed v1.0.
The changes in this build go up to and including Viridian City, and excludes a new title screen (which is kind of why it isn't included in the screenshots). I quite like this hack and think it has a lot of promise (it was fun trying to figure out how the obstacles in Red's way would be set up and/or removed by Blue, like how the old man would actually get his coffee from Blue, which is what gets him out of the way for Red to keep going). If anyone wants to continue this and can demonstrate that they're capable, then I'd be glad to hand over the reigns.
Download here! Apply to FireRed v1.0.
Okay, this one I'm sure will be the only ever build of Steve to release. The gag is great for the start of the game, but it might have gotten grating if it had continued any further. So with that in mind, this is probably the perfect length for Steve to be (phrasing?). There's also an engine change in there that I hope you'll catch; I'd completely forgotten about it so when I stumbled on it again it cracked me up. Please Steve responstevely.
Also unrelated to either hack, progress on the Emerald disassembly (on which CrystalDust will rely) is going swimmingly. We made a huge push for all baserom dependencies to be extracted, so technically modifications are now possible (even though most of the engine isn't decompiled yet). It's an exciting time!
]]>An update on this is probably what everyone wants the most out of me right now, so I'll put it first. CrystalDust hasn't had any more concrete development progress since my last update, but fear not! Nuggets of ideas and plans for the next iteration of the hack are always forming in the back of my mind.
But what do I mean by "dependencies"? Essentially, my master plan for CrystalDust is to recreate it entirely from scratch within the Pokémon Emerald disassembly project, with the help of the Awesome Pokémon Editing Toolkit (name subject to change). The issue with this being, the Emerald disassembly is way too primitive at the moment to actually work on, and AME and ASE are currently half-formed piles of code waiting to be molded into the hacking powerhouses I know they can be.
This is a term I use frequently, at least inside my own head. The “Trifecta” is the combination of energy, passion, and time, and I need all three in decent amounts in order to work on any personal projects. Oftentimes I’m missing one of the three legs, and because of this everything takes ages to complete. Without energy, I laze around not doing anything but watch YouTube videos. Without passion, I start some new project I’m currently passionate about and worsen the whole problem. Without time, I have to stop myself from working if I want to hold my life together and not miss important assignment due dates or more. Right now, I’m working a full-time job as an intern, so when I come home in the evenings I’m always missing one of the three legs (usually energy). This is, however, my current first priority when it comes to these projects.
The second of the two dependencies CrystalDust has is actually a team effort by members of PRET, the team behind Pokémon ROM disassemblies like pokered and pokecrystal. However, I’m putting this underneath my personal projects because I’m basically the only one ever working on it; the rest of PRET is focusing on fully disassembling Ruby first before transitioning to Emerald, but Ruby is too different from the engines I know well to want to make a sort of transitional version of CrystalDust to tide everyone over until the full Emerald version arrives. I just can’t compromise like that.
This isn’t so much a project as it is an ongoing series, but editing for the show has come to a halt as I’ve moved across the...
]]>The other day, Ray and I took a look at the first public beta of Shining Opal, and lemme tell you, it was painful. Watch us play it now and bask in our misery!
Everything changed when the lawyer nation attacked.
If you're reading this blog, chances are you're interested in some juicy CrystalDust development info. If you somehow made it here without knowing what it is, CrystalDust is the Pokémon ROM hack I've been developing off and on for about seven years at this point. (...That just hit me. Damn.) For the longest time, ROM hacks were thought to be in a legal gray area, where Nintendo didn't really care about them and let them be while they cracked down on fangames; the thought process behind this was that since we weren't distributing any copyrighted content and were instead releasing patches to apply onto original Pokémon games, this was more fine than fangames that were ripping assets straight from official games and redistributing them. But then it finally happened.
One certain ROM hack (which I will not be naming here so as not to draw any unnecessary attention to myself), through the power of Twitch Plays Pokémon and a very professional trailer, managed to get itself extremely popular. The developers announced the release date of the completed game to be the 25th of December 2016 after being in development for over eight years. It was looking to be the most impressive hack to date, taking full advantage of the pokecrystal disassembly project and pushing the GBC to its limits (I was informed that the prism on the titlescreen is actual raytraced 3D!). Sadly, just four days before its intended release date, the developers got a cease and desist notice from Nintendo informing them that they were no longer allowed to work on anything else concerning that ROM hack or related to Pokémon at all.
Obviously this was a huge difference from how Nintendo had been dealing with hacks in the past, and it took the whole community by surprise. They were setting a brand-new precedent where there hadn't really ever been one officially. For a while, I was considering just leaving hacking altogether so as to not put in too much effort into something that'll just get killed before anyone can see it, because who wants to work on something knowing that all your work can be thrown into the shredder with a single email? But then I decided, why should I let that affect me? Just because they can doesn't mean they will. Pokémon ROM hacking has been around since the games have existed, and not once have they been targeted before this. I just can't let my hacks become too popular.
...Which probably means giving a copy of CrystalDust to the Game Grumps probably wasn't a good idea.
So literally three days before the takedown occurs, I attend an awesome Game Grumps Live show with a special cartridge and a goal in mind: get it to Ross (a member of GG). I'd made the cartridge out of an old EZ-Flash 3 in 1 that could take a game and run it just like a regular cartridge without the need for...
]]>In the past, I've lost recordings I made due to being too delete-happy in the early hours of the morning. "I bet future-me will love all the space I'm cleaning up for him!" But this time, it was the fault of my USB hub, and boy am I incensed over that.
This probably doesn't even need to be a blog post, but I just wanted somewhere to rant. This godforsaken hub has been broken for a year now. Why am I still using it? I thought it was actually my motherboard that was incompatible with it instead, since I bought it around the time USB 3.0 was becoming a thing. Maybe they hadn't built it to the proper standards or somesuch. It seemed to be working just fine in the stress tests I gave it on my new computer, in any case.
But alas, as I discovered today, it was the hub all along. While Ray and I were recording new episodes of Diego & Ray Play Game, it decided to just stop working for half a second, which caused Audition to stop recording as it couldn't detect any more audio streaming in. Neither of us noticed Audition no longer capturing our audio, as we were too busy actually playing and making jokes about the bee mafia (a gag which will be forever lost to time). I felt it was some of the best stuff we'd done; I was really excited to start editing it and posting episodes for all to see.
Oh well. I'm getting a new hub shipped on Wednesday; maybe we'll do some post-commentary (ew). I guess stuff like this just happens sometimes.
...I'm going to destroy that thing.
]]>So I figured I may as well start using my blog regularly with the one question on everyone's minds: WHAT IS GOING ON WITH CRYSTALDUST AND WHY HAVEN'T YOU PUT OUT A NEW BETA SINCE 2012?!!? It's pretty simple stuff, actually.
I haven't worked on CrystalDust in two years. And I haven't worked on any story elements for four.
There, I said it. Finally getting that off my chest. I feel like I may have kind of been leading everyone on about that, and that's not entirely all right with me. So I want to set the record straight on some things:
Now the bigger question is why? Why haven't I been working on CrystalDust these past few years, and why have I been continually saying "Coming soon™" when it's clearly not coming back anytime soon? Well, the answers to these questions also happen to be quite simple. Real life kept getting in the way.
You see, back in 2012 when I released Beta 2, I was in freshman year of high school. Things were a lot easier back then. Homework was easy enough, schoolwork was a joke, I had tons of free time that I spent at home because all of my friends lived too far away to hang out with on a regular basis, and most importantly, I had access to a laptop that the school lent me. This meant that whenever I had free time in a class or outside school (which I often did), I could be working on CrystalDust.
And work I did. I worked on that thing everywhere, from on the bus to in the car (contributing to the carpal tunnel syndrome that haunts my right wrist to this day) and things were looking up. Back then I had the plan to oscillate between Shining Opal and CrystalDust, finishing one beta and immediately starting on the next one for the other hack, which once I finished Beta 2 for CrystalDust I gladly switched over. But I wasn't happy with any of the elements that made up Shining Opal, making changes here and there, and eventually restructuring large portions of the hack. This drained me to the point where I was relishing the relative simplicity of CrystalDust, where I wasn't writing and rewriting my own story; everything was laid out for me and I just had to port it over in a way that honored the original. Plus it seemed way more popular than Shining Opal, and fans were already begging for me to return to work on it. So I did, leaving Shining Opal Beta 3 behind and eternally unfinished.
By this time, I'd become somewhat disillusioned with some work I did in CrystalDust Beta 2, so I started to put out small patches and changes to it, updating minor things like the trainer backsprites, Pokégear interface,...
]]>