Screeen resolution hacks

Added patch for Psychic Killer Taromaru: http://www.emu-land.net/forum/index.php/topic,73826.msg1157450.html#msg1157450
-----------------------------------------------------------
index.php
index.php
 
nice one, maybe it changes background position or it looks zoomed.
No, an optical illusion, because the last screenshots are made slightly in different times. Look at the plant at the bottom of the screen. They are on the same place. It differs only the X coordinate of the moon.
 
Yes, there are updates on my site (see the signature). I did not post the news here because no one is unsubscribing.
 
Yes, there are updates on my site (see the signature). I did not post the news here because no one is unsubscribing.

Hey Paul, can you try making a hex edit to change the number of lines in the PAL version of Fighters Megamix from 512 lines to 540 and and see what happens in the emulator? If that doesn't work, try 544 lines.

Saturn may be similar to Dreamcast in that the resolution has to be divisible by the size of rendering tiles. So if 540 doesn't work, maybe 544 will. Those sizes are not defined in PAL standard resolutions, but it is below the maximum 576 lines so it may work.

Can you post pics of both here, good or bad outcome?

I'm working on an idea but I don't know how to do this stuff. I need some help with that. What emulator should I set up? And do you use Cheat Engine? Can you point me to a good tutorial that will hold my hand along the way?

Thanks!
 
Hey Paul, can you try making a hex edit to change the number of lines in the PAL version of Fighters Megamix from 512 lines to 540 and and see what happens in the emulator? If that doesn't work, try 544 lines.
Here is a list of screen resolutions supported by Saturn (only). 540 or 544 lines are not supported.
 

Attachments

  • 01.png
    01.png
    180.6 KB · Views: 454
Here is a list of screen resolutions supported by Saturn (only). 540 or 544 lines are not supported.

I was reading about Saturn resolutions on segaretro earlier, so I know they aren't supported by the PAL standard (this pic is much nicer presentation than segaretro though, I saved it).

Isn't RGB pure, not encoded in NTSC or PAL? This idea would only be for RGB. TVs weren't very impressive back then, so maybe it could do it?

If you don't mind, could you try anyways? What I am thinking is if we can get 540 lines out of the Saturn, and figure out how to hack progressive mode into games (there are some 480p demos, the mode is controlled by software, not the saturn) it would get pixel doubled on 1080p monitors (they fill vertically first) and maybe TVs. This would give excellent quality without needing an expensive scaler.

If 540 doesn't work, if the Saturn can do 544 in the framebuffer and with another bit of a hack, write only 540 lines to the DAC (or pull it digitally with a future HDMI mod).

  • Pixels per line could then be maximized against performance.
  • Some games may be able to be hacked to 704x540 (or wider? test the limits)
  • Try to hack games to use RAM cart to compensate for the larger frame buffer (could be a Bonus, or a make or break)
  • Frame rate could be improved as needed by reducing pixels per line.
  • Once performance is acceptable , widescreen hacks can be applied and retested (more sprites/geometry/AI load etc.)
  • Adjust pixels downward and recalculate widescreen codes if necessary
  • Attempt to overclock (last ditch effort)
If 540p won't work, then the target can be reduced to 480p(wider resolutions can still be attempted, 640 is the minimum for "VGA". With a sync splitter, people could make VGA cables for monitor or TVs with PC VGA inputs or convert to HDMI.

Obviously these things can be achieved and surpassed through emulation, but it would be pretty amazing if the idea worked on hardware...
 
Sorry to double post but I noticed Hi-Vision is 704x480. Could try 720x480 then fall back to Hi-vision resolution if 540p can't be achieved.

And it may be better to test with 2D games at first, at least performance wise
 
Saturn Resolutions are fixed. If I remember correctly it's determined by clockrate and what values are set in specific memory addresses. There's only so many combinations you can do and they result in the resolutions listed on that table. If you could do ones that are in between the min and max we wouldn't have seen games like Capcom CPS2 ports running at 352x224 vs the 384x224 they ran at on PS1 and the Arcade. Mortal Kombat wouldn't have been limited to the 320x240, but instead would have ran at the full 400x254 it ran at in the arcade.

The Hi-Vision and 31KHz modes are not used by any official game to my knowledge. They require a Hi-Vision or 31KHz monitor and no actual cable exists for the system to hook it up to those kind of monitors. You can hack a cable together to hook the system up, but then you need games that actually support that mode to get a signal. No games do this as those modes are heavily restrictive, even more so than the interlaced mode games like Dead or Alive and Virtua Fighter 2 use. If you tried to force games to use them, I'd imagine things would blow up in spectacular ways.
 
Last edited:
Saturn Resolutions are fixed. If I remember correctly it's determined by clockrate and what values are set in specific memory addresses. There's only so many combinations you can do and they result in the resolutions listed on that table.

Dreamcast has "fixed" resolutions too. I was talking with Roel from Senile Team about widescreen for Intrepid Izzy. He experimented with a lot of non-standard resolutions trying to get a hard 16:9 ratio (each direction has to be divisible by 32 because Dreamcast has 32x32 pixel tiles.) He had trouble with increasing the width because DC has a wonky VGA signal. Different TVs handle it differently (aspect out of wack, off center, etc).

The listed saturn resolutions change by 32 pixels horizontally, and either 16 or 32 vertically. So it is possible that another multiple of 16 or 32 could work. Paul and his group have increased some games from 320 to 352 pixels wide.


The Hi-Vision and 31KHz modes are not used by any official game to my knowledge. They require a Hi-Vision or 31KHz monitor and no actual cable exists for the system to hook it up to those kind of monitors. You can hack a cable together to hook the system up, but then you need games that actually support that mode to get a signal. No games do this as those modes are heavily restrictive, even more so than the interlaced mode games like Dead or Alive and Virtua Fighter 2 use. If you tried to force games to use them, I'd imagine things would blow up in spectacular ways.

Here is a link to a demo download in this thread at Assembler: https://assemblergames.com/threads/sega-saturn-high-vision-cable.20674/#post-315027

Maybe the address and value can be found out from a demo, or from documentation. Forced VGA mode has been done on Dreamcast. There are some games that don't work, some that are squished in the top half of the screen etc. Capcom had trouble on some of their DC ports. But a lot have been patched. People are patching widescreen into game images now.

Hi-Vision is probably just marketing speak. 704x480p. thats 2x352...DVD (USA) ended up being 720x480. Regular TVs were able to show 720x480i, and EDTVs did 480p. The only reason I asked Paul to try modding Fighters Megamix was because it was the highest res game on his mod list.

Not every game will work. I posted ideas for potential workarounds. Slower paced 2d games might work well. RPGs etc. There are some fairly wide resolutions @240 or 256p if the larger sizes don't work.

640x480p for some games would be great. 704x240/256p would still be sweet for side scrollers, etc.
 
@WingMantis
If you read the documentation of VDP2, you will understand that you can not go beyond the limited resolution of the picture (page 16). Resolution is specified by bits, not bytes. For horizontal resolution, 3 bits are available (8 possible combinations), and only 2 bits (3 combinations, since the 4th combination is not taken into account) are allocated for vertical resolution.
-------------------------
As for the demo version, to which you gave the link, it is displayed only in 320x224 resolution.
 

Attachments

  • 01.png
    01.png
    110.9 KB · Views: 291
  • 02.png
    02.png
    54.7 KB · Views: 305
@WingMantis
If you read the documentation of VDP2, you will understand that you can not go beyond the limited resolution of the picture (page 16). Resolution is specified by bits, not bytes. For horizontal resolution, 3 bits are available (8 possible combinations), and only 2 bits (3 combinations, since the 4th combination is not taken into account) are allocated for vertical resolution.
-------------------------
As for the demo version, to which you gave the link, it is displayed only in 320x224 resolution.

I see. Setting 640 31Khz or H-Vision gives you 480 vertical lines automatically. SEGA was very frugal on Saturn. From the Dreamcast documentation I have read, they use 32bit words for most settings and they are sometimes only using half or less of the bits.

The poster seemed to think it was 480p, apologies.

Thank you for the info. Sorry for my enthusiasm
 
Basically the game in Arcades spanned across 2-3 screens depending on the revision. For the Saturn port you can either have it zoomed in to one screen and have it scroll, or you can zoom it out and have it be letterboxed. However if I remember correctly it runs in the lower res modes (either 320 or 352x240, not sure which). So when you zoom out everything get's really pixelated.



It would be interesting to see if the scaling when zoomed out would look better in a higher resolution.


Now that I have been schooled, let's look at good possibilities for this game. Since this is a scrolling game, 704x240p or 640x240p may be possible. Then you wouldn't have to zoom out anymore.

The PAL version could get 16 more lines than NTSC, but depends on the artwork resolutions and the port quality whether that could look better.
 
@paul_met thanks for replying to my private message. I have managed to install retroarch and got the yabause core working. The mednafen (beetle saturn) core crashes or can't load the disc image that works in yabause (I have Vampire Savior, so I made a backup and got your english patch and was able to modify the ISO, thanks for that!)

I downloaded the latest stand alone development version of Yabause but that just crashes right away / freezes my computer. I guess I should try the last stable version but that's over a year old...

I read through some of the VDP2 manual and I'm also trying to learn how to use Cheat Engine so I can help out. Given that the memory map and register addresses are known for the consoles, is there any kind of easy to use utility that would simplify changing resolution settings?

For now, can you check the PAL version of Super Puzzle Fighter II for saturn? Does it have more lines (or potential for more) than the NTSC versions, or is the artwork limited to 240 lines?

Thanks
 
For now, can you check the PAL version of Super Puzzle Fighter II for saturn? Does it have more lines (or potential for more) than the NTSC versions, or is the artwork limited to 240 lines?
Almost all Capcom games porting to Saturn from arcade machine have resolution 352x224 (for all regions).
In addition, I think that the games with basic horizontal scrolling (such as fighting games) do not really need to increase the vertical resolution of the screen.
 
Last edited:
It is necessary to set a breakpoint on a memory write to address "0x5F80000" and look for the address where the value is written in charge of screen resolution. But before that, I advise you to check out the chapter "TV screen mode register" in manual of VDP2.

I'm having trouble finding what sets the TV mode or accessing the register directly. I found some notes on the VDP2 on the Yabause wiki (http://wiki.yabause.org/index.php5?title=VDP2) and they mention 0x25F80000, and the SEGA VDP2 manual mentions 180000H as the address for TVMD.

I've made it to tutorial step 8 in CE, but adding any of these addresses manually in Cheat Engine and choosing "find what accesses this address" doesn't ever show any results even if I reset the virtual Saturn. Some of the addresses I can't even go to in Yabause memory viewer (I have 0.9.15 now) and really not sure what I'm looking at yet when it comes to figuring out with breakpoints in Yabause debug.

Can you make a tutorial for this processor point me to some good info so I can try to start processing some games?
 
I'm having trouble finding what sets the TV mode or accessing the register directly. I found some notes on the VDP2 on the Yabause wiki (http://wiki.yabause.org/index.php5?title=VDP2) and they mention 0x25F80000, and the SEGA VDP2 manual mentions 180000H as the address for TVMD.

I've made it to tutorial step 8 in CE, but adding any of these addresses manually in Cheat Engine and choosing "find what accesses this address" doesn't ever show any results even if I reset the virtual Saturn. Some of the addresses I can't even go to in Yabause memory viewer (I have 0.9.15 now) and really not sure what I'm looking at yet when it comes to figuring out with breakpoints in Yabause debug.

Can you make a tutorial for this processor point me to some good info so I can try to start processing some games?

To find the address where the values are written, which is responsible for changing the resolution, you need to use the Yabause debugger. Cheat Engine and similar will not help you with this. It is necessary to put the breakpoint on the record of the word's value at the address 0x5F80000. But if you want to understand something in the code after triggering a breakpoint, you will in any case need to learn the instructions assembly of the SH2 processor. So, it's not as simple as it seems to you.
 
Back
Top