Sega PC Reloaded

Discussion in 'Engineering & Reverse Engineering' started by Korama, Apr 2, 2015.

  1. Atendega

    Atendega

    Lesser Sea Sponge Member
    577
    0
    0
    Comfy couch
    Collecting insults
    Sorry for bumping this, but I'm not sure where else I could ask this. :v:
    Does anybody know how to get analog control working in Sonic R PC? I'm running it with DXWND to fix the various display issues, with the exe that fixes the startup crash on modern systems. To my surprise, it supported my xinput gamepad without any fiddling, but my analog stick is functioning as digital. Also, the analog triggers aren't recognized at all in the control menu. Is there any way to get this working? Does Sonic R PC even have analog support?
     
  2. Chibisteven

    Chibisteven

    Member
    1,295
    8
    18
    US
    Not to my knowledge and probably was never programmed with such support in mind. The PC version controls well enough on a keyboard, so technically an analog stick isn't needed. Try playing the Saturn version on the keyboard with an emulator that's almost impossible to do.
     
  3. Atendega

    Atendega

    Lesser Sea Sponge Member
    577
    0
    0
    Comfy couch
    Collecting insults
    Playable as it is, it certainly is much more so with analog control. The Saturn version supported analog input via the 3D Control Pad, and the Gems Collection version (which was a direct port of the PC version) had full analog support. I can't imagine the PC version would just take it out. Does anybody here remember ever playing the PC version with an analog stick?
     
  4. RibShark

    RibShark

    Member
    85
    0
    6
    There is a second PC release which doesn't require all these fixes, and if I remember correctly it had native analog support. Only downside is that the resolution ini hack no longer works, but you can edit the executable directly to change it (an external DLL that injects the new values might be more appropriate). The screen width is at offset 0x61520, and the height is at 0x61524, each are little-endian integers.

    This is probably outside the scope of this project but if Sonic R was included I would highly recommend using this version due to these advantages, and a lot of the features "missing" from the PC version that are in Gems (such as ambient sounds) are included in this release. The only problem I can think of is that I have not found a way to get the game to load the music when the CD is not inserted.
     
  5. MainMemory

    MainMemory

    Have no fear...Amy Rose is here! Tech Member
    4,396
    64
    28
    SonLVL
    What region was that released in? Who released it? As far as I'm aware, the second release in the US is the Expert Software release, which I have, and it does require several fixes to work on modern PCs. Although the addresses you listed do not match my sonicr.exe.
     
  6. RibShark

    RibShark

    Member
    85
    0
    6
    My copy is the one shown here, published by GSP in the UK. During the credits under the Sonic R logo the text "2004 version" appears. The music is stored as files on the disc in the "music" folder, which is a quick way to identify it, as the other versions all use CD tracks, as far as I know.
     
  7. MainMemory

    MainMemory

    Have no fear...Amy Rose is here! Tech Member
    4,396
    64
    28
    SonLVL
    If Sega PC Reloaded only supported the 2004 version, everyone with the 1998/1999 version would have to download at least a new sonicr.exe file, at most the entire game, depending on how different they are. It's probably possible to have support for both, though.
     
  8. Atendega

    Atendega

    Lesser Sea Sponge Member
    577
    0
    0
    Comfy couch
    Collecting insults
    If the 2004 version had as many fixes as you're saying it does, then I doubt they're all changes to the exe. For all the improvements you would probably have to download a copy of the 2004 version. Its a little disappointing, considering that its a grey area legally and that it's near impossible to find a Sonic R iso that tells you which one of the bazillion releases it is. :argh:
    In any case, it surprises me that any subsequent PC release would actually make the effort to fix issues with the earlier releases. SADX 2011 actually REINTRODUCED issues, so its refreshing to see some actual effort put into a port once and a while.
     
  9. InvisibleUp

    InvisibleUp

    friendly internet ghost Member
    134
    10
    18
    I've just went ahead and looked through a copy of the 2004 edition.

    Turns out that all the changes ARE in the .EXE, plus a few added sound files and the music. Here's the most major changes/things of note I've found: (I've also put a slightly more detailed version of this list on The Cutting Room Floor, for those interested.)

    • Game now requires DirectX 9, as opposed to the old version that only needed DirectX 6. It still visually looks identical to the old version, but it runs better on modern hardware.
    • DirectDraw support was completely dropped. As in the code for it has literally been removed.
    • Weird visual scaling artifacts on bitmaps (time, minimap, etc) appear to be gone.
    • Input works on modern systems without requiring a Direct3D windower or a debugger. It still ignores input if the game is launched while the input is on another window, though.
    • Game no longer crashes on systems with high CPU speeds.
    • Game no longer crashes when you lock the screen or open a UAC prompt on Vista+.
    • The button to get to the menu for the graphics options was removed. If you memory hack your way there, all the typical graphics functions still work with the exception of the screen resolution, which is stuck at 640x480.
    • In-game, you can still change the draw distance with F1 and F2. However, the "Very Far" cap has been removed, meaning you can set the draw distance to absurdly high levels.
    • The hidden Networking screen has been removed. You can still view it's hidden menu item via memory hacking, but selecting it crashes the game.
    • Due to DirectDraw and networking being gone, the .EXE is now only 512KB as apposed to 1.20MB.
    • Game now has music. It is loaded from "*.SON" files on the CD, which are really just uncompressed raw audio files. (signed 16-bit little-endian 44100Hz stereo raw audio files, in fact.) These take up ~500MB on the disk. (The game itself only takes up ~80MB.)
    • Sound files "Waterfall.WAV", "beach.WAV" and "flame.WAV" were added, which play when the player is near certain objects in the game. This is a feature from the Saturn version that never made it over to the PC until now.
    • The various debugging strings that were littered throughout the .EXE are still there, meaning it's still just as easy to disassemble. In addition a lot of strings are around pertaining to which file the error came from. This gives us a good idea of how the dev environment was set up.
    • Just quickly running it through IDA it seems the codebase is quite a bit cleaner. Functions are generally smaller and less spaghetti-like (but keep in mind it's still not by much; in fact it's probably just due to DirectDraw being dropped.)
    All in all besides the compatibility increases it's not THAT different. It's not any easier to hack than the 1998 edition (still crashes with large character models; file paths and offsets are still hardcoded, etc.) but it runs better. If you can port over the fixes, there really won't be any major differences whatsoever besides the 3D audio stuff and the missing display modes.
     
  10. Atendega

    Atendega

    Lesser Sea Sponge Member
    577
    0
    0
    Comfy couch
    Collecting insults
    :specialed:
    I never would have imagined there were that many differences! That's fantastic! I hope these fixes can translate somehow, or an iso can be made or something.
     
  11. RibShark

    RibShark

    Member
    85
    0
    6
    Well, as I said earlier, the display mode can be patched to whatever value in the exe, so there is no problem there. There's also various command line switches that I do not believe exist in the other releases. I've already mentioned this elsewhere, but one of them disables the CD check, while another enables windowed mode.
     
  12. InvisibleUp

    InvisibleUp

    friendly internet ghost Member
    134
    10
    18
    What format is the path in? No matter what I give it it just seems to cause the game to crash.
     
  13. RibShark

    RibShark

    Member
    85
    0
    6
    It's just the path to SonicR.exe. For my computer, I installed the game in C:\Games\SonicR, so the command to open it using the "path" switch would be "SonicR.exe path C:\Games\SonicR".
     
  14. Vipershark

    Vipershark

    Member
    26
    0
    0
    Wow, this is honestly amazing! I never thought it'd be possible to play these old games again outside of a VM or old hardware without some kind of modern rerelease!

    Do you have plans to add support for any other games? There are quite a few other Sega PC titles (I'd like to play Baku Baku on a modern system in particular...) and of course many many other non-Sega Win95 games that it would be great to have these tools for.
     
  15. Krigo

    Krigo

    Robotics;Notes shill Member
    That Sonic R 2004 discovery is amazing, I never thought that would happen.

    Just curious, has anyone looked into making a patcher for Daytona USA Deluxe? I remember it being really awkward to get working properly.
     
  16. Catalyst

    Catalyst

    Member
    2
    0
    0
    cool project!
     
  17. ryouga

    ryouga

    Member
    5
    0
    0
    I too would love a Sonic R fix, I own a UK rerelease disc but never got sound working on it but it ran.

    Sonic 3D I am happy with though but need to find my cd somewhere as Saturn emulation is still iffy at best
     
  18. Blue Spikeball

    Blue Spikeball

    Member
    658
    51
    28
    I love this tool. It makes the experience so much smoother for these games.


    Anyway, some S&KC bug reports:

    Palette blending causes graphical issues in the special stages and Blue Sphere:
    [​IMG]

    For some reason, if you have Halftone stretching enabled, the effect gets temporarily turned off during the introductory cutscene in Sonic's story when Sonic is offscreen.

    Not a biggie, but if using this along with angryzor's HD audio hack, I get the following error message upon closing the game:
    [​IMG]


    Btw, would it be possible to fix the poor animation in the special stages? This issue is unrelated to this utility, but compared to the Genesis version, the movement of the checkered pattern in the floor is jerky and out of sync with the objects. Another detail is that while the Genesis version uses actual transparency for the characters' shadows (taking advantage of the console's shadow/highlight feature), S&KC uses dithering for pseudo-transparency, which doesn't look nearly as good.

    Also, the feature to remap the debug mode keys would be nice.


    I would love to see the special stages issues fixed, as unlike the Genesis version, this port supports custom music (via the aforementioned hack), making it possible to play S3&K with a remastered soundtrack =D
     
  19. MainMemory

    MainMemory

    Have no fear...Amy Rose is here! Tech Member
    4,396
    64
    28
    SonLVL
    The Special Stage animation desync has really bothered me as well. I would love to fix it with the mod loader, but there's barely any documentation on the Special Stage in the MD version, let alone the PC version where there's barely any documentation at all. I'm not even sure what the problem actually is. As for the palette blending, the floor animation is a palette effect, so the only fix would be to disable the blending during Special Stages. The dithered shadows are most likely because they didn't implement shadow/highlight mode in their simulated VDP. It might be possible to darken the area by editing the drawing functions themselves, but we don't really know how they work.
     
  20. Blue Spikeball

    Blue Spikeball

    Member
    658
    51
    28
    Just a guess, but perhaps the animation could be fixed by changing how often the floor palette gets updated? The fact that the floor animation is jerkier than in the Genesis version leads me to believe that the desyncing may merely be a result of the palette not updating at a high enough framerate, making it look like the floor animation is skipping frames. Since everything else is getting updated at the same speed as in the console version, it results in frames in which the objects' sprites aren't perfectly lined up with the floor's tile pattern.