| View previous topic :: View next topic |
| Author |
Message |
jayteemaster
Joined: 06 Apr 2004 Posts: 5
|
Posted: Tue Apr 20, 2004 2:56 am Post subject: PS2 Undocumented GS registers |
|
|
Has anyone some info on this PS2 GS registers:
GS_SMODE1 *((volatile unsigned long *)0x12000010)
GS_SMODE2 *((volatile unsigned long *)0x12000020)
GS_SRFSH *((volatile unsigned long *)0x12000030)
GS_SYNCH1 *((volatile unsigned long *)0x12000040)
GS_SYNCH2 *((volatile unsigned long *)0x12000050)
GS_SYNCV *((volatile unsigned long *)0x12000060)
I know that they are used to set the video mode refresh rate, number of scanlines, vertical and horizontal frequency. But i do not know how to set them. The Bios kernel through function SetGsCrt already does the job but i want to make a custom PAL mode with less scanlines. It seems that there is no info on them
Any info or help is appreciated. |
|
| Back to top |
|
 |
ooPo Site Admin
Joined: 17 Jan 2004 Posts: 2032 Location: Canada
|
Posted: Tue Apr 20, 2004 3:11 am Post subject: |
|
|
The best information I've found on these registers came from the ps2gs.c file in the ps2linux kernel source. Here's a quick link I found with google:
http://www.playstation2-linux.com/viewcvs/viewcvs.cgi/linux/drivers/video/ps2gs.c?rev=1.3&cvsroot=xrhino-kernel&content-type=text/vnd.viewcvs-markup
If you're interested in creating a new video mode I'd suggest sticking very close to the PAL (and maybe NTSC) standard and instead play with the information the output chip is given for each scanline. Manipulation of things like a dot clock can put more information onscreen without resorting to mode/sync trickery.
At the very least, be very careful playing with these registers. At best, if you mess up, you'll create a mode that only works on your display. At worst you could make things explode. :)
Good luck. Let us know how it goes. |
|
| Back to top |
|
 |
dagamer34

Joined: 24 Jan 2004 Posts: 35
|
Posted: Thu Apr 22, 2004 10:34 am Post subject: |
|
|
Exploding things isn't a good thing. :/ _________________ while (your_engine >= my_engine)
my_engine++; :P |
|
| Back to top |
|
 |
|