Sega Saturn Widescreen hacks (Panzer dragoon Saga POC)

Discussion in 'Sega Saturn Programming and Development' started by Esppiral, Aug 30, 2016.

  1. Esppiral

    Esppiral Gutsy Member

    Joined:
    Oct 3, 2012
    Messages:
    432
    Likes Received:
    885
    Hi all.

    Some may know that Widescreen hacks have been done for the Original Xbox, Ps2, Game Cube, Dreamcast and even the Psx.

    So I was thinking, why no one loves the Sega Saturn?

    So the other night I gave it a shoot, so far so good, I've found different addresses were values for v-fov, h-fov among other things, were stored.

    I am pretty much new to the Sega Saturn Hacking so I am not really sure of how things do work on the console. It seems there is no emulator with static memory which makes things harder.

    I don't even know if what I am messing with is the console's emulated memory or the emulator's memory.

    Anyway these are the codes to use with CEP and SSF.

    This one will make the game Widescreen
    Code:
    3004FD1B 00AA
    Examples.
    [​IMG]

    [​IMG]

    [​IMG]

    This one will prevent the game from clipping geometry outside the 4:3 area.
    Code:
    3004FD28 0020
    Examples.
    Code Off

    [​IMG]

    Code On

    [​IMG]



    If you want to use it with Yabause, the fastest method ( I Think) is with Cheat engine, set it to scan an "array of Bytes" and insert this:

    E5000000C3000

    Then it will find where the value is stored, go to "browse this memory region" and change the first 00E5 to 00AA.

    Can someone convert this to AR codes? if so, Can someone test it on real hardware?

    Also note the hack has an issue.

    The games has, lets say "3 gameplay modes" I call them on foot gameplay, battle gameplay and riding the Dragon, the code works on all except when you ride the Dragon, battles and on foot seems to work propperly.


    Now that it seems proved that it is (somehow) possible to make Saturn games WS I hope pople with knowledge of how the Saturn works start looking into it so we can see more and more games running in widescreen on the Sega Saturn.


    :)
     
    Last edited: Aug 30, 2016
  2. Yakumo

    Yakumo Pillar of the Community *****

    Joined:
    Mar 14, 2004
    Messages:
    20,339
    Likes Received:
    897
    Panzer Dragoon Zwei has a Wide screen option by default. Maybe take a look at that you see how it works.
     
    Esppiral likes this.
  3. paul_met

    paul_met Rising Member

    Joined:
    Aug 31, 2016
    Messages:
    63
    Likes Received:
    46
    Esppiral, How did you found this value? Accidentally?
    Well, more to the point. I occupy increasing resolution games for Saturn (http://www.emu-land.net/forum/index.php/topic,73826.0.html). But I only worked with standard screen resolutions, following the official specification in the manual for developers. But it turns out there is another method.
    So, 00E5h value obtained by multiplying D1h by "011999h" and separating 2 bytes on the left.
    Example: D1h x "011999h = 00E5E5E9h
    We separate 2 bytes on the left and get the "00E5h".
    The first value (D1h) I could not find, because it is reading from strange address (0xFFFFFF00). But I found a second value (011999h). It is in the file "1ST_READ.PRG" at 0x2AD44. If you will replace this by value 0000D174h, you will obtain the desired value 00AAh.
    Example: D1h x "D174h = 00AAFFB4h
    Separate the two bytes on the left and get: 00AAh
    The modified file can be inserted into the image of the game by using Cdmage. I tested the game a little bit and it seems that it works on the emulator.
     
    Last edited: Aug 31, 2016
  4. Esppiral

    Esppiral Gutsy Member

    Joined:
    Oct 3, 2012
    Messages:
    432
    Likes Received:
    885
    @paul_met I was looking for the value on purpose, but I found it "accidentally" Since I don't really know how the Saturn works, I was using the same logic/maths used to find Widescreen codes for the psx.

    So I tried the most common values for that platform

    1000
    1333
    1999
    1400

    and so on..

    None of them lead me to the desired result, but while I was searching the value 1400 and changed it I noticed the screen changed, so I started modifying nearby values, and I ended up messing with some values responsible for height, wide, zoom, draw distance and so on.

    So basically it was an accident I was looking for ^^'

    I hope there is some logic-match behind it and it is not random so we can achieve more widescreen patches.

    And thank you so much for your info.

    Here I leave an hex edit so anyone can patch the game iso directly

    Panzer Dragoon pal. iso patch

    FIND
    Code:
    06035644 00011999 0000D333 0000EEEE 0000B333 06035664 060356FA 060359E4 D53E8556 24018554 81418557 81428555
    REPLACE
    Code:
    06035644 0000D174 0000D333 0000EEEE 0000B333 06035664 060356FA 060359E4 D53E8556 24018554 81418557 81428555

    Tested on a Real Sega Saturn it seems to work flawlessly, and it works everywhere unlike the action replay code where riding the Dragon wasn't 16:9

    [​IMG]

    [​IMG]
     
  5. paul_met

    paul_met Rising Member

    Joined:
    Aug 31, 2016
    Messages:
    63
    Likes Received:
    46
    As far as I remember, during the flight on a dragon, the long value of which is responsible for changing the screen size (located at 0x0604FD18 in Hi-RAM) is constantly updated (recalculated). You should have it in mind when creating the action replay code.
     
    Last edited: Sep 1, 2016
  6. rso

    rso Gone. See y'all elsewhere, maybe.

    Joined:
    Mar 26, 2010
    Messages:
    2,190
    Likes Received:
    446
    So the game supports screens that constantly change their dimensions inbetween frames? Now that's forward thinking!
     
  7. paul_met

    paul_met Rising Member

    Joined:
    Aug 31, 2016
    Messages:
    63
    Likes Received:
    46
    Panzer Dragoon Saga (U/E) widescreen (action replay code):
    Code:
    16030D44 0000
    16030D45 D174
    
     
    Roareye and Esppiral like this.
  8. Trenton_net

    Trenton_net AKA SUPERCOM32

    Joined:
    Apr 13, 2007
    Messages:
    2,371
    Likes Received:
    56
    Slightly off topic, but does making these wide-screen hacks cause games to perform a little worse, given that it has to render more of a scene per frame?
     
  9. paul_met

    paul_met Rising Member

    Joined:
    Aug 31, 2016
    Messages:
    63
    Likes Received:
    46
    It is not widescreen, but just zoom for Nights Into Dreams (U):
    Normal view:
    [​IMG]

    Zoom out 2x:
    [​IMG]

    Code:
    1603008C 0002
    1603008E 0000
    
    Zoom in 2x:
    [​IMG]

    Code:
    1603008C 0000
    1603008E 8000
    
    Inicial value: 00010000h
     
    Esppiral likes this.
  10. Esppiral

    Esppiral Gutsy Member

    Joined:
    Oct 3, 2012
    Messages:
    432
    Likes Received:
    885
    So cool @paul_met-

    I've seen your work about the resolution hacks for Sega Saturn and it is really impressive, is always nice to see people finding new ways to improve old games.

    On topic

    I've been trying to make Croc 16:9

    I think I've found some values to do so, but similar to some psx games like Silent Hill or Dino Crisis, the game won't be stable and eveything will start to "flat" and "fat" randomly.

    Some screenshots I took

    So sad it does not work with this game, I love it.
    Actually the psx version does the same when trying to make the game 16:9.

    [​IMG]

    [​IMG]

    [​IMG]


    Example of how things will deform.

    [​IMG]

    During gameplay it gets even worse.
     
    Last edited: Sep 3, 2016
    Saturn Team and Shenmue_Trilogy like this.
  11. AUSTIN PEYTON

    AUSTIN PEYTON Peppy Member

    Joined:
    May 22, 2016
    Messages:
    326
    Likes Received:
    167
    you are doing wonders.
    thank you.
     
    Esppiral likes this.
  12. paul_met

    paul_met Rising Member

    Joined:
    Aug 31, 2016
    Messages:
    63
    Likes Received:
    46
    What specific address and the value you found?
     
  13. Esppiral

    Esppiral Gutsy Member

    Joined:
    Oct 3, 2012
    Messages:
    432
    Likes Received:
    885
    There seems to be several values.

    If you want to test it look fo an array of bytes ff0f0010 using cheat engine attached to yabause, the fifth result should lead you to a chunk of memory address that should contain this

    Code:
    0FFA 0FFB 0FFB 0FFB 0FFB 0FFC 0FFC 0FFC 0FFC 0FFD 0FFD 0FFD 0FFD 0FFE 0FFE 0FFE 0FFE 0FFE 0FFE 0FFF 0FFF 0FFF 0FFF 0FFF 0FFF 0FFF 0FFF 0FFF 0FFF 0FFF 0FFF 0FFF 0FFF 1000
    I changed the las 1000, and 0fff and both changed the screen, the value 1000 afected the gameplay, the value 0FFF afected the intro and I think the gameplay too.

    Maybe the nearby values do something too.

    Here is a video, of what happens when you change one of those values in the intro.

    You will notice sometimes the image goes 16:9 while others the dimensions of the screen will stretch or change proportions randomly.
    The intro is letterboxed , the upper video corresponds to the default 4:3 found in the game, the lower is the hack.





    I hope it helps to find something usable.
     
    protivakid likes this.
  14. -=FamilyGuy=-

    -=FamilyGuy=- Site Supporter 2049

    Joined:
    Mar 3, 2007
    Messages:
    2,721
    Likes Received:
    590
    That's the only needed modification for both 16:9 and to fix clipping?

    Any code for the NTSC-U version?
     
  15. paul_met

    paul_met Rising Member

    Joined:
    Aug 31, 2016
    Messages:
    63
    Likes Received:
    46
    It is does not working for me. Zoom changes only (on ingame).

    The same as PAL.
     
  16. Atolm

    Atolm Spirited Member

    Joined:
    Feb 28, 2016
    Messages:
    125
    Likes Received:
    29
    Awesome work, I'd rather patch the I so and drop on the Rhea vs AR code.
     
    Last edited: Sep 4, 2016
  17. Moo

    Moo Gutsy Member

    Joined:
    May 3, 2012
    Messages:
    497
    Likes Received:
    177
    I'd like to see a widescreen hack for MK Trilogy. It always felt cramped to me.
     
  18. paul_met

    paul_met Rising Member

    Joined:
    Aug 31, 2016
    Messages:
    63
    Likes Received:
    46
    I think this is not possible because it is not a 3d game. The maximum that It is possible to do - to change the image resolution to 352x224 (16:10).
     
  19. Esppiral

    Esppiral Gutsy Member

    Joined:
    Oct 3, 2012
    Messages:
    432
    Likes Received:
    885
    Hi!

    Today I bring a Widescreen hack for Virtua Fighter 2 (usa) It isn't actually the kind of hack I was looking for.., but it seems to work fine.

    So in YAVAUSE enter this as an Action Replay code.
    Code:
    160288E22ca0
    CEP (SSF)
    Code:
    800288E2 a02c
    Video in action running on ssf.




    [​IMG]

    The game renders characters, ground area and background art in different layers, this hack will only affect the carachters proportions.
     
    Last edited: Sep 25, 2016
    Saturn Team and americandad like this.
  20. paul_met

    paul_met Rising Member

    Joined:
    Aug 31, 2016
    Messages:
    63
    Likes Received:
    46
    Of course, since all the other layers are VDP2, and they have their own scaling factors (except HUD - this NBG2 layer can not be scaled).
     

Share This Page