You might be surprised that, with several interviews in a row done with people involved in the emulation community (mostly developers), there’s a somewhat different topic here (though I’m still planning more interviews with emulator devs): Today I’m presenting you an interview with JCorvinus, known as CorvidDude in previous years (and in Youtube), an interesting individual that, on top of currently working with virtual reality tools in his current work, has been quite important in the scene of hacking Sonic Adventure DX; and I’ll explain you why it matters.

One of the upcoming articles (as in, fully-featured articles instead of an interview) will be an article documenting the long history that went on in investigating, modding, hacking, and improving the PC version of Sonic Adventure DX until the state that it got to today; if you have played the PC version of Sonic Adventure DX, then you probably where recommended to use mods to greatly enhance the experience, and/or have checked out the custom character models and stages done for it. However, like with many other modding communities, it involved a lot of heavy efforts and guesswork, which would have only been possible through a dedicated enough community.

On top of Sonic Retro, which is a huge Sonic-centered community htat has been around for many years and was the hub for many game hacking discussions, there also was X-Hax, which was a group dedicated to everything about Sonic Adventure DX, as well as modding it. JCorvnius not only was the creator/founder of the group (which at first was just a website for showcasing his mods with his friends), but also was fundamental in showing what things could be possible with SADX if enough effort was poured on, both with his technical insight in the game through his first tools, to realizing many groundbreaking mods, that both showed that there could be much more later on, and brought many people into the community.

With his important role on this, as well as the expertise he had with the game, it was a no-brainer to get to contact him, and it was amazing to talk about all the achievements he made in SADX hacking (specially for me, considering that I was a huge fan of SADX and the mods it had, which is why I’m working in the SADX modding history article in first place). So, with all of these things said, please enjoy this one!


This interview was conducted in May 02, 2020.

First of all, thank you so much for accepting; it is always cool to talk with people that have been around on the scene as long as you, and was a fan of your SADX mods back in 2011.

Not a problem, I always like talking about my hobbies.

How would you introduce yourself?

Oh my, that is a big one.

I’d say I’m just a person who likes understanding and creating technology and tools, especially for use by other people. That’s the most important thing, I think.

Since how long have you been part of the Sonic community?

Depends on how you define ‘the community.’ I played my first Sonic game a few years after my first memories formed, so I had a few friends back then who played the games too. As for the internet-connected part of the community, sometime between 2002 and 2003, so that was in middle school.

What was your first experience with Sonic?

I heard that a friend had a new game console called the Genesis. Before that, I’d only ever seen the NES and thought it (and video games by extension) was a neat curiosity but nothing more. I can really only remember the spatial context, bits and pieces of their house and yard come to mind.

Can’t remember what other games we played or even who they were, but I do remember asking to play, and shortly after I got my hands on the controller I knew this was something special, something different. It was so effortless and engaging to extend my sense of self into the on-screen character. Sonic moved so dynamically, with such variable speed that I just got this intrinsic drive to keep playing. I was hooked.

That night I went home and asked my mom for a Genesis. She told me I had to get good grades to get one. Similarly, school had been a fun curiosity to me until that point but when she told me that I went completely academically unchained.

That’s awesome! Do you recall the first time you saw Sonic Adventure?

I do! The game caught my attention immediately. My father and I were at a computer show and a vendor was using the Emerald Coast demo to show off his monitors. The instant I saw it I was stunned. A 3d sonic game? It was so fluid and smooth, and this time there was so much depth! It felt like my first encounter all over again. I asked the vendor if I could play it, and he said I could. Well, I would up playing it over and over again until he eventually kicked me off the unit. Once again, I made every effort to get my hands on a Sonic game ASAP.

Now that sounds like a fantastic experience! What or who inspired you to start hacking Sonic Adventure DX?

It was a self-motivated thing, really. Before Sonic Adventure was even available on the PC, I’d been into hacking and modifying games. The reason behind that was simple: There were only a handful of games that I really liked, and it felt like the gaming industry was rapidly moving away from making the kinds of games that I liked.

So instead of giving up on video games, I reasoned that if I could modify the games that I did love, I could get more of what I liked by exploring minor variations on known good things. Thanks to Quake and Descent having level editors, and other old DOS games having trivial file formats, the instant Sonic Adventure got ported to the PC in 2004, I knew what I had to do.

As for inspiring people, I think SANiK and MainMemory were my biggest inspirations. SANiK gave me a big push and lots of personal mentorship to get into programming, which was something I needed to do to improve my modding ability, since it was capable of automating lots of the tedious manual labor. MainMemory was just so good at reverse engineering things I considered black magic, so that was a big drive to keep going sometimes.

Excellent; now that you mention having heard of Quake and Descent level editors, what can you comment about your experience with those back then?

They gave me extraordinary amounts of teenage experience with the technical craft of making games and other real-time simulations. I spent pretty much every hour that wasn’t at school mastering that craft. making new content and testing it on my friends.

I learned that game modding is a critical part of the software industry’s educational pipeline. Far more effective than game design schools that, at the time, were advertising themselves as LAN parties where all you had to do at work was ‘tighten up the graphics on level 3’

I’m amazed that you were able to experience that; I have heard many times that Quake’s release was mindblowing, and LAN parties always are something that I love to see. I was able to do some like 2 or 3 times, but they were absolutely epic!

What can you mention about the Sonic community on that time? Was Sonic Retro around but with a different name?

In the earliest days, I was just a middle schooler on Sonic CulT, a site that I definitely had no business being on. I was drawn in by the idea of a highly invested group of extreme enthusiasts curating fringe knowledge that was hidden or otherwise hard to acquire.

Eventually, there was some forum cross-pollination with Simon Wai’s Sonic 2 Beta forum, which, if I recall correctly, sprang up around the stolen Sonic 2 beta release named after the aforementioned Simon Wai. It seemed like a more active place with more technical discussion, so I migrated. It was a healthier place too. That place would go on to become the Sonic Retro we know today.

What can you comment about the origins of X-Hax?

It was originally a website to show my mods, and then when I started getting help from my friends, I made a team page and added them to it. If I recall correctly, the original team was me, Polygon Jim, Jeztac, and Hinchy. SANiK was my primary mentor, he taught me how to work with a hex editor, as well as understand pointers and data structs, and even gave me a light intro into C programming.

The X-hax website logo.

Can you comment about the first years of the SADX modding scene (and your experience back then)?

I don’t remember too much of it, to be honest. I do remember that the earliest modifications were texture modifications, then object layout modifications. I do remember that myself and many other people, having played Sonic Adventure 2, and wishing that Shadow had been in the DX port of Sonic Adventure, all converged on this idea of figuring out how to get him in game. I think I was the first to get something working by modifying the data to have Sonic’s character graph node to point to Super Sonic’s mesh data, then doing a texture edit. I might have a screenshot of the earliest attempts around here somewhere, but there’s a good one at this page.

A image of Shadow Adventure (which featured retextured levels and a Shadow model over Sonic), retrieved from its Sonic Retro page.

While working on the Shadow Adventure project, one memory I have that sticks with me, is that in order to work on the SET layouts, I needed a dictionary of what each item type did in each stage. I spent many late nights in a hex editor, incrementing an ID value, saving the file, loading up the level, writing down what the object was, and repeating it until I had a full list. This was before we knew how to scrape the executable for the item names, or that they were even present.

What were the tools that you used often to develop your mods?

At the time, I used Hex Workshop, Photoshop, and Nettapu’s pvm tools[12:29]After that, I started creating my own tools. I made a series of MaxScript tools to convert 3ds max models into chunks of binary data that could be injected directly into the game executable. Actually, you can find all of my legacy SADX tools here.

Also, if you’ve seen some of my mod trailers, you’ll notice these long sweeping cinematic camera passes I shot to advertise the mod to players. I did this because just showing a gameplay video could spoil (some of, but definitely not all of) the experience of playing the level yourself. I actually did this by using Cheat Engine to find the camera poses inside of active memory.

There were many duplicates, and after finding one that could be written to and actually have an effect, I noticed that the location kept jumping around in memory so it was obviously dynamically pointed at. After finding the pointer (the first time I had ever found a dynamic pointer in a piece of software before) I wound up writing an external tool that would animate the in-game camera by loading a file and writing camera pose data to memory. That tool can be found here; but I don’t think many ever used it though.

Fascinating! From what I researched, Sonic RDX was your biggest project so far back then. What could you say about your experiences and plans with working on that?

Yes, that was a huge project. Ever since learning about modding, there had always been these off-handed mentions about ‘total conversion’ and how they were the biggest, most ambitious mod projects out there. Modifying a game so much that it essentially becomes a new game. I was enamored with the concept from the start. Shadow Adventure was originally intended to be one, but as mentioned on the Retro page, when trying to repair my computer I accidentally erased it. I knew I had to keep modding, but I also realized that the state of the art had come pretty far since Shadow Adventure, so maybe it was time to try something completely different.

I eventually settled on the idea of completely remixing Sonic Adventure – make as many levels as possible that still fit vaguely within the Sonic universe. I wanted them to be harder, since myself and every Sonic fan I knew had already played the original stages to death and there wasn’t much challenge in them anymore.

One of the most important experiences during this period, sometime in between Shadow Adventure and Sonic RDX, was trying to work on a team with people. I knew from the beginning that my plans were ambitious, and because my mods were popular I had people lining up to work on the projects. But there was a problem – most of them wouldn’t take it seriously. They’d make a texture or two and disappear. This was really frustrating, because I’d made actual plans to work around the scope of work we’d decided upon, and giving my full attention to people to discuss and plan working on the mod was a major time consumer for me.

At time time, I didn’t realize it, but in retrospect I think they were looking for friendship with the person who made the thing they liked more than actual work, which makes total sense to me now but at the time was an utterly alien concept. Anyways, the reason this was so important was that it provided overwhelming incentive to become a generalist. If I wanted something to get done, I had to do it myself. And every single thing I looked at in Sonic Adventure was inspiration, a jumping off point for a new spin on an existing concept. So I downloaded every tool I could get my hands on and I modified everything I could identify. This helped push the state of the art in the tools, since eventually manually doing things got tedious and I automated the task. It’s also why the quality of the mod is all over the place, but at least everything got touched at least a little bit.

Good thing that everything turned out as good as it did! On the topic of mods around that time, can you comment about your first Dreamcast Sonic model port? From what I know, it was a CHRMODELS.DLL mod (meant that involved replacing your files, this was before Mod Loader) and it also didn’t have the morph head. (used for animated talking)

Sure, although there wasn’t much to it. It was a straight data port, I just copied mesh and material data over and ported textures and modified texture IDs to match. I forget exactly which trick I used at the time but I did find out that you could break the speech morphers by messing with how the pointers were structured. So I used that to keep the dreamcast head around at all times.

It was easier than trying to port the speech morph targets, as at the time I had no idea where they were in the files. Also, I kept the hands and shoes on purpose since they were one of the only parts of the model that were strict upgrades (IMO) and not just stylistic upgrades. Also, keeping the original arms, shoes, and hands prevented the runtime vertex system from breaking.

It actually was one of the easiest mods I ever did for SADX.

Around what time would you say that SADX modding really started taking off?

I think a short time after MainMemory made SALVL. Having a visual, real-time, WYSIWYG (what you see is what you get) editor was a game-changer. It let modders have a really fast iteration loop for their work, as well as let them deploy the full power of their visual cortex towards the problem, instead of having everything just be a bunch of hexadecimal numbers.

Granted, you could use 3DSMax as a 3D visualizer before that, but the process of actually getting your data in game was extraordinarily tedious. The mod loader was another huge milestone, since it meant you didn’t have to dedicate an entire install of the game to a single mod. The importance of tooling really cannot be overstated when it comes to empowering people.

Screenshot of SADXLVL2, one of the current programs in SA Tools, designed for level editing.

What can you say about the Mushroom Hill Zone mod you made for SADX back then? (and what would you say about the process behind porting it to Mod Loader on the new revision?)

Mushroom Zone represents a maturation of the tooling. It was the first time I was able to design (and finish creating) a level pretty much from scratch, with barely any technical consideration of the existing stage. It was the first stage I completed entirely using SALVL as the primary export tool. The ability to treat it as its own stage instead of a modification of an existing stage meant that I could start from level design as a discipline instead of just making whatever came to mind and focusing just as much on the technical craft of getting the data in-game as what the design of the level should be. It was very liberating.

I spent a great deal of time thinking about what makes classic Sonic stages fun to play, and how that could be accomplished in 3D in Sonic Adventure. This is why the stage has many open areas with multiple pathways, some of which have verticality. It was very important to me to not have many bottomless pits, as to me (going into the project) they represented laziness on the part of the level designer. They are also too punishing to new players, and really falling down a long platforming section is a good enough punishment for failure, but is also a lot more seamless so you can try again more quickly.

By the end of the project though, I realized that this kind of level design makes the camera layout exponentially harder, as the number of areas and situations you need to test, manually, explodes. It is definitely the superior option, and I believe the extra work should be done, but it was also when I started to realize that ‘laziness’ is probably not a big a factor in final game quality as many of us had been lead to believe, and that other constraints were at play. I have spent much time since then thinking about what those constraints might be.

There were still some limitations though. The original version had to fit inside of the original game executable, and had to have fewer scene graph objects than Windy Valley part 1. I was also unable to make classic loops that the player runs though, as there some of the spline data structure was (and remains to this day) not understood. When porting to ModLoader I took advantage of the new abilities the modloader gave, especially the number of scene graph objects. There are many more decorative objects in the modloader version, and more platforms to play on as a result.

What would you say that was your best or biggest contribution to the SADX community?

I’m not sure. I think I was actually more damaging than contributory, having kept my tools and practices secret for so long. I wish I had understood the power of open source tooling, writing tutorials, and sharing design assets far earlier and more frequently than I did. Things are definitely better now that we cooperate instead of compete. My biggest contribution is probably the code contributions I’ve made to SA Tools, and the tutorials I made.

What were your thoughts on the efforts in restoring the Dreamcast assets into SADX? (like SADX 99 Edition and Dreamcast Conversion)

I really wasn’t very present for those. I’m glad they exist though, I think both Sonic Adventure DX and the original Dreamcast version are very special in their own way for different reasons, so anything that brings the unique value of the original to the wider community is a good thing. My preferred way to play these days is with DX graphics and Lantern Engine lighting.

What do you think of the emulators that surfaced for the SEGA consoles, and what are your thoughts on what have Dreamcast emulators achieved, or how they contributed in Sonic Adventure DX hacking? (like NullDC, DEMUL, etc)

I’m afraid I’m not qualified to speak on those. I haven’t used them very much.

Do you have anything in the works currently?

Outside of my professional VR work, which I don’t really consider in-scope for this discussion, I am working on a quasi-secret project codenamed “Sonk the Ejog” That’s all I can say.

Any other side projects that you can mention? (including the VR work, if you want)

Just various VR stuff. You can check my github page out for those.

So my professional job is working on a general-purpose spatial compute platform called Holos. We’re currently exploring and building out training and education use cases, but when it’s fully mature you should be able to use it for anything. Unlike other spatial compute tools, we lean very heavily on body tracking, embodied cognition, and we try to make our tools feel very much like video games. it’s very important to us that work tools feel joyous to use, and feel like an extension of the self instead of just a tool. Work should invigorate the soul, and be extremely educational. Work should never be boring or depressing.

Very impressive! I always get fascinated with anything related to Virtual Reality, mostly because I haven’t been able to experience it, but the sheer idea is really powerful with the amount of technology advancements (and to feel “inside the game”).

It is. The nice thing about Virtual Reality is that if you’re willing to master it, it can give you extremely powerful technological abilities that few others have. I’ve called it “prototype transhumanist augmentation tech” for a long time now. The downside is that extracting the full benefits of VR is still very difficult.

Back to the Sonic gamedev tooling problems we mentioned earlier: I think that a properly developed VR tool suite could make producing a Sonic Adventure game much faster, less expensive, and provide better results by tightening the iteration loop.

On a side note, have you ever thought on the idea of SADX in VR? *laughs*

Many times. Doing it as a first person game will probably not work well. Doing it as a third person game has challenges, but there might be ways to work around them.

Have you experimented with modding/hacking other Sonic games? (or Sonic Robo Blast 2?)

I played around with making custom stages for Sonic 2 a few times but it was never all that fun compared to working with Sonic Adventure. The classic Sonic games are just as fun to play as Sonic Adventure, IMO, but developing for the classic games is a far less fun experience.

What would you say that is your favorite Sonic game outside of Adventure?

I can’t decide between Sonic 3K or Sonic Generations. They’re not directly comparable, so I think they can fit the same slot.

What can you comment about all these years of experience with the X-Hax community? And what would you say about the evolution/growth it had?

When I started out, I had no idea that a website for a few of my close friends would even evolve into an IRC channel, let alone a Discord server full of people interested in modding SADX. I feel kind of bad, since the community hasn’t really been in my hands since 2010 or so. I would have kept participating if life had allowed me to, but I’m very glad to see that it kept going long after I left. These days I just sit back and watch, occasionally pushing updates to the editor and answering a question or two.

What did you think when I reached out to you for this interview?

I didn’t have any preconceived notions really, I just like answering questions so I went for it. There’s an interesting cultural shift that has happened in the internet. In the old days people used to come up to me all the time and just initiate conversation. It’s not like that anymore, people mostly make connections via existing social connections instead of just arbitrarily reaching out to people online.

It is definitely fun to be able to communicate with so many people around the world, specially about the things you enjoy. I can say that the year I joined X-Hax IRC was very fun indeed!

Do you have any greetings or special thanks for someone?

Yes. I’d like to thank SEGA and Sonic Team for giving us such wonderful games. We’d have nothing without them. I’d like to thank Melpontro for being my friend through the whole thing. I’d like to thank MainMemory and SF94 for doing such hard work on the tools. And I’d like to thank anyone who has ever played my mods. Your feedback, especially the LP videos that show your genuine experiences, was immensely valuable in learning how to create entertainment for people.

I must say I’m deeply grateful about all the efforts you have done with Sonic Adventure, I still remember trying out Mushroom Zone in SADX and being so impressed; along with how the tools grew exponentially. And the amount of talented people that was brought under X-Hax always left me in awe, specially when everyone was chatting about sorcery in SADX in the IRC channel while I quipped “hello” or was commenting about things I tested there.

Oh, and on the topic of mods, what can you say about your involvement/work on the Windy Valley Restoration project? That one was quite important (and impressive), and I was one of the many that were excited to have that original rendition finally playable.

Ah, so there are 2 versions of that mod. There’s the one I made, which was a Hacking Contest entry where I just grabbed everything I could find of the Windy Valley beta. I think I got most of them from It’sEasyActually, and a copy of the AutoDemo. The problem I ran into right away was that… there wasn’t much that I understood in terms of the data. I had to re-construct the level geometry for act 2 without any info about how the SET files should work. Act 3 was mostly empty aside from level geometry. Understanding the code for the original SET items was completely beyond my ability. The splines were garbage and wouldn’t work properly. The autodemo’s camera files were using completely different camera behaviours from the final game. The most important thing to me, at that point, was making something that felt good to play.

We had all dreamed about this level for so long, and just porting the data we had and understood resulted in something completely unplayable. It would have been a huge disappointment to me, to enter something in that state. I felt like the stage deserved to be finished and given the chance to shine and be played that it never got due to being cut from the final game. So I spent a couple of weeks doing nothing else but filling in the gaps. The original Windy Valley had way more SET files than could be loaded into the game, and I couldn’t get them to load as SET files anyways, so I took the models and converted them into level geometry. That ran slowly, so I started batching them up. The final windy valley lighting looked a bit flat on the beta stage so I baked some shadows and radiosity into the vertex color channel. I added almost an entire stage’s worth of gameplay to the third act, and the second act got a large overhaul as well.

Some people didn’t like the decision to re-make things so drastically, and their concerns are not invalid. But that kind of minimum-effort restoration was not what I was interested in. Mostly because I was unsure of the future of my ability to do mods (my life was very unstable at the time) and unsure of the future of AutoDemo research. It could have dried up afterwards (thank goodness it didn’t) and if I hadn’t finished the stage, there never would have been a fun, playable version for people to enjoy.

The second version of the mod was made by SuperCoolSonic and many others. It is a much deeper, more faithful recreation that benefits from a far better understanding of the AutoDemo, both in terms of data and code. It also comes with a ‘pure’ version that shows how incomplete the original AutoDemo data really was. My only contribution that project was when they came to me and asked me for the assets and code I had made for my version of the restoration. I gave it to them along with a complete explanation of what I did and why. After that, they took that data an ran with it. I’d say that the results speak for themselves.

Do you feel satisfied about what you have done in both that and everything else so far?

As much as I can be. If there’s one thing I wish I had discovered sooner, it is the flag in the camera data that tells the camera system to place Sonic at the bottom of the frame. I didn’t realize it was even a thing, and I was trying to compensate for the problem by placing the focal point of the camera into the ground, so that the path forward gets drawn near the upper 1/3rd of the screen, since my graphic design class taught me that’s how most people scan a page.

It turns out that not everyone scans a screen the same way, and some people look directly at Sonic because they still haven’t mastered moving the character and need to see the animation pose to understand what state the character is in. Other people stare directly into the center of the screen, and others will deliberately scan the shape of the path ahead to plan where they’re going, and don’t need to look at Sonic because they know what state he’s in because they know what control inputs they gave to the game.

Do you have a message to the Sonic community? (and the Sonic Retro community as well?)

The constraints we’re under as modders and fangame devs are completely different from the constraints professional developers are under. Consider the development environment before making critiques.

Would you be down to show up for another interview on a later/future occasion to discuss about everything related to SADX internals and hacking details?

Sure, but I think I’ve said just about everything I can remember.

Alright, thank you so much for all this! It really has been a pleasure (and a honor) to have interviewed someone that has been as important and skilled as you in the SADX scene, specially when I loved so much that game. The amount of progress that went on hacking one of my favorite games since long, and everyone involved behind that, always stuck on my head since the day I entered X-Hax and Sonic Retro.

I’m really happy that you all have worked so hard on it, considering that it was one of the most influential games on my life.

No problem. It’s really nice to know people still care about this game. Definitely one of the best, IMO

Please stay safe, and best of luck on all your projects!

Thanks.


As I mentioned at the beginning (and as seen on the interview), he recently has been working with many things related to augmented/virtual reality; if this sounds interesting for you, then you can check out his Youtube channel where he tests stuff with VR (and can find videos related to Sonic mods if you scroll down), and if you like technical articles, you can check out his article about How Aumented and Virtual Reality Can Unleash Cognition.

And as always, thank you so much for reading; I’m glad that there’s always people that enjoy content like these,a nd I’m really looking forward presenting bigger projects (both on full-featured articles, and future adaptation of this content as videos). And you know the rest; sharing it to your friends or Twitter, sending coffees, you know that drill.

So, whether it is yet another interview, or a new article (or guide I guess); see you next time!

Advertisement