Japanese cover art mock-up courtesy of Dreamcast-Talk user k-do. |
What does it stand for though? Can you do better than 'divine car abduction III'? Let's hear your suggestions in the comments please. |
A sight to behold. Not the undecorated walls... GTA 3 on the Dreamcast! |
Image created by Brazilian Dreamcast supremo NaiSan. |
skmp: Sure. It's pretty simple actually! One day, I accidently came across the re3 source code (i.e. the reverse engineered code for the PC version of GTA3) and I immediately thought, "why couldn't this work on the Dreamcast?" If I recall correctly it was July 2024; let me check. Yeah, here it is, the message I posted in the Simulant discord server that kicked it all off on 9 July 2024.
DCJY: The project seems to have drawn together many of the scene’s longstanding talented developers. Who have the main contributors been and what has your experience been like working together?
skmp: I’ve found it to be a fun project, and I imagine that’s quite a widely shared view. I’ve kind of been working on everything, but mostly video, audio, performance and the initial testing. I also organise the repository/server, and generally help coordinate the project. I’m not sure everyone wants or cares to take public credit. All I can say is that there are several people that have contributed significantly, and ultimately, all that we’ve done with DCA3 is quite small compared to the contributions of the re3 and librw projects (which are relied upon to make DCA3 a reality). I’ve found people very nice to work with, and it really feels like ‘we’re all in this together’. I guess others can more objectively say how they feel (go on, I won’t judge!)
SWAT: I am absolutely thrilled with this project and team! The main contribution was undoubtedly made by skmp. He did a huge job, and everyone else has just helped him with it. I, in turn, have tried to ensure that developments made as part of the project can be reused (via KallistiOS) in other, new projects. Of course, I’ve also carried out a lot of testing on real hardware using DreamShell too (Editor’s note: DreamShell is SWAT’s creation, which goes to show how this project has attracted the scene’s big talents).
NaiSan: DCA3 has demonstrated the capability the Dreamcast has to bring together people from different countries and cultures, collaborating on something that once seemed impossible. It has also highlighted how our community is filled with talent and creativity. The Dreamcast may not have been the most commercially successful console, but it is undoubtedly the one that has brought together the most incredible and special people worldwide.
PH3NOM: I would agree with that statement, this project has enabled a huge amount of collaboration between both old and new members of the community. I for one used to be fully immersed in the scene but stopped developing on Dreamcast many years ago. However, after I caught wind of this project, I simply couldn’t help but volunteer my assistance wherever possible. It has been awesome to see the level of talent and interest that everyone has brought to the table here.
jaxyn b: I’m actually one of those, as alluded to by PH3NOM, who is new to the scene. Earlier this year I thought I'd try to make a little game for Dreamcast, which led me down a rabbit hole of figuring out the fastest way to push polygons to the screen (big thanks to Ian, Falco, Kazade and others for talking me through a lot of that stuff). I ended up with a nice little renderer, and using my knowledge from that, I wrote the first “fast enough” 24-ish frames per second (FPS) version of the DCA3 rendering+clipping code which was then super micro-optimized by Falco and PH3NOM… I sure didn’t have this sort of thing in mind when I jumped into DC homebrew – I just sort of fell into it because it looked fun!
Claude flipping the bird. Dreamcast screenshot courtesy of Esppiral. |
DCJY: The port seems to be an impressive demonstration of the capabilities of the KallistiOS, and the Dreamcast itself, reaching far beyond what some had expected would be feasible. Have you surprised yourself with what has been achieved, or did you have faith in the possibility of getting a port working all along?
skmp: Aside from being a bit scared about vram and ram, it looked quite plausible from the beginning. We managed to resolve the issues with ram, but for vram, compression hasn’t been enough and we’ve had to reduce the size of textures. I’m fairly certain DCA3 could eventually run at 30 fps locked everywhere, if the project continues to be thoroughly worked on. That includes touching ways the game and the engine work though. I’d say 6 months full-time work would get you there, which is not an easy ask for part-time volunteers, but typical of what a company would need to do a good port from PC to Dreamcast.
Esppiral: The journey has been a rollercoaster, and it hasn't ended yet! Each time a new feature was added it tanked performance. Then, all our awesome developers came into action and restored it, only to lose performance once again with the next feature added. Once more, our code wizards restored it. This has been the constant cycle, back and forth. Personally, I never thought the project would reach the level of performance and accuracy it has today. One thing is for sure, this project puts to shame 99% of the software released during the Dreamcast's lifespan. That’s what you achieve with passion and dedication, proving that the console had far more to offer than most ever imagined.
PH3NOM: There is a difference between simply getting a port working and getting a feature complete port fully stable with acceptable performance. From the first day I looked at this project I knew the former was absolutely doable, but was not certain we would achieve the latter. For example, when I first implemented dynamic lighting (notice how street lights illuminate the vehicles as they pass by) the feature was so expensive that we were in single digit FPS territory at certain points. However skmp put his big brain to work and optimized the code to be 2x faster, and, at this point, I knew we would be able to deliver a feature complete port on the Dreamcast.
jaxyn b: The first thing I did when I checked out the code to begin work on it was bypass any 3d graphics rendering. I was shocked when the engine itself showed it was running at a locked 27 fps with no changes or DC-specific optimizations to the physics engine or anything. That was the moment I personally realized the port was totally feasible.
The Dodo, ready to fly straight into the ocean. Dreamcast screenshot courtesy of NaiSan. |
DCJY: What has been the biggest challenge in developing the port thus far?
skmp: Memory issues, mostly. Also a bit of boilerplate code, but we can thank ChatGPT for writing most of those parts!
SWAT: Yes, like skmp says, a lack of memory, but also a lack of time!
Iridon: VRAM! At least for me from an artist’s point of view. To be clear, the game does not come with any copyrighted assets. So, to play the game you need to own a copy of the original PC game. Then those game assets are converted to a format for Dreamcast. And here, due to time constraints, we needed to go for a bit more of a “brute force” approach in the conversion process, the results of which is that not all textures are converted in the optimal way. So between the alpha and the beta stage we hope to further optimize the size and quality of things like texture assets. This will hopefully result in the game running both smoother and looking even better. It's just this type of “boring” work that only masochistic tech-art people like myself and some others like to do!
PH3NOM: I would say streaming assets has proven to be the biggest challenge, because this is still not a fully solved problem and users playing from CD are unlikely to have a great experience just yet. This is a large open-world game that requires everything to be streamed in and out of memory (RAM and VRAM): sound effects, world geometry, models, textures, music, literally everything. This is not an easy task when reading from a CD-ROM. We have made great strides here, but still have significant room for improvement.
DCJY: What can the public expect from the alpha version, and what remains to be addressed before the port can move onto its beta and final stages?
PH3NOM: The first thing to mention is that there will be a few bugs in the alpha version that we are already aware of but did not get time to address, so these will be the priority for the beta release, along with delivering a better experience for those playing from a CD. On top of that, we still have some tricks up our sleeve to increase the image quality even further and achieve the best looking game the Dreamcast has ever seen!
SWAT: For an alpha version it works quite well. But the most important thing is that graphically it is almost completely implemented. We just need a little more stability and to firm up the FPS.
The VMU has been used for reporting performance stats during testing. Photo courtesy of SWAT. |
DCJY: Earlier this year the project gathered a great deal of attention, not just within the niche Dreamcast scene, but across the gaming world more broadly. Was that attention welcome? Are there still any lingering concerns that Rockstar could potentially seek to put a stop to the project?
skmp: The attention was fun, but it did scare us a little, and led us to be more closed, choosing to only show stuff publicly when a release was ready. I don’t know the specifics, but I know re3 has been taken down before. We’ll be pointing people to Rockstar’s online store to buy a copy of GTA 3 that they can use for compiling DCA3, as that is a version that is known to work for this purpose. Hopefully they’ll make a buck and won’t mind us doing what we do?
DCJY: Moving onto the practicalities, is the port compatible with all the standard Dreamcast video output methods? How about controller inputs? Does the port require a standard controller, or can modern controllers be used through one of the many adapter options?
skmp: Yes, all video modes work. As far as I know we support some weird controller configurations, but haven’t touched that code! Someone else will have to pitch in here.
SWAT: Aside from the regular controller, I can confirm that Blue Retro and USB4Maple are supported with modern dual-analog gamepads.
DCJY: Is there anything else you’d like our audience to know about the port or your experience producing it?
skmp: Happy holidays, I guess. I’d like to shout out to darc for gifting me an awesome serial cable and div for the gdemu, they are the best Xmas presents ever!
SWAT: This is the best port in the history of Dreamcast so far!
Iridon: In my opinion, this is the biggest collaborative effort in the Dreamcast’s independent development scene to date. It has revived interest in Dreamcast and Dreamcast homebrew game development in a way that many did not expect, and I am sure it will not stop here. I am positive that after the release we will see more new 3D titles developed and the community continuing forward with boosted energy and focus.
* * *
Well, there we have it dear readers. If that hasn't made you want to explore the dingy sights of Liberty City with a Dreamcast controller in hand, then perhaps you should keep your eyes peeled for the barrage of videos that shall soon be made available - our good friend The Sega Guru is readying a release day special as I type these words, which I'd highly recommend viewing.
Once again, our thanks (and congratulations) go out to skmp and 'The Gang', including those who haven't been mentioned directly in this piece.
6 comments:
Who would’ve thought the Dreamcast scene could top Postal? We’re going into 2025 with a bang. Thanks for the excellent article, Lozz!
I have the PS4 version, so I hope that makes it legal for someone to share the CDI with me somehow.
Great article ! I have been following the gang since August , it is great to see the community come together like this. Thanks to skmp and everyone that has been involved to make this a reality.
Incredible acheivement, and a superb article Lozz!
It's fascinating to hear about the development process from the Devs. Excellent writing loz
Same, I own multiple versions, hoping that's enough to get a hold of the CDI! Let me know if you have any luck.
Post a Comment