Dreamcast Widescreen Hacks
The following content is being "imported" from the AssemblerGames Dreamcast message board due to the board going down at the end of June.
This content is thanks to Esppiral.
List of Dreamcast Widescreen codes -- https://segaretro.org/List_of_Dreamcast_widescreen_codes
How to find Dreamcast Widescreen codes
Ok, I'll try to explain how I find the correct values/addresses for widescreen.
S4pph4rad originally found the way to make widescreen codes. I lack any knowledge on programming or assembly, everything has been done with just passion ^^'
So let's get started.
You'll need.
- Demul (any version) I recommend Demul v.0.5.7 (savestates works best in this version, and you will need savestates, believe me)
- Cheat engine. 6.5.1
- The game you want to hack (obviously), .cdi, .gdi or burned CD.
Once you have everything in place.
Step by step
- Start Demul
- Boot your game
Note. -Demul is prone to crash A LOT while you are looking for the correct address containing the Widescreen value, so I recommend you make a savestate as soon as a 3D scene appears on screen, before doing anything else.
Next step, open Cheat Engine.
- Open Process list.
- Attach it to Demul.
- Open Process.
Looking for the correct address-Value
- Set Scan Range
- START 2C000000
- STOP 7FFFFFFF
- SCAN TYPE- EXACT VALUE
- VALUE TYPE 4 BYTES.
- VALUE 43A00000 (more on this later)**
- First Scan.
From the results list copy all selected items to the address list.
Now you can select and change those values to 43700000 here is where the savestates will come in handy, if things are changing on screen but none is the aspect ratio, reload your savegame and try different addresses.
I recommend you change the values in little groups, it will help to isolate the correct address easily and you may find the address responsible for widescreen.
**Depending on the game the correct value may vary.
Most common values to look for are.
In 4 bytes hex
43A00000
3F800000
3FAAAAAA
44200000
43F00000
To know what the Widescreen equivalent of those values are you need to multiply them by 0.75, so in the case of 44200000, its decimal representation is 640 so we multilply it by 0.75 resulting in 480, the hex equivalent for 480 is 43F00000, so that is the value we need in order to make the game widescreen.
So in the case of Dead or Alive limited edition
Original
2C2FBBD0
43A00000
Widescreen
2C2FBBD0
43700000
To convert it to a CB or AR compatible code to use on real console you just need to change the first 2C ot 02
Like this.
To use on demul
2C2FBBD0
43700000
To use on Dreamcast (Code Breaker-Action Replay)
022FBBD0
43700000
Note.
If any of those values find nothing, you can start searching float values, for instance anything from 0,6 to 2.0 can lead to find were the fov value is stored.
In this case, you may end dealing with thousand of addresses to look into, this method helped me finding the addresses for some games (Soul Reaver, Tomb Raider. etc)
Things can be a little bit ( a lot actually) more complicated, you may find that some games don't have and horizontal value modifier, but instead you will find a vertical and zoom modifiers, changing both you can achieve widescreen too.
Also there are games where the value is stored dinamically on different addresses , or can't be changed at all.
If you have any question, please ask, if you find a zoom or vertical modifiers keep looking or ask here for help, because it may lead to a WS hacks too.
Hope this helps.
Example:
Nanatsu no Hikan - Senritsu no Bishou