Screeen resolution hacks

I'll delete that, and it will be fine.
 

Attachments

  • oasis.png
    oasis.png
    124.5 KB · Views: 108
Hello, I want to make a suggestion in case someone with the necessary knowledge wants to do it.

I use Saturn with an OSSC, the OSSC lacks a framebuffer and therefore stays on the black screen for a few seconds when the game has resolution changes. This can cause the signal to be completely lost, forcing you to reset the console.

Specifically, it's happening to me with Die Hard Arcade, but I imagine it will happen with many other games.

So my suggestion is, could these games be hacked to have a constant resolution even if it's 320x240?

Thank you for your attention.
 
Hello, I want to make a suggestion in case someone with the necessary knowledge wants to do it.

I use Saturn with an OSSC, the OSSC lacks a framebuffer and therefore stays on the black screen for a few seconds when the game has resolution changes. This can cause the signal to be completely lost, forcing you to reset the console.

Specifically, it's happening to me with Die Hard Arcade, but I imagine it will happen with many other games.

So my suggestion is, could these games be hacked to have a constant resolution even if it's 320x240?

Thank you for your attention.
The lack of a framebuffer isn't the issue. The OSSC just isn't fast enough at handling resolution switching. You'd need something like a Retrotink 5X. They're quite expensive, however.
 
Hello, I want to make a suggestion in case someone with the necessary knowledge wants to do it.

I use Saturn with an OSSC, the OSSC lacks a framebuffer and therefore stays on the black screen for a few seconds when the game has resolution changes. This can cause the signal to be completely lost, forcing you to reset the console.

Specifically, it's happening to me with Die Hard Arcade, but I imagine it will happen with many other games.

So my suggestion is, could these games be hacked to have a constant resolution even if it's 320x240?

Thank you for your attention.
The feasibility of such a hack is going to vary because games can switch vertical res for various reasons and preventing the resolution changes may cause issues.

Fortunately, Die hard arcade can be forced to a constant vertical resolution without causing trouble. I hope that you have a mean to use Action Replay codes because that's how I got it to behave :
  • The master code is the same for the 3 regions, it's the default one on my Action replay plus :
    F6000914 C305
    B6002800 0000
  • US version cheat code :
    1601C254 0011
  • Japanese version cheat code :
    1601C240 0011
  • European version cheat code :
    1601C26C 0021
    16007A2E CB20
    16025720 CB20
All 3 regions codes change a value that contains the bits for the vertical resolution in VDP2's TV screen mode register (bits 4 and 5 at address 25F80000) at the beginning of the black screen between the fade in and fade out. The original 0x0001 value temporarily sets the vertical resolution to 224 lines instead of 240 in the NTSC versions, or 256 in the PAL version.

The PAL code has 2 additional changes because there are 2 parts where its resolution decreases to 240, causing OSSC desynchronizations : Deep scan and the end credits. With the code, Deep scan gets offset up by 8 pixels without causing any visibility issue because there's a border at the top of the screen in the 256 vertical res. The end credits are not only offset up likewise, but the visible area gets extended at the bottom. Here's how it looks :
 
Widescreen for Grandia [J]
Travel mode (only)
Code:
16082E4C 0000
16082E4E E0A8
--------------------------------
Battle mode (only)
Code:
1602F308 0000
1602F30A E0A8
1602F620 0000
1602F622 E0A8
1602F7C4 0000
1602F7C6 E0A8
16030458 0000
1603045A E0A8
--------------------------------
All patches can be found on the link in my signature.
Is it possible to use this widescreen patch with the English translation?
 
Is it possible to use this widescreen patch with the English translation?
Yes, via hex editor.

Code:
=============================================
Address    Value (new)    Value (old)    CD
=============================================

Field.bin    (Offset: 602C000)
---------------------------------------------
7A5C     0000E0A8    (00012B78)    #1
D564     0000E0A8    (00012B78)    #1
7A78    0000E0A8    (00012B78)    #2
D5A0    0000E0A8    (00012B78)    #2

CMDMN.BIN    (Offset: 60B2000)
---------------------------------------------
9DAC    0000E0A8    (00012B78)    #1/2

CNFIG.BIN    (Offset: 60B2000)   
---------------------------------------------
23FC    0000E0A8    (00012B78)    #1/2

SVLD.BIN    (Offset: 60B2000)
---------------------------------------------
3B28    0000E0A8    (00012B78)    #1/2

SHOP.BIN    (Offset: 60B2000)
---------------------------------------------
5B10    0000E0A8    (00012B78)    #1/2

BATLE.BIN    (Offset: 60B2000)
---------------------------------------------
3308    0000E0A8    (00012B78)    #1/2
3620    0000E0A8    (00012B78)    #1/2
37C4    0000E0A8    (00012B78)    #1/2
4458    0000E0A8    (00012B78)    #1/2
 
Yes, via hex editor.

Code:
=============================================
Address    Value (new)    Value (old)    CD
=============================================

Field.bin    (Offset: 602C000)
---------------------------------------------
7A5C     0000E0A8    (00012B78)    #1
D564     0000E0A8    (00012B78)    #1
7A78    0000E0A8    (00012B78)    #2
D5A0    0000E0A8    (00012B78)    #2

CMDMN.BIN    (Offset: 60B2000)
---------------------------------------------
9DAC    0000E0A8    (00012B78)    #1/2

CNFIG.BIN    (Offset: 60B2000)
---------------------------------------------
23FC    0000E0A8    (00012B78)    #1/2

SVLD.BIN    (Offset: 60B2000)
---------------------------------------------
3B28    0000E0A8    (00012B78)    #1/2

SHOP.BIN    (Offset: 60B2000)
---------------------------------------------
5B10    0000E0A8    (00012B78)    #1/2

BATLE.BIN    (Offset: 60B2000)
---------------------------------------------
3308    0000E0A8    (00012B78)    #1/2
3620    0000E0A8    (00012B78)    #1/2
37C4    0000E0A8    (00012B78)    #1/2
4458    0000E0A8    (00012B78)    #1/2
Thank you for the work on this patch! I believe I applied it correctly using Hex codes because the world looks fine and the compass looks similarly offset to your screenshot, but my character sprites seem stretched. I did have to force a 16:9 aspect ratio; when I let the core manage the aspect ratio, it stays at 4:3. I've attached a screenshot from the same location as yours to illustrate the issue. Did I mess up somewhere when applying the patch or could it be related to the English translation in some way? (edit: I applied it to the unpatched Japanese ISO that version has the same issue) I also applied the same hex edit to ITGET.BIN.
 

Attachments

  • GRANDIA_1_WS-240731-215007.png
    GRANDIA_1_WS-240731-215007.png
    102.2 KB · Views: 0
Last edited:
Thank you for the work on this patch! I believe I applied it correctly using Hex codes because the world looks fine and the compass looks similarly offset to your screenshot, but my character sprites seem stretched. I did have to force a 16:9 aspect ratio; when I let the core manage the aspect ratio, it stays at 4:3. I've attached a screenshot from the same location as yours to illustrate the issue. Did I mess up somewhere when applying the patch or could it be related to the English translation in some way? (edit: I applied it to the unpatched Japanese ISO that version has the same issue) I also applied the same hex edit to ITGET.BIN.
In your screenshot the proportions of the character sprites are correct.
The game uses a horizontal framebuffer resolution of 352 pixels. When the image is displayed on a TV screen, it fits into the 4:3 ratio. Therefore, the sprites appear narrower horizontally.
 

Attachments

  • 00.png
    00.png
    52.7 KB · Views: 0
  • 01.png
    01.png
    59.2 KB · Views: 0
Last edited:
Yes, via hex editor.

Code:
=============================================
Address    Value (new)    Value (old)    CD
=============================================

Field.bin    (Offset: 602C000)
---------------------------------------------
7A5C     0000E0A8    (00012B78)    #1
D564     0000E0A8    (00012B78)    #1
7A78    0000E0A8    (00012B78)    #2
D5A0    0000E0A8    (00012B78)    #2

CMDMN.BIN    (Offset: 60B2000)
---------------------------------------------
9DAC    0000E0A8    (00012B78)    #1/2

CNFIG.BIN    (Offset: 60B2000)  
---------------------------------------------
23FC    0000E0A8    (00012B78)    #1/2

SVLD.BIN    (Offset: 60B2000)
---------------------------------------------
3B28    0000E0A8    (00012B78)    #1/2

SHOP.BIN    (Offset: 60B2000)
---------------------------------------------
5B10    0000E0A8    (00012B78)    #1/2

BATLE.BIN    (Offset: 60B2000)
---------------------------------------------
3308    0000E0A8    (00012B78)    #1/2
3620    0000E0A8    (00012B78)    #1/2
37C4    0000E0A8    (00012B78)    #1/2
4458    0000E0A8    (00012B78)    #1/2

I'm trying to update the values of FIELD.bin but I don't see offset 602C000 in HxD. I'm guessing I'm probably doing something wrong since I'm not great with hex editors. My offset is in hexidecimal and my text encoding is Windows (ANSI). Is there something I'm missing?
 
I'm trying to update the values of FIELD.bin but I don't see offset 602C000 in HxD. I'm guessing I'm probably doing something wrong since I'm not great with hex editors. My offset is in hexidecimal and my text encoding is Windows (ANSI). Is there something I'm missing?
"60B2000" is the address of the file in the system RAM. To change the data in the file, you need the values in columns 1 and 2.
 
"60B2000" is the address of the file in the system RAM. To change the data in the file, you need the values in columns 1 and 2.

This is helpful, thank you. Feels like I'm on the right path...

I'm looking at Field.bin from the English translation of the game (v1.1.1), but when I search for the old value (00012B78) to replace it with the new value (0000E0A8), HxD returns no results. So, this could be a file issue or maybe I am using HxD wrong? This is how I have it set up:

Screenshot 2024-09-16 132622.png
 
This is helpful, thank you. Feels like I'm on the right path...

I'm looking at Field.bin from the English translation of the game (v1.1.1), but when I search for the old value (00012B78) to replace it with the new value (0000E0A8), HxD returns no results. So, this could be a file issue or maybe I am using HxD wrong? This is how I have it set up:

View attachment 10072
Jump to the addresses from the first column (7A5C, D564, 7A78, D5A0) and check the values.
 
Back
Top