A week with Astra

Virtualboy in color, Battle Arena Toshinden modernized, and the widest of widescreens in SNES.

Astra released about this time about one week ago. Naturally, I decided to stress test it by throwing initiatives at it that were either ambitious new territory or initiatives that had previously failed with previous models.

💡
This article is a general purpose update of my AI development discoveries. While Astra has been a significant part, it was not personally involved in all updates seen here

VirtualBoy: In Color!

Several months back when I was exploring ecosystems, one of the more unusual targets I went for was VirtualBoy. I had no real game or end goal in mind, but mostly wanted to use it as a means to explore recompiling in general. I only ever did one game for it: Mario Tennis.

I find the VirtualBoy novel, but personally never owned one when I was younger; so my motivations are limited. There are few games for the ecosystem, and it was plagued with technology choices of the time.

I thought it'd be nice to explore if it's possible to give these games a second life. The most obvious, but also most ambitious aspect of that was moving away from the system's original red scanlines and giving the VirtualBoy real color.

I made this attempt some months back with Opus models, and even once with Fable, but was ultimately disappointed.

Colorization attempt back in June using Opus

As you can see, there were inconsistencies throughout. Where it did colorize, it didn't do boundaries well. There was, in fact, color, but not in any meaningful way.

More recently, with the introduction of Astra and it's capabilities around attention to detail, I was able to have it take another pass.

A few visual artifacts still show up here and there, but the foundation is far cleaner. I haven't decided yet if I want to spend the time to clean this up the rest of the way, but there is definitely some renewed interest in seeing what else I can do with the Virtual Boy's very limited library. In particular, I am aware of the SD Gundam Dimension War game on the VirtualBoy, and am curious how well I can apply translation patches and colorization to it.

Mario's Tennis running natively on vbrecomp with the full-color renderer enabled.

PlayStation: Battle Arena Toshinden

Lately, I have slowed down in the number of titles I've been putting out for my older recompiler ecosystems – by design. The goal was to get the word out on these ecosystems. That they exist and are capable. That message has been received loud and clear, considering the amount of psxrecomp outputs I've seen coming out almost every day.

With that said, there's been a ton of improvements of psxrecomp since I last put it out. I wanted to take the opportunity to stress test the tooling a bit.

I decided to pick Battle Arena Toshinden as my experiment. First and foremost, I like to pick games that I have fond memories of from when I was younger. This was one of the games I actually owned. Secondly, the game is a simple fighter – meaning the scope of work is more limited for end to end testing and coverage.

Standing up the title vanilla was very quick and easy. I think I had it up in less than 10 minutes, and didn't even really even need AI to make it happen thanks to CobaltCryptid's scaffolding scripts. With his hard work and the ecosystem's maturity,

The next part that effectively came for free was netplay. Once again, as a result of CobaltCrytpid's amazing work in the netplay space, PSX titles basically ship with netplay for free. The infrastructure is all re-usable across each game.

Widescreen was the first enhancement beyond a vanilla recompilation. Given the game is 3D models end to end, and the arenas are simple, it was easy enough to extend viewports and do some HUD re-anchoring and call it a day.

So why even consider Astra for this project?

One thing I remember about Battle Arena Toshinden was the final boss of the story campaign: Gaia. He was always so intimidating and annoying to fight against. I learned years later there was a way to actually play as him if you went through a series of specific commands in the main menu, and then the character select. It wasn't until even later still I learned about a second character: Sho – who only appeared if, and only if, you did equally obscure inputs.

I wanted to bring them into the game in a more first class approach. But with no portraits or icons, that was going to be a challenge, one I wanted to give to Astra.

I kept it ultimately high level with Astra. I told it that these two characters existed, and codes were in game to make them playable. But they had no assets or selection icons. I also challenged it to say the rows for fighters had no space to add them, and we'd have to come up with a solution for that, without giving it more guidance.

Astra took to the internet to research each fighter from their game series and generated icons, portraits, and selection logic. What you see below is close to the original final product. The original portraits used ended up being representations of each character from the later games, but they were very much in the style as you see here. It removed the VS graphic to add space for these two selections.

Ultimately, it took only nominal clean up. I asked it to ensure it used their representations from the first game, and to ensure they had alt art, and make the D-Pad movements a bit more intuitive, but I had my new selectors.

The new player select screen. Gaia and Sho are up, with the rest of the roster along the bottom.

Toshinden on psxrecomp, with netplay and adaptive widescreen.

The SNES renderer

For some time, I've been fighting various SNES titles to get widescreen to cooperate. Most of my experiments came from trying to modify the existing renderer, which was built to be faithful first. Being faithful (LLE) was always meant to be a ground floor to reference from, but in some ways, it's pigeonholed my thinking a bit.

Then, I saw Starfox Enhanced by kandowontu

I had actually been working on StarFox on snesrecomp for a bit, in order to prove the SuperFX chip. I was curious to see if someone had adopted my work to make this happen, because I was simply unable to get widescreen to cooperate.

However, the port was a decomp, not an snesrecomp recomp. But it was still a wonderful port, and something I wanted to see if I could explore on trying to implement in a recomp environment.

kandowontu was extremely welcoming and kind, and with his permission, I scoured his project and tried to feed its work into my recomp of Starfox. With considerable effort, I was eventually able to reproduce the adaptive widescreen and other renderer improvements that had been a struggle for snesrecomp to date.

I carried that reference implementation forward to other games where widescreen had eluded me. Super Metroid was a game I'd recompiled some time ago, but with nominal to no real enhancements. Widescreen had been attempted but was often garbled beyond the 4:3 range.

Channeling a new custom renderer perspective and using Astra as a backbone, I was able to get some very clean and capable outputs.

Samus on the ridge above the gunship, with the full horizon in frame.
A Brinstar corridor at widescreen width.

The more obvious choice, though, isn't Metroid, but another racer. In particular, F-Zero has been a target long on my mind.

I'm aware that F-Zero suffers from a lack of capable decompilations. It suffers more given that F-Zero did have its source code leaked during one of those data breaches. However, in order to stay clean room and above board, I can't and won't use it.

Given the wedged position it's in, F-Zero is likely a target that will best benefit from a recompilation. And so it has.

Borrowing the renderer once again, I was able to get adaptive widescreen working with a higher frame rate, as seen below.

I'm sure any F-Zero regulars may be confused by what the above course in the video is. And that was one more addition I decided to take on.

I am aware that F-Zero had some successors for the SuperNES, but in a very limited capacity: the Satellaview. Two Satellaview broadcasts exist for the game. The first has been dumped, but the second was lost to time, but faithfully reconstructed based on VHS footage using AI a number of years ago.

The Satellaview tracks and courses were built into a rom hack that could be applied to the base game. BS SNES Deluxe – through the hard work of GuyPerfect, Porthor, and PowerPanda. I reached out to all three of them to get their permission to use my work in this recompilation. I've gotten permission from two of the three thus far! Waiting on the final one before making my release.

Xbox LLE

I increased my usage tier this month to coincide with Astra. As such, there's a bit of extra usage to burn. I had Astra go over my game plans with me on PSP and Xbox LLE recompilers. PSP has a pathway to booting, but still has nothing to show to date. Xbox however, is beginning to see some nominal performance increases, featured below. Both are still a long way from any type of production.

Current state of xboxlle.

Closing

The era of AI assisted development is quickly evolving! Everyday it seems that something new is cropping up! Very excited to see where we will be in the next several months.