don't click here

In terms of gameplay, is Sonic Adventure DX substantially different from the Dreamcast version?

Discussion in 'General Sonic Discussion' started by KaiGCS, Jun 22, 2024.

  1. McAleeCh

    McAleeCh

    Oldbie
    1,513
    559
    93
    Side note, but I still think it's weird that as a side-effect of that exclusivity deal we got The Legend of Zelda and Yoshi series crossovers in Sonic Lost World, but there was nothing going the other way and crossing Sonic back over into a Nintendo property. It would have been great to see Sonic join Mario Kart 8 as a surprise guest character, especially knowing the longevity that game went on to have...!
     
    Last edited: Jun 27, 2024
  2. Blastfrog

    Blastfrog

    See ya starside. Member
    Let’s get back on topic, please.

    I think there should be a concerted community effort to “perfect” the Dreamcast mod for SADX PC, trying to make it as functionally and aesthetically close to the international version as possible. We’re so close, yet not quite there.

    Here are some things that would need to be done, please feel free to expand on this list if I’ve missed anything:

    1. Lantern vertex lighting in tandem with order independent transparency
    2. Original DC cutscenes
    3. Original Chao garden (maybe with the VMU games being emulated or reimplemented as a separate exe, for the sake of completeness)
    4. Fix any bugs not present in international version (hell, let's extend this to things that were not bugs in JP but were in international, if applicable. If any bugs were actually fixed in DX but not any DC version, obviously leave it fixed!)
    5. New code for modern joystick range to translate into equivalent DC range, ensure proper cap to prevent exceeding normal limits
    6. Ensure the 44.1khz JP music is in use if it isn’t already (technically, this is a contradiction from my earlier statement, however, who wants muddied music???)
    7. Controller rumble support if it isn’t already there (DC intl has it)
    8. Intl title screen ripple effect
     
    Last edited: Jun 28, 2024
  3. Are there still issues on the normal Dreamcast mods people use? I haven't really touched the PC version since getting a CRT.

    Also, I think some aspects of the OG 98 release are worth preserving over the Int. version, considering the importance people seem to place on the wheely-feet and the Casinopolis cowgirl. I also like how the spikes fall separately in Lost World, but that's not a huge issue.
     
  4. Blastfrog

    Blastfrog

    See ya starside. Member
    Actually, I just thought of something that could potentially be kinda neat: smartphone app as a way to play Chao Adventure. Think about it, it's perfect, smartphones are ubiquitous mobile devices. I remember as a kid I'd play Chao Adventure every now and again when out and about, just take the VMU with me, etc.

    I think those would be better as options, with the baseline experience reflecting international, since that's how the vast majority of players experienced it. The only thing that I'd deliberately go to the JP version for in the baseline is the music, since it's full redbook quality unlike later revisions (resampled to half rate in order to make room for the English VA).
     
  5. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,785
    367
    63
    SonLVL
    There's an old WIP D3D11 mod (which was abandoned in favor of a generic wrapper that works on any D3D8 game) that adds OIT support, but the problem is that those require the game to be upgraded from D3D8 to D3D11, while Lantern Engine is designed for D3D9 using the D3D8to9 wrapper. The two are mutually exclusive at the moment. I believe a D3D11 update for Lantern Engine was planned to be made after the D3D11 mod/wrapper was done, but other projects (such as a real job) have gotten in the way. The source code for all these things are on SonicFreak94's GitHub, so you can try doing it yourself if you think you have the ability.
     
  6. synchronizer

    synchronizer

    Member
    2,278
    103
    43
    What would be necessary to port the game to standard C++ and therefore multiplatform? (I guess that's impossible without the full original codebase?) macOS and iPadOS hardware are all pretty much decent-enough for SADX and support tile rendering.

    By the way, how many layers of order-independent transparency did the Dreamcast support? Is there a specific limit? There are several algorithms and I'm not quite following which one is used here: https://learn.microsoft.com/en-us/previous-versions/ms834190(v=msdn.10)?redirectedfrom=MSDN
     
    Last edited: Jun 29, 2024
  7. Blue Spikeball

    Blue Spikeball

    Member
    2,494
    1,052
    93
    According to the creator of Demul, up to 256 layers.
     
    Last edited: Jun 29, 2024
  8. synchronizer

    synchronizer

    Member
    2,278
    103
    43
    That's a lot. The Apple Metal example doesn't seem to do more than 8... the per image-block memory limits go over beyond that.
    https://developer.apple.com/documen..._transparency_with_image_blocks?language=objc

    But maybe this has to do with how much memory is needed for 2k-4k pixels. The Dreamcast resolution was at least ~100 times fewer pixels I guess.
     
    Last edited: Jun 29, 2024
  9. Blue Spikeball

    Blue Spikeball

    Member
    2,494
    1,052
    93
    That's why per-pixel layer sorting on Dreamcast emulators is so costly. IIRC, most phones and tablets can't do it while running games at full speed.


    Anyway, on the subject of implementing Chao Adventure, I think it would be more sensible to write a program that can transfer Chao between SADXPC saves and GBA saves of the games that feature Tiny Chao Garden (like the GC-GBA link did) first. Then we could run TCG via a GBA emulator.

    For starters, SADX uses a whole different and more complex Chaos system from the DC version, making it incompatible with Chao Adventure unless you do major rewrites to this one.

    There are also the Jewel Chao, which can only be gotten through TCG outside of save/memory hacking. Thus there is no "legal" way of getting them in the PC versions of SADX and SA2, despite them still existing in the code and being functional. Chao Adventure doesn't include a way of getting them either, as SA1DC players were meant to download those from the official game website instead (in reality it was only possible in Japan, as the feature was broken in the English version of the site).

    Lastly, Chao Adventure's purpose was providing functionality that wasn't in SA1DC itself, like getting seeds and fruits, seeing your Chao's stats, changing its name, etc. Stuff that you can already do in SADX, making it superfluous here compared to TCG.


    TL;DR implementing Tiny Chao Garden compatibility would be easier AND more fitting, given the design and limitations of SADX's Chao system.

    Even though Chao Adventure was superior :V
     
    Last edited: Jun 29, 2024
  10. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,785
    367
    63
    SonLVL
    Implementing TCG link and porting the game to C(++) are already things the modding community has discussed at length before. There was some progress towards implementing a middleman program to connect SADX PC to TCG, or at least to capture a Chao transfer into a file. As for the other thing, I'm not at liberty to discuss details, but porting the game may not be as impossible as you think.
     
    • Informative Informative x 2
    • List
  11. synchronizer

    synchronizer

    Member
    2,278
    103
    43
    Both are promising. Thanks for sharing.

    Also, for others' reference, I think this was the OIT DX11 attempt: https://github.com/michael-fadely/sadx-d3d11/tree/master/sadx-d3d11
    I think it's just some variant of the per-pixel linked-list sort algorithm.

    The thing is, modern desktop and mobile platforms, each depending on their hardware capabilities, have recent features that may help speed this up if one were to use the platform-specific APIs. Also, mobile hardware isn't as limited as it used to be. iPhone, iPad, and higher-end Android devices are pretty overpowered now.
     
  12. BenoitRen

    BenoitRen

    Tech Member
    772
    381
    63
    I remember reading the Xbox 360 version of the game has debug symbols, so (s)he's probably decompiling that one. Ideally, someone would decompile the Dreamcast version, but as far as I know that doesn't have debug symbols.
     
    • Informative Informative x 1
    • List
  13. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,785
    367
    63
    SonLVL
    Once you do one version, it's not too hard to compare the differences in other versions and integrate them with #if directives.
     
  14. synchronizer

    synchronizer

    Member
    2,278
    103
    43
    oh, and Apple has the game porting toolkit now so everything can be in directX I think within reason.
     
  15. BenoitRen

    BenoitRen

    Tech Member
    772
    381
    63
    In theory, yes, but the original Sonic Adventure ran on a SH4 CPU, while the Xbox 360 version runs on a PowerPC CPU. That doesn't make it easy to compare assembly to look for differences.

    I do wonder how big the differences are. Sonic Adventure was coded in a time when the C programming language had become the norm for console game development, and C++ hadn't been standardised yet. So, presumably, it'd have been coded in C. Would Sonic Team have bothered to port the game to C++ later on? I personally hope they haven't, because decompiling C++ is an order of magnitude harder.
     
  16. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,785
    367
    63
    SonLVL
    The later ports are still mostly C, but some of the ancillary code was redone as C++; for example, the "Mini Games" menu and emulator in SADX GC/PC are entirely C++ (you can tell because it feels completely different from the rest of the game). Stuff like graphics and sound were redone using C++ wrappers around the old DC code.

    And yes, the different processors means a direct assembly comparison isn't really feasible, but comparing decompiled code should still be sufficient to find most major changes.
     
  17. BenoitRen

    BenoitRen

    Tech Member
    772
    381
    63
    I'm confused. How can you compare decompiled code when you've only decompiled one version? Or do you mean to compare one version's manually decompiled code with the automatically decompiled code of another version (using eg. Ghidra)?
     
  18. synchronizer

    synchronizer

    Member
    2,278
    103
    43
    Aren't there also new developments in using FPGAs to emulate in hardware? I'm not sure where Dreamcast support is now, but maybe that's an alternative for the future.
     
  19. Turbohog

    Turbohog

    Member
    952
    123
    43
    A dreamcast FPGA core is probably several years down the line.
     
  20. HEDGESMFG

    HEDGESMFG

    Oldbie
    1,390
    1,304
    93
    Figured we should post these so people have some easy comparisons to refer to...

    SA1 DC JPN (1998 version):


    SA1 DC EU? (1999):


    SADX Gamecube US (2003):


    SADX PC STEAM (2011?):


    While it's hard to get 1/1 comparisons of everything, I figured this would be a useful collectiosn of playthroughs to compare 4 different versions. If anyone can find a longplay of the early 2000s SADX PC port, feel free to share that too.