Disabling PS1 hardware dithering (better looking 2D)
-
cr4zymanz0r
- Posts: 356
- Joined: Sat Oct 19, 2013 6:36 am
Disabling PS1 hardware dithering (better looking 2D)
So I stumbled upon Chris Covell's twitter and found some interesting posts about PS1 hardware dithering and some Action Replay codes to disable it on some games
1st post: https://twitter.com/covell_chris/status ... 6064143360
Larger image: https://pbs.twimg.com/media/DSEIjzEVQAAIUxt.jpg:large
2nd post: https://twitter.com/covell_chris/status ... 8180140032
Larger image: https://pbs.twimg.com/media/DSEJS1kV4AAnO53.jpg
I have noticed the checkerboard pattern shown in some PS1 games. I wondered if there's more info on this such as a way to patch the games themselves instead of relying on cheat devices, or maybe even a hardware way to disable it on everything (and connect to a toggle switch).
1st post: https://twitter.com/covell_chris/status ... 6064143360
Larger image: https://pbs.twimg.com/media/DSEIjzEVQAAIUxt.jpg:large
2nd post: https://twitter.com/covell_chris/status ... 8180140032
Larger image: https://pbs.twimg.com/media/DSEJS1kV4AAnO53.jpg
I have noticed the checkerboard pattern shown in some PS1 games. I wondered if there's more info on this such as a way to patch the games themselves instead of relying on cheat devices, or maybe even a hardware way to disable it on everything (and connect to a toggle switch).
Re: Disabling PS1 hardware dithering (better looking 2D)
When you play PS1 games on the PS2 with the Texture Mapping set to "Smooth":
Doesn't that also removes the dithering?
Doesn't that also removes the dithering?
Re: Disabling PS1 hardware dithering (better looking 2D)
No, that enables texture filtering.
Re: Disabling PS1 hardware dithering (better looking 2D)
Yes I know, but doesn't that also disables the dithering at the same time? It seems that way from the screenshots I seen.Thomago wrote:No, that enables texture filtering.
Re: Disabling PS1 hardware dithering (better looking 2D)
No, it doesn't. Just take a look at this video:
https://www.youtube.com/watch?v=4EY12KTH_Xk
That being said: I highly doubt it, but it's possible that the PS2's behaviour regarding this issue depends on the model.
https://www.youtube.com/watch?v=4EY12KTH_Xk
That being said: I highly doubt it, but it's possible that the PS2's behaviour regarding this issue depends on the model.
Re: Disabling PS1 hardware dithering (better looking 2D)
Disabling dithering won't always make games look better, sometimes it is necessary, most apparent with the missing 'gouraud shading'-like effect in Motortoon here.
Strikers1945guy wrote:"Do we....eat chicken balls?!"
-
- Posts: 677
- Joined: Wed Aug 16, 2006 3:52 am
- Location: https://www.youtube.com/watch?v=4FZcI8EVW-c
Re: Disabling PS1 hardware dithering (better looking 2D)
.
Last edited by Arasoi on Sat Jun 20, 2020 11:02 am, edited 1 time in total.
Re: Disabling PS1 hardware dithering (better looking 2D)
That's really cool. Dithering looks really ugly when shown on large, modern screens with all the sharpness that the RGB + OSSC/FM combo brings. I really notice it on the PS1 & DC. Saturn games don't seem to have dithering and generally have very little shading, mostly using bright & bold colors. Like that look a lot. Most PS1 games probably will look worse with dithering disabled (very visible banding, kinda like the DOS PC version of Tomb Raider), but for some this should bring an increase in quality like the various N64 deblur solutions. If it's an AR code you can certainly just patch the ISO, but I doubt it'll be easy to just wire up a switch somewhere. My guess would be that the dither setting is just a flag bit in some GPU register.
Re: Disabling PS1 hardware dithering (better looking 2D)
You're correct, it is just one bit on one of the GPU registers. I can't remember which one of the top off my head but it's easy enough to find out from this page IIRC: http://psx.rules.org/gpu.txt. I modified a Silent Hill ISO a few years ago just to see how it would look without dithering and it looked terrible with really bad color banding replacing the dithering but maybe it would work better on other games, didn't try any others though as I lost interest after that.ASDR wrote:That's really cool. Dithering looks really ugly when shown on large, modern screens with all the sharpness that the RGB + OSSC/FM combo brings. I really notice it on the PS1 & DC. Saturn games don't seem to have dithering and generally have very little shading, mostly using bright & bold colors. Like that look a lot. Most PS1 games probably will look worse with dithering disabled (very visible banding, kinda like the DOS PC version of Tomb Raider), but for some this should bring an increase in quality like the various N64 deblur solutions. If it's an AR code you can certainly just patch the ISO, but I doubt it'll be easy to just wire up a switch somewhere. My guess would be that the dither setting is just a flag bit in some GPU register.
-
- Posts: 677
- Joined: Wed Aug 16, 2006 3:52 am
- Location: https://www.youtube.com/watch?v=4FZcI8EVW-c
Re: Disabling PS1 hardware dithering (better looking 2D)
.
Last edited by Arasoi on Sat Jun 20, 2020 11:00 am, edited 1 time in total.
Re: Disabling PS1 hardware dithering (better looking 2D)
I don't know how to convert the codes directly which would probably be the easiest way if possible. I disassembled the PS-EXE file in IDApro and then searched for writes to the GPU data register, in particular packet $e1 IIRC. If the dithering bit was turned on then I checked where I was in the hex editor part of IDApro and used a hex editor to load the whole ISO file to edit that particular byte to turn the dithering bit off. I would love to give it another try with those 2 games and make a ppf patch for them but I don't have any spare time at the moment. I'll see if I can find time to have go after the weekend if no one else does it before then.
-
- Posts: 677
- Joined: Wed Aug 16, 2006 3:52 am
- Location: https://www.youtube.com/watch?v=4FZcI8EVW-c
Re: Disabling PS1 hardware dithering (better looking 2D)
.
Last edited by Arasoi on Sat Jun 20, 2020 11:00 am, edited 1 time in total.
-
cr4zymanz0r
- Posts: 356
- Joined: Sat Oct 19, 2013 6:36 am
Re: Disabling PS1 hardware dithering (better looking 2D)
I'd also be interested in a detailed step-by-step guide of how to do it ourselves as well so we don't have to bug one person each time we run across a 2D game that would benefit from patching.
Re: Disabling PS1 hardware dithering (better looking 2D)
Hi, folks. I wrote up that short tutorial on searching for and disabling PS1 dithering: http://www.chrismcovell.com/psxdither.html
http://www.chrismcovell.com
Chris' Journey
Chris' Journey
Re: Disabling PS1 hardware dithering (better looking 2D)
Excellent, thanks!
My sales thread : 2020/07/20..MASTER.VER.
Re: Disabling PS1 hardware dithering (better looking 2D)
-Mind blown-
I have noticed this checkerboard pattern before, but never thought that it could somehow be turned off. Seems like sky's the limit nowadays. We get so many improvements from all of the talented people.
It's about time that we got some kind of portal were all of these can be listed:
-480p patches for ps2, xbox, gc games
-list of ps2 games which games can be run in 480p via GSM on ps2 hardware
-16:9 patches for ps1, ps2, xbox, gc, dreamcast games
-60FPS patches
-240p patches for ps2 games
-There are already many hacks on romhacking.net for older systems (Megadrive SFII music&sound optimization)
-and now filter removal for N64, ps1
It seems like many codes/patches are hidden in over 1000 posts threads on ps2 emulation sites, assembler forums, etc. Not complaining about that, but many people now miss out on really great improvements.
It's 2018, I wish there was kind of stable portal where we could just upload codes/patches so that the work does not have to be done by one person.
I have noticed this checkerboard pattern before, but never thought that it could somehow be turned off. Seems like sky's the limit nowadays. We get so many improvements from all of the talented people.
It's about time that we got some kind of portal were all of these can be listed:
-480p patches for ps2, xbox, gc games
-list of ps2 games which games can be run in 480p via GSM on ps2 hardware
-16:9 patches for ps1, ps2, xbox, gc, dreamcast games
-60FPS patches
-240p patches for ps2 games
-There are already many hacks on romhacking.net for older systems (Megadrive SFII music&sound optimization)
-and now filter removal for N64, ps1
It seems like many codes/patches are hidden in over 1000 posts threads on ps2 emulation sites, assembler forums, etc. Not complaining about that, but many people now miss out on really great improvements.
It's 2018, I wish there was kind of stable portal where we could just upload codes/patches so that the work does not have to be done by one person.
Re: Disabling PS1 hardware dithering (better looking 2D)
You mean like consolecopyworld ? (yes it's still online lol)
Strikers1945guy wrote:"Do we....eat chicken balls?!"
Re: Disabling PS1 hardware dithering (better looking 2D)
I think this is one of the greatest tragedies of the retro gaming community. Treasure troves of reverse engineering, repair guides & clever hacks are buried in 100+ page forum threads with dead links and missing images.D wrote: It's 2018, I wish there was kind of stable portal where we could just upload codes/patches so that the work does not have to be done by one person.
Hoping the retrorgb.com wiki will actually happen, would be awesome to take all of this information and put it somewhere more organized and permanent.
-
cr4zymanz0r
- Posts: 356
- Joined: Sat Oct 19, 2013 6:36 am
Re: Disabling PS1 hardware dithering (better looking 2D)
Ok, I didn't notice there had been further replies here to the thread, so I didn't know ccovell left a nice tutorial.
So basically I didn't completely understand his tutorial as far as figuring how to turn off dithering in other games he hasn't done yet, but I was able to piece somethings together to make 'patch' versions of his existing Gameshark codes, and a VERY experimental barely tested way to potentially disable it in any game. Here you go:
Open ISO in a hex editor, search for the listed hex string, change specified value, save edited ISO.
You should only find one instance for each search.
Castlevania: Symphony of the Night (US and JP)
Search: 00 E1 03 3C 00 02
Change: only ending 02 to 00
=========================
Castlevania Chronicles (US, maybe JP too)
Search: 00 E1 02 3C 00 02
Change: only ending 02 to 00
Search: 10 00 E1 04 3C 00 02
Change: only ending 02 to 00
Search: 10 00 E1 03 3C 00 02 63 34 02 00 80
Change: 10 00 E1 03 3C 00 00 63 34 02 00 80
=========================
Gradius Gaiden (JP only game)
Search: C3 00 00 E1 02 3C 00 02
Change: only ending 02 to 00
Search: 82 00 00 E1 02 3C 00 02
Change: only ending 02 to 00
Search: 00 E1 03 3C 00 02
Change: only ending 02 to 00
Search: 00 E1 0F 3C 00 02
Change: only ending 02 to 00
=========================
Those are ones I figured out directly based on ccovell's Gameshark codes.
Here's an experimental way to maybe disable it in any game:
1.) Get a hex editor that let's you do wildcard searches. I found XVI32, so I'll base the instructions on that.
2.) Open PS1 ISO in XVI32, go to Search, then Count. Search for 'Hex String' "00 E1 FF 3C 00 02" (without quotes), and check "Joker char hex" and put 'FF' for it. ('FF' is acting as a wildcard in this case. Other hex editors with wildcard search support might use asterisks or something else). Click OK and it should search and tell you how many results it found. if it only found 1 result then I'd say chances are higher of things working.
3.) Go to Search, Find, then do the search the same way as you did for Count. This should take you to the first result. Change the last 02 to 00. For example, say it found "00 E1 03 3C 00 02", after you change what it finds it will now be "00 E1 03 3C 00 00". Do Search, 'Find again down' (or hit F3), and it should find the next result (assuming there was more than 1). change the ending 02 on all the results you find. You might be tempted to just use Replace, but when I attempted that with a joker/wildcard it replaced the wildcard portion of each hex string with the wildcard characters too and that's bad .
I tried this on Suikoden II and it removed the dithered checkerboard pattern on the title screen, character portraits, and I think the 3D terrain in battles (though it appears some of the art such as the cliffs in the opening area have some checkboard patterns in them by default). I believe I found 9 results for the hex search on that game.
I did not test this bruteforce method extensively (or more than 20min), so I have no idea if it might break other stuff in the game, work in some games but not others, etc.
Final Notes:
- I'd love for other people to try the bruteforce method on checkerboard dithered games to see if everything works fine
- Does anybody know how to turn these hex edits into patches that won't require a specific dump of the game to work?
EDIT:
Used the brute force method for Strider 2 and only found one instance of the hex string. changed it and it disabled dithering on sprites and probably other stuff too.
Strider 2 (only US confirmed)
Search: 00 E1 03 3C 00 02
Change: only ending 02 to 00
EDIT some more:
Found the world map on Legend of Mana has (didn't notice in anywhere else in the few minutes I played). Did the wildcard search, found one hex string, changed it. (using emulator for quick testing)
Dithered
Not dithered:
So basically I didn't completely understand his tutorial as far as figuring how to turn off dithering in other games he hasn't done yet, but I was able to piece somethings together to make 'patch' versions of his existing Gameshark codes, and a VERY experimental barely tested way to potentially disable it in any game. Here you go:
Open ISO in a hex editor, search for the listed hex string, change specified value, save edited ISO.
You should only find one instance for each search.
Castlevania: Symphony of the Night (US and JP)
Search: 00 E1 03 3C 00 02
Change: only ending 02 to 00
=========================
Castlevania Chronicles (US, maybe JP too)
Search: 00 E1 02 3C 00 02
Change: only ending 02 to 00
Search: 10 00 E1 04 3C 00 02
Change: only ending 02 to 00
Search: 10 00 E1 03 3C 00 02 63 34 02 00 80
Change: 10 00 E1 03 3C 00 00 63 34 02 00 80
=========================
Gradius Gaiden (JP only game)
Search: C3 00 00 E1 02 3C 00 02
Change: only ending 02 to 00
Search: 82 00 00 E1 02 3C 00 02
Change: only ending 02 to 00
Search: 00 E1 03 3C 00 02
Change: only ending 02 to 00
Search: 00 E1 0F 3C 00 02
Change: only ending 02 to 00
=========================
Those are ones I figured out directly based on ccovell's Gameshark codes.
Here's an experimental way to maybe disable it in any game:
1.) Get a hex editor that let's you do wildcard searches. I found XVI32, so I'll base the instructions on that.
2.) Open PS1 ISO in XVI32, go to Search, then Count. Search for 'Hex String' "00 E1 FF 3C 00 02" (without quotes), and check "Joker char hex" and put 'FF' for it. ('FF' is acting as a wildcard in this case. Other hex editors with wildcard search support might use asterisks or something else). Click OK and it should search and tell you how many results it found. if it only found 1 result then I'd say chances are higher of things working.
3.) Go to Search, Find, then do the search the same way as you did for Count. This should take you to the first result. Change the last 02 to 00. For example, say it found "00 E1 03 3C 00 02", after you change what it finds it will now be "00 E1 03 3C 00 00". Do Search, 'Find again down' (or hit F3), and it should find the next result (assuming there was more than 1). change the ending 02 on all the results you find. You might be tempted to just use Replace, but when I attempted that with a joker/wildcard it replaced the wildcard portion of each hex string with the wildcard characters too and that's bad .
I tried this on Suikoden II and it removed the dithered checkerboard pattern on the title screen, character portraits, and I think the 3D terrain in battles (though it appears some of the art such as the cliffs in the opening area have some checkboard patterns in them by default). I believe I found 9 results for the hex search on that game.
I did not test this bruteforce method extensively (or more than 20min), so I have no idea if it might break other stuff in the game, work in some games but not others, etc.
Final Notes:
- I'd love for other people to try the bruteforce method on checkerboard dithered games to see if everything works fine
- Does anybody know how to turn these hex edits into patches that won't require a specific dump of the game to work?
EDIT:
Used the brute force method for Strider 2 and only found one instance of the hex string. changed it and it disabled dithering on sprites and probably other stuff too.
Strider 2 (only US confirmed)
Search: 00 E1 03 3C 00 02
Change: only ending 02 to 00
EDIT some more:
Found the world map on Legend of Mana has (didn't notice in anywhere else in the few minutes I played). Did the wildcard search, found one hex string, changed it. (using emulator for quick testing)
Dithered
Not dithered:
-
cr4zymanz0r
- Posts: 356
- Joined: Sat Oct 19, 2013 6:36 am
Re: Disabling PS1 hardware dithering (better looking 2D)
Haven't ran into an issue yet with my brute force method between me and a friend tinkering with it most of the night, so I found an app called sed and made a little script for it to brute force patch a PS1 game to disable dithering. It's working for me so far with limited testing so maybe it'll help everyone else out too. Readme is in the zip file, but basically you just drag and drop a PS1 ISO onto the batch file. A big shout out to ccovell for his original discovery and subsequent tutorial. I never would've gotten anywhere without that.
https://drive.google.com/open?id=1CT-8m ... 6yP0ckgEUK
EDIT: Minor update to handle folder names with spaces better.
Last edited by cr4zymanz0r on Sun Feb 25, 2018 4:37 pm, edited 1 time in total.
Re: Disabling PS1 hardware dithering (better looking 2D)
I could make such a thing, but it would be entirely user-driven, meaning you have to take your sweet time to find and copy-paste information into it.D wrote:It's 2018, I wish there was kind of stable portal where we could just upload codes/patches so that the work does not have to be done by one person.
I still think a dedicated forum/wiki would be best for this kind of thing, the problem is that there should be a strong and willing user base contributing to it, otherwise it all would be a waste.
Anyway, I already have some stuff on theclassicgamer.net which is the homebase for my own project and some others, I could make a sub domain like wiki.theclassicgamer.net and get a nice wiki on it, but bear in mind that from that point onwards, it's all on you.
Re: Disabling PS1 hardware dithering (better looking 2D)
I get a "The process cannot access the file because it is being used by another process" When trying to use the batch file.
-
cr4zymanz0r
- Posts: 356
- Joined: Sat Oct 19, 2013 6:36 am
Re: Disabling PS1 hardware dithering (better looking 2D)
Sounds like you've still got the ISO open in an emulator or some other program.Star1 wrote:I get a "The process cannot access the file because it is being used by another process" When trying to use the batch file.
Re: Disabling PS1 hardware dithering (better looking 2D)
I don't have any ps1 emulators, and, I can rename the file freely, so it's not being used by another program.
-
cr4zymanz0r
- Posts: 356
- Joined: Sat Oct 19, 2013 6:36 am
Re: Disabling PS1 hardware dithering (better looking 2D)
Tried it with the newer version yet (v0.0.2)? I updated the link above.Star1 wrote:I don't have any ps1 emulators, and, I can rename the file freely, so it's not being used by another program.
Re: Disabling PS1 hardware dithering (better looking 2D)
That did the trick, thanks!
Re: Disabling PS1 hardware dithering (better looking 2D)
Ive been playing with this all afternoon and loving the results, thank you for your findings and efforts!.
It makes me wonder how hard it would be to adapt the program to change the value in dreamcast isos to force vga mode.
https://dreamcast-talk.com/forum/viewtopic.php?t=10386
I've tried this on
Crash Bandicoot collection USA
Tekken 3 USA
THPS USA
When I try to verify the THPS burn i get a miscompare error in imgburn, I'm not sure why it happens with only this title so far.
The dithering is turned off and the game hasn't locked on me yet
W 16:34:44 Miscompare at LBA: 243, Offset: 2072, File: \PSX.EXE
W 16:34:44 Device: 0x6F
W 16:34:44 Image File: 0xB6
W 16:34:44 Total Errors in Sector: 36
W 16:34:44 Note: The drive probably corrected the EDC Area because it's wrong in the image file.
It makes me wonder how hard it would be to adapt the program to change the value in dreamcast isos to force vga mode.
https://dreamcast-talk.com/forum/viewtopic.php?t=10386
I've tried this on
Crash Bandicoot collection USA
Tekken 3 USA
THPS USA
When I try to verify the THPS burn i get a miscompare error in imgburn, I'm not sure why it happens with only this title so far.
The dithering is turned off and the game hasn't locked on me yet
W 16:34:44 Miscompare at LBA: 243, Offset: 2072, File: \PSX.EXE
W 16:34:44 Device: 0x6F
W 16:34:44 Image File: 0xB6
W 16:34:44 Total Errors in Sector: 36
W 16:34:44 Note: The drive probably corrected the EDC Area because it's wrong in the image file.
-
cr4zymanz0r
- Posts: 356
- Joined: Sat Oct 19, 2013 6:36 am
Re: Disabling PS1 hardware dithering (better looking 2D)
If patching DC ISOs to enable VGA mode can be done with basically "find this hex string, now replace it with this hex string", then I don't think it'd be too hard to adapt this tool to do that. I haven't messed with DC ISOs in a while, but I was thinking maybe there are already VGA patcher programs.Syntax wrote:Ive been playing with this all afternoon and loving the results, thank you for your findings and efforts!.
It makes me wonder how hard it would be to adapt the program to change the value in dreamcast isos to force vga mode.
https://dreamcast-talk.com/forum/viewtopic.php?t=10386
I've tried this on
Crash Bandicoot collection USA
Tekken 3 USA
THPS USA
When I try to verify the THPS burn i get a miscompare error in imgburn, I'm not sure why it happens with only this title so far.
The dithering is turned off and the game hasn't locked on me yet
W 16:34:44 Miscompare at LBA: 243, Offset: 2072, File: \PSX.EXE
W 16:34:44 Device: 0x6F
W 16:34:44 Image File: 0xB6
W 16:34:44 Total Errors in Sector: 36
W 16:34:44 Note: The drive probably corrected the EDC Area because it's wrong in the image file.
I am curious what to see what people report for how this helps 3D games (and what 2D games are discovered as needing it disabled). 95% of my testing has been in an emulator for convenience and some stuff like Metal Gear Solid used a lot of dithering, but when I disabled it on that game it made it look horrible with lots of color banding and blotchy-ness.
-
- Posts: 13
- Joined: Tue May 03, 2016 3:36 pm
Re: Disabling PS1 hardware dithering (better looking 2D)
Your patch doesn't do anything for real hardware. Tested with a Japanese Castlevania Chronicle 1.0 ISO, it works with on an emulator but not a real PS1.
-
cr4zymanz0r
- Posts: 356
- Joined: Sat Oct 19, 2013 6:36 am
Re: Disabling PS1 hardware dithering (better looking 2D)
Worked for me on my PS1, though the US version is the only one I tested on the PS1 itself. Also worked on a friend's PS1 as well.eliteshmupper wrote:Your patch doesn't do anything for real hardware. Tested with a Japanese Castlevania Chronicle 1.0 ISO, it works with on an emulator but not a real PS1.