TrekkiesUnite118
Established Member
So this has been discussed in the discord and the people doing the Dreamcast port have mentioned they keep getting people asking about a Saturn port in comments. So I figured this might not be a bad thread to have to discuss the possibility of porting Mania to the Saturn as well as pointing out key issues and concerns with the game that would need to be addressed. At the very least it can be a go to resource to point people to when they ask about if it can be done.
Briefly looking over the source code and the assets, these are the issues that have jumped out at me:
Overall I wouldn't say it's impossible, but it would require a lot of work and most likely more than just one person is capable of realistically doing in their free time.
Briefly looking over the source code and the assets, these are the issues that have jumped out at me:
- All the assets would need to be reworked to be in a Saturn Friendly format.
- All the games tilesets, sprite sheets, etc. are paletted GIF files.
- The sprite sheets are based around having texture coordinates which we don't have on Saturn. So they'd need to be remade with Saturn's lack of texture coordinates in mind.
- The sprites are not in Saturn friendly sizes. Saturn sprites need to have their texture width be divisible by 8. Many of the sprite frames in Sonic Mania do not adhere to this. So they would need to be properly resized to these limits.
- This would also require reworking the binary files with these sprite sheets to have the new updated sizes.
- Some sprites appear to be more than 16 colors per frame. While we can do 8bpp and 15-bit RGB on Saturn this would probably eat into our already limited RAM. So sprites and possibly tiles would need to be reworked to 4bpp. This could be done either by color reduction or splitting them into smaller pieces that use different palettes.
- Certain graphical effects and transparencies may be difficult or not possible.
- Music is in Ogg format. As far as I'm aware even Dreamcast struggles to decode this so this would most likely need to go for an ADPCM based format.
- FMVs use the Theora codec and would need to be re-encoded to something Saturn actually has a chance at decoding.
- The game's rendering code seems to be entirely based around software rendering.
- As far as I can tell the other ports all work by simply creating a new RenderDevice using SDL, Direct X, Vulkan, etc. to display the updated frame buffer that the software renderer draws.
- The software rendering itself looks to start in the Scene and Object code and is then handed off to the different drawing classes in Graphics. Eventually these hand the final frame off to the RenderDevice if I'm following things correclty.
- In order to do a Saturn port this would need to be completely reworked to use VDP2 background layers and VDP1 sprites.
Overall I wouldn't say it's impossible, but it would require a lot of work and most likely more than just one person is capable of realistically doing in their free time.
Last edited: