Saturn Homebrew Update: Flashback, Frogs and More

We’re still a few months away from the next annual SegaXtreme Saturn homebrew competition, but that doesn’t mean talented members of the community aren’t already showing off progress on their original projects. Let’s take a look at four of them that have been updated recently.

Lost Days 0: Queen’s Dream

Sansigolo announced that he’s halfway through writing his next visual novel, Lost Days 0, and that it’ll now be a duology because of the game’s size.

“The first game will be called Lost Days 0: Queen’s Dream and it will be released in Fall 2024,” he said on the SegaXtreme Discord server Sept. 7.

Sansigolo first announced Lost Days 0 in June. It will be the fourth homebrew game that Sansigolo and his Neuromage Studios team have made for the Saturn after Red Moon: Lost Days in 2023, The Case of the City Botucaiba in 2022 and The Lighthouse of São Bento do Oeste in 2020.

Untitled Frog Game

A new homebrew developer on the scene is toying with a 3D platformer. Tails of Saturn uploaded a YouTube video Sept. 5 showing off an untitled frog game that they’re developing with JoEngine.

The game can be downloaded from Tails of Saturn’s Github by clicking the green Code button, then downloading the ZIP file.

Tails of Saturn began experimenting with JoEngine in April just this year, first trying to make a 3D setting for an RPG.

The frog platformer is a pretty simple piece of software for now — there are some environmental features to jump the frog on like a house, some barrels and a bit of elevated terrain. There’s also an animated person walking around that’s held over from the RPG experimentation. There’s no objective yet, either — it’s essentially a tech demo — but perhaps that will change as Tails of Saturn spends more time working with it.

Flashback: The Quest for Identity

Longtime Saturn homebrewer VBT is continuing to work on porting classic sidescrolling adventure title Flashback: The Quest for Identity, posting a new build to the SegaXtreme Discord server as recently as Sept. 2.

He said the new version adds sound effects. A couple weeks prior, he’d reported that he was trying to complete the game without crashing, with a problem cropping up in one level.

VBT entered an early version of the port in the SegaXtreme Saturn 29th Anniversary Game Competition early this year.

He said there’s still lots of work to do to improve the game, including optimizing it to achieve 60 frames per second, remapping the controls, using real sprites and using pixel priority.

Normal mapping demo

Hassmaschine, maker of homebrew game Pixel Poppy Pong, has been working over the last couple months to implement normal mapping on the Saturn.

He uploaded a YouTube video today showing off his work.

“I think I am done messing with this demo for a while,” he said on SegaXtreme’s Discord server. “I have it working pretty much how I want, now I need to actually make something with it!”

The video shows what appears to be a grid-filled ceiling with grooves between each panel above ground covered in mounds of dirt with a bunch of colorful flowers floating between them. The ceiling and ground slowly spin with the flowers floating between them as unseen light sources move around them independently, causing what appear to be three-dimensional details in the flowers, ceiling and ground to be visible.

The thing is, none of the three-dimensional details are really there — the ceiling and ground are 2D infinite planes rendered by VDP2, and while the flowers are 3D objects rendered by VDP1, the side of the flowers facing the camera is flat without polygonal ridges as the normal mapping effect implies.

In the video description, Hassmaschine said, “I really wanted to see how far I can push and maintain 60 [frames per second]. This would never be done in reality, but this demonstrates seven individual normal maps on multiple surfaces with three independent lights.”

A normal map is a two-dimensional texture whose color data gives information about how light would bounce off of it from different angles as if it were a three-dimensional object. Typically, this requires a computer to run light simulations on an actual 3D object to determine those values and “bake” the data into the normal map texture.

These images from video game artist Carlos Lemos’ blog illustrate this process.

The normal map uses red, green and blue channels to indicate how a 3D object — which is being faked by the 2D normal map — would look when lit from the right, from above and from the front, respectively. A game’s programming then interprets these values based on where the light in a scene is coming from and blends them together to create the illusion of three-dimensionality.

Normal mapping is a modern technique in video game graphics that was just a little after Saturn’s time as far as retail games go — the first game to use normal maps was Evolva, a PC action game released in May 2000. Few computers were capable of the calculations required to bake normal maps in the mid-’90s.

So applying the technique to Saturn development is a novel concept that couldn’t have been used in the ’90s. It can be particularly helpful on a console that’s severely limited in how many polygons it can put on screen.

Using normal maps on the Saturn was theorized as early as 2019 by XL2, developer of HellSlave and Irréal, two of the console’s most technially impressive homebrew games.

The first person to get normal maps working to some extent on the Saturn seems to be Drspod, who in 2022 made a bump mapping demo. “Yes it’s updating the [color lookup tables] so the normal maps are quantized to just 16 possible values, but it seems to be enough for a nice effect on simple textures,” Drspod said at the time.

Then earlier this year, 7shades — developer of Cubecat — got normal mapping working on 3D models, posting a playable demo to the SegaXtreme Discord server on March 29.

“I’m currently testing it with Gouraud shading using a version of XL2’s image in CRAM trick,” 7shades said at the time. “Not viable for Cubecat since I’m already short on CRAM, and stylistically it wouldn’t mesh anyways, but I thought it would be cool to see it in action.”

Hassmaschine commented on that demo five months later on Aug. 11, saying, “It’s probably not useful in a full game (maybe in a title screen, menu or specific cut scenes or something) — but doing any sort of normal mapping on Saturn is pretty impressive. … It’s based on how XL2 did reflection mapping using the gouruad shading tables. … I was thinking, you could do that effect on Saturn in color, if you rendered it off screen, and then basically overwrote the bump map on a flat shaded polygon using one of the VDP2 background layers and one of the VPD2 color calc modes (probably CC_ADD).”

By the end of the month, Hassmaschine had whipped up his own normal mapping demo showing a movable light changing how the shadows change on a large coin.

“The normal map is stored in HWRAM (table of RGB values),” he said. “The actual palette is drawn based on the color calculation.”

He also described the calculations to make the effect work as “stupid simple.”

“X-R, Y-G, square the differences, then take the square root. That is your luminance. Keeping in mind you need to do this for every palette entry you’re applying lights to, it needs to be.”

He said he’s taking a shortcut to make the effect even faster on Saturn: “There is no UV mapping, and I am not calculating the ‘normal’ vector of the planes or sprites at all. So I can ignore the blue channel, and only use the red and green colors.

“I can also do it using the blue channel, it’s just not necessary when used on 2D objects, since the normal vector is always pointing at the screen.”

About the author

Danthrax

Danthrax is a contributor to the Shiro Media Group, writing stories for the website when Saturn news breaks. While he was a Sega Genesis kid in the '90s, he didn't get a Saturn until 2018. It didn't take him long to fall in love with the console's library as well as the fan translation and homebrew scene. He contributed heavily to the Bulk Slash and Stellar Assault SS fan localizations, and has helped as an editor on several other Saturn and Dreamcast fan projects such as Cotton 2, Rainbow Cotton and Sakura Wars Columns 2.

Be the first to comment

Leave a comment

Your email address will not be published.


*