Forum: Official GS Mode Selector Forum - Discuss GS Mode Selector in this forum.


The above video goes away if you are a member and logged in, so log in now!




 
Would you like to get all the new info from
PSX-Scene in your email each day?




Want to learn more about the team keeping you up to date with the latest scene news?

Read about them now!

Check out our Developer bios, too!

 


User Tag List

Like Tree175Likes

Thread: GS Mode Selector: Development & Feedback
  

Page 1 of 274 1 2 3 11 51 101 ... LastLast
Results 1 to 10 of 2732
  1. #1 GS Mode Selector: Development & Feedback 
    doctorxyz's Avatar
    doctorxyz is offline I'm just a modest sorcerer's apprentice!
    Join Date
    May 2007
    Posts
    1,091
    Downloads
    2
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    7 Thread(s)
    Likes Given
    124
    Likes Received
    205
    DISCLAIMER
    GSM IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT YOUR OWN RISK. THE AUTHORS, WILL NOT BE LIABLE FOR DATA LOSS, DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS OR DAMAGES WHILE USING OR MISUSING THIS SOFTWARE.

    Welcome to the Graphics Synthesizer Mode Selector (aka: GSM) Project

    Don't you have any idea what GSM is about? Please read the next posts (we try consolitate info on them).

    Here you can get GSM public releases (by doctorxyz and dlanor).

    STATUS
    Beta testing stage

    Releases


    GSModeSelector v0.37 (2013.01.20) by doctorxyz
    GUI:
    - 30 predef vmodes, including DTV 576P vmode for older PS2 models and the unpublished DTV 1080P one
    - Skip Videos Fix toggle
    - Optimized Exit options
    - C code housekeeping
    Core:
    - SetGsCrt replacement code for DTV 576P vmode (work even on older PS2 models - made possible by SP193 and reprep)
    - SetGsCrt replacement code for unpublished DTV 1080P vmode (made possible by SP193 and reprep)
    - Remove all breakpoints (even when they are not enabled) whenever SetGsCrt syscall is called, then re-enable GSHandler (GSM Data Address Write Breakpoint)
    - Skip Videos Fix (sceMpegIsEnd) code - basic method by nachbrenner - If enabled, On-The-Fly patcher applies it whenever SetGsCrt syscall is called
    - Added SMODE1, SMODE2, SRFSH, SYNCH1, SYNCH2 and CSR definitions for future features
    - Disabled warning on building time if any statement expands to more than one machine instruction
    - ASM code cosmetics

    GSModeSelector v0.36b (2013.01.16) by doctorxyz
    - GUI can be bootable and relaunchable by FCMB E1 launch keys (due to DeInitGSM, New IOP reboot sequence, simplified Makefile, new Launcher based on uLE v4.42a, ...)

    GSModeSelector v0.36(2011.02.26) by doctorxyz and dlanor (compiled by doctorxyz)
    (This release was prepared by me having in mind both GSM standalone neeeded code improvements and future OPL integration)
    - Simplified OSD: buttons for video modes, SELECT for launch method, PAD for X and Y-axis offset and START to launch
    - In order to avoid gsKit issues, now GSM only is enabled only after selecting video mode, launch method and pressing START
    - Optimized C and ASM source code, many comments were rewritten
    - Fixed the access trap mask method to trap GS registers for all kernel segments
    - Implemented x-axis and y-axis offset inside core for better fine tuning on special cases
    - Always enabled: Automatic adaptation, DISPLAYx fix, SMODE2 fix and SYNCV fix
    - Main routines names changed from ModdedSetGsCrt to Hook_SetGsCrt and from DisplayHandler to GSHandler
    - Improved compatibility: Re-enable GSHandler whenever Hook_SetGsCrt is called
    - Other improvements/adjustment I can't remember for now
    (some releases were skipped intentionally, they are used only on doctorxyz private development/testing)

    -x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-


    GSModeSelector v0.23x(2010.06.30) by doctorxyz and dlanor (compiled by dlanor)
    - Modified the access trap mask to trap GS registers for all kernel segments
    - Modified DisplayHandler to use kseg1 addresses for writing GS registers

    NB: Due to space limitations changes for many versions have been removed.
    NB: Please check the changes.txt file in the latest release for a more extensive changelist

    If you find errors, please report them. Thank you.

    Thanks to all those that contributed (and still contribute) for this project.

    Documentation for GSM cannot be found yet, since we are in a early beta test stage; But we accept astute readers as candidates for this noble task... ;-)

    How to keep youself updated
    We suggest you sign up this thread, just clicking and enabling the "Subscribe to this Thread" (from "Thread Tools" menu).
    Attached Thumbnails Attached Thumbnails gsm037.png   gsm.jpg   gsm036.png  
    Attached Files
    Last edited by doctorxyz; 02-01-2013 at 02:58 PM. Reason: Updated: Now with GSM 0.37 snapshot instead of old GSM 0.36 one
    doctorxyz's PS2 & PS3 stuff: (http://psx-scene.com/forums/f257/doctorxyzs-ps2-ps3-stuff-101348/)
    Reply With Quote  

  2. #2 GSM Icons 
    kevstah2004 is offline Member
    Join Date
    Apr 2008
    Posts
    1,202
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    2
    GSM Memory Card Icons
    (by Jay-Jay Original post http://psx-scene.com/forums/f19/gs-m...tml#post987794)
    "I also wanted to share with you some icons I created for this tool. This way for those that have a GSM folder in the root of their memory card and it shows a Corrupt Folder in their Memory Card browser (when you see all your game saves), then you need to copy two files into that folder so it doesn't show corrupt folder anymore.

    I know many of you might keep GSM.ELF in other possible directories, like BOOT folder, or USB thumb drive and etc. If you have it this way, then you really don't need the icons, and I would definitely not encourage you do so, since perhaps the BOOT folder or other folders may have already icons (in case you bundle all your ELFs into one folder).

    So before copying them over, make sure there aren't any other files named the same way that will overwrite them. OK? Hopefully that makes sense.

    The two icons are: (download attachment below)

    icon.icn
    icon.sys


    Here is how the Memory Card Browser will now show the icon:

    Attachment 36732
    Grab the attachment below:"
    Attached Files
    Last edited by doctorxyz; 07-30-2012 at 07:34 AM. Reason: Jay-Jay's contribution
    Reply With Quote  

  3. #3 Miscelaneous info 
    doctorxyz's Avatar
    doctorxyz is offline I'm just a modest sorcerer's apprentice!
    Join Date
    May 2007
    Posts
    1,091
    Downloads
    2
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    7 Thread(s)
    Likes Given
    124
    Likes Received
    205
    GOAL
    GSM intends to make on-the-fly conversion from the original graphic mode of PS2 game (or application) choosen by user, to the ones he/she wants to force.

    One of benefits of using GSM is have a progressive scan output for a game originally designed to use interlace output. Or have a VGA output in your CRT/LCD Monitor for your preferred games. It seems great, isn't ii?

    Well, GSM just makes a simple upscaling. It doesn't making interpolation (i.e. it doesn't add extra pixels / lines). So it doesn't increase the internal(=original=source) resolution, only the output (=forced=target) one.

    So, there is no miracle here... The greater the quality of source (original) resolution of the game, the better will be the results that will be displayed on target (forced) resolutions - specially on the higher ones, where the images naturally tend to be pixelized. BTW, see "List of games using your PS2 to the maximum" topic below.

    CONVERSION EXAMPLES
    Typically from...
    PAL 640 x 512 interlaced (even/odd fields or framed) mode (50Hz)
    ...or...
    NTSC 640 x 448 interlaced (even/odd fields or framed) mode (60Hz)
    ...to:
    - HDTV 720x480 progressive mode (60Hz) *
    - HDTV 720 x 576 progressive mode (50Hz) *
    - HDTV 1280 x 720 progressive mode (60Hz) *
    - HDTV 1920 x 1080 interlaced mode (60Hz) *
    - VGA(VESA) 640 x 480 (60/72/75/85 Hz) **
    - VGA(VESA) 800 x 600 (56/60/72/75/85 Hz) **
    - VGA(VESA) 1280 x 1024 (60/75 Hz)**

    * Via Component cable
    ** Via VGA cable (or adaptor connected to Component cable)

    REQUIREMENTS
    1. ELF Launch method:
    a) Modchip with DEV1(DEVolution mode #1) option, that allows ELF booting from mc0 (mc0:/BOOT/BOOT.ELF)
    b) uLE (Unofficial Launch Elf) and/or FCMB (Free Memory Card Boot)software, which allows ELF execution from many devices (mc, mass, hdd, cd, dvd, ...)
    c) Bootable PS2 CD, you can do it putting the ELF file into a ISO image built by CDGENPS2 (CDGenPS2 - Playstation 2 Utility in Development Category - Zophar's Domain)
    2. TV/Monitor
    This requirement here depends on your purposes when using GSM, for instance:
    - A ordinary interlaced SD (Standard Definition) TV set, to force PAL or NTSC modes
    - A PS (Progressive Scan) SD (Standard Definition) TV set, to force progressive modes
    - A CRT/LCD Monitor set with SoG (Sync-on-Green) feature, to force VGA modes
    - A LCD/Plasma HD (High Definition) TV set, to force HDTV modes
    3. Cable/Connection
    This requirement here depends on the previous one, for instance:
    A/V Connection between console and TV/Monitor
    - Console -> Composite cable -> TV
    - Console -> Component cable -> TV
    - Console -> Component cable -> Monitor
    - Console -> Component cable -> (homemade or manufactured) VGA Adaptor -> Monitor
    - Console -> Component cable -> (homemade or manufactured) VGA Adaptor -> TV
    - Console -> (homemade or manufactured) VGA cable -> Monitor
    - Console -> (homemade or manufactured) VGA cable -> TV

    HOW TO USE IT
    - Unzip GS Mode Selector "GSM.ELF" from zip file attached here
    - Take all measures needed to boot it on your console
    - Run it!
    - Follow the GSM OSD instructions in order to choice and set your preferred mode using the joypad buttons
    - Start PS2 Browser (and consequently title, FCMB or ESR according to your console settings) or HDLoader
    - Enjoy!

    Please Note!
    - GSM can not be auto-launched from FMCB, it will black screen, if you want to auto launch it please configure FMCB to auto boot separate uLE instance, then uLE to auto GSM, then GSM to auto change to saved mode, and boot to PS2 browser.
    (Link to files already configured to do this from USB here) (GS Mode Selector: Development & Feedback)

    GSM Compatibility List for PS1/PS2 Titles
    This is a contribution originally made from DarkCrono666, and after some time Gedankenschild take over of it.
    So please help him on this task, filling the form with your test results.

    PUT YOUR TEST FEEDBACK HERE
    Here you can fill your test results:
    https://spreadsheets.google.com/spre...N3A2RFJfLXc6MQ
    (Gedankenschild is taking care of this form)

    GSM COMPATIBILITY LIST
    Whenever needed and possible, the PS2 GSM Compatibility list will be updated by Gedankenschild with your contributions.

    PS2 Titles
    https://spreadsheets.google.com/spre...pYX3c&hl=en_US
    (Gedankenschild is taking care of this spreadsheet)

    PS1 Titles
    http://spreadsheets.google.com/ccc?k...saG9xcmc&hl=en
    (DarkCrono666 apparently stopped to take care of this spreadsheet)

    Similar Software
    - Blaze VGA and Xploder HDTV Player (from Blaze). The GUI from these programs gives an idea what is possible to do with GS Modes. You can also read the latest Xploder HDTV Player Press to learn about the concepts being explored by GSM (Xploder PS2 HDTV Player Update - Gear News at IGN)
    - PS2 Zone Loader (from unknown author - Source code shared by Fusion). The PNSelector and yPosHanlder functions has the essential C & MIPS code needed to force an specific GS Mode. You can find CD/DVD/Source Code from PS2 Zone - Loader into SKS Apps site, just browser here (SKS Apps - Exploit Systems - Wii Ps3 Ps2 Apps - Homebrew Game Downloads) for "Zoneloader" ;-)
    - ps2force480p (from asmodean - source code share by him). Specific GS HDTV480p Mode and DY field patch for specific ISO and ELF files from games.

    Native HD (High Definition) / PS(Progressive Scan) support on some titles
    "Generally, progressive scan mode is activated by holding the Triangle and Cross, or "X," buttons down after the PlayStation 2 logo appears."
    Source: "List of PlayStation 2 games with HD support" List of PlayStation 2 games with HD support - Wikipedia, the free encyclopedia

    List of games using your PS2 to the maximum
    If a title was originally designed with a good built-in resolution (i.e., the real one, in terms of width and heigth), we will get better results when forcing to a target higher resolution vmode (HDTV-1080i@60Hz, for instance)...!
    - Original Article, in Portuguese (http://psw.terra.com.br/modules/noti...0&cat=1&sec=10)
    - Translated Article, in English (Google Tradutor)
    - Original List, in Portuguese (http://www.digerati.com.br/tabela.pdf)
    - Translated List, in English (Google Tradutor)

    Some Words (by doctorxyz)
    - GSM is just a cool hobby for me (and nothing more than this).
    - For all English native speakers, my apologizes in advance since English is a foreign language for me
    - For the masters of PSX-Scene: I am not so skilled as I would like to be... Anyway, I am doing my best
    - I see myself only as a very limited “sorcerer's apprentice”... Humble is appreciated here
    - I have a restricted agenda for this cool project due to obvious personal and professional reasons
    - Feel free to help us with your suggestions and comments (here and by PM)
    - This project is not only mine, it is OURS!
    - At last... What really matters here is conclude this project successfully!

    Some of History (by doctorxyz)
    The original name of this thread was "Customized HDLoader to boot games on VGA Mode". The doctorxyz original goal was just to play his preferred Playstation 2 game (GT4 - Gran Turismo 4) installed on HDLoader on his LCD Monitor through VGA Cable and with the best vmode (video mode) settings I could obtain from GS (Graphics Synthesizer).

    After some work he made a VGA Mode patch for HDLoader's Splash and Main screens. But only for that... Not for games started by it (For them, he was getting only BSOD).

    Then he realised that into PS2ZoneLoader app (source code shared by fusion), there were two functions there, called MySetGsCrt(in C Language) and yposHandler (MIPS ASM Language), responsible for PS2ZoneLoader's PNSelector (PAL/NTSC Selector) feature.

    Together with this, after release this thread he perceived that other PSX-Sceners needs could take us to a generic patch app for all video modes for all PS2 console versions that work with many cables/connections and SD/HD TVs and LCD/CRT monitors sets as possible.

    So turn this idea into reality would a really nice app not only for him, but also for many PSX-Sceners.

    Maybe doctorxyz be good on researching and ideas, but not so good on coding (due to time and skill restrictions).

    Some months after this thread start, dlanor, an experienced PSX-Scener, join us, sharing his own ideas and opinions; his contributions has been a giant leap to the progress of this thread, in terms of quality and speed, that this thread deserves; this is the reason doctorxyz named dlanor as the project head.
    Last edited by doctorxyz; 07-26-2011 at 07:28 AM. Reason: Compability List stuff: updated
    SILENT_Pavel and EgyptBeast like this.
    Reply With Quote  

  4. #4 SetGsCrt and GT4 
    kevstah2004 is offline Member
    Join Date
    Apr 2008
    Posts
    1,202
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    2
    Syscall (System BIOS Call) id 0x02 - SetGsCrt
    This syscall is used to reset the GS and set a video mode from a list of pre-defined modes. Other modes can be set manually via registers, but its safer to use these modes.

    Sintax
    void SetGsCrt(Interlace, Mode, FFMD);

    Args:
    Interlace
    0x00: Non-interlaced (also known as Progressive)
    0x01: Interlaced

    Mode
    Code, Description and Vertical Frequency
    0x02: NTSC @ 59.940Hz
    0x03: PAL @ 50.000Hz

    0x50: HDTV-480P @ 59.940Hz
    0x53: HDTV-576P @ 50.000Hz

    FFMD (Frame or Field MoDe)
    0x00: Field mode. (Read Every Other Line)
    0x01: Frame mode. (Read Every Line)

    -x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-

    The "natural" interlaced Modes NTSC(0x02) or PAL(0x03), would be "legal" to not only with Interlaced (1) and Field (1) FFMD parameters, but also with Frame (0) FFMD parameter:

    NTSC or PAL
    SetGsCrt settings:
    Interlaced = 1 (Interlaced)
    Mode = NTSC or PAL
    FFMD = Field (the odd image rows are sent to even field first, then the even image rows are sent to odd field, completing the frame and therefore the interlaced image)
    Example: PS2 OSD, GT4 Splash Screen, the vast majority of games - Sonic Unleashed for instance (see attached snapshots)

    NTSC or PAL 'Non Interlaced'
    SetGsCrt settings:
    Interlaced = 1 (Interlaced)
    Mode = NTSC or PAL
    FFMD = Frame (Same image is sent twice in even and odd fields)
    Example: PS2 OSD, The vast majority of GT4 (see attached snapshots)

    So, for the common-sense, it would be ok these:
    SetGsCrt(1,0x02,0) -> Typical NTSC Interlaced with Field Mode, typically has an native resolution of 640x448 pixels
    SetGsCrt(1,0x03,0) -> Typical PAL Typical NTSC Interlaced with Field Mode, typically has an native resolution of 640x512 pixels

    But in fact, it is also possible to do this:
    SetGsCrt(1,0x02,1) -> Non-typical NTSC (but still "legal") Interlaced with Frame Mode, typically has an native resolution of 640x224 pixels (doubled in height)
    SetGsCrt(1,0x03,1) -> Non-typical PAL (but still "legal") Interlaced with Frame Mode, typically has an native resolution of 640x256 pixels (doubled in height)

    -x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-

    The both Interlace and FFMD SetGsCrt args passed along to the SetGsCrt syscall does NOT cause any indication of progressive mode on the TV, so true progressive/interlace switching is not available through either of those two SetGsCrt args.

    The real switch from interlace to progressive mode can only be made by switching the main Mode SetGsCrt argument to 0x50(HDTV-480P) and 0x53(HDTV-576P), since this middle argument is the only one that really affects the physical sync timing.

    -x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-

    GT4 (Gran Turismo 4)
    This Polyphony Digital's blockbuster was made by its team with ALL official documentation and technical support from Sony and has 3 (three) in-game video modes: 480i, 480p and 1080i.

    But the "1080i" hasn't an internal resolution of 1920x1080.

    In fact, the "1080i" has 640x512, magnified (zoomed) by MAGH and MAGV to 1920x1024:
    640 pixels zoomed by a MAGH value of 3 = 1920 pixels in horizontal
    512 pixels zoomed by a MAGV value of 2 = 1024 pixels in vertical

    Screenshots I made some time ago using PCSX2 emulator v0.9.7 (F8 key takes BMP snapshots, which are stored on snaps folder):

    NTSC Interlaced Splash Screen (640x448)
    Attachment 26164

    NTSC Non-Interlaced Intro Movie (640x224)
    Attachment 26165

    Attachment 26166

    Attachment 26167

    Attachment 26168

    Attachment 26169

    Attachment 26170

    Attachment 26171

    NTSC Non-Interlaced Gameplay (640x224)
    Attachment 26172

    HDTV480p Gameplay (640x448)
    Attachment 26173

    Snapshots originally posted here: http://psx-scene.com/forums/f19/gs-m...tml#post768655

    Maybe this can be an useful reading for you too:
    "Gran Turismo 4 1080i looks bad"
    (Gran Turismo 4 1080i looks bad | PlayStation® Community Forums)
    Last edited by doctorxyz; 07-30-2012 at 11:05 AM. Reason: Precious info
    Reply With Quote  

  5. #5 Vga cables/adaptors 
    doctorxyz's Avatar
    doctorxyz is offline I'm just a modest sorcerer's apprentice!
    Join Date
    May 2007
    Posts
    1,091
    Downloads
    2
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    7 Thread(s)
    Likes Given
    124
    Likes Received
    205
    VGA CABLES/ADAPTORS
    There are some options to get your VGA cable or adaptor. This naturally depends on your personal choices (buy a pre-made or make it yourself), and your display device type as well (look for technical specs on its user manual, contact manufacturer or make some reasearch on Internet) .

    1. For SoG display devices
    1.1. Pre-made
    Quote Originally Posted by urbigbro View Post
    Here is the cheapest pre-made way to connect your PS2 component cable to a VGA adapter (~$5 US). The other methods are just for providing multiple outs to hook both a SOG monitor and HDTV without having to swap cables all the time.

    If you can be sure that your TV supports sync on green, I recommend a component->VGA adapter, hooked up to the PS2 component cable. They only cost about $3 US at monoprice for a 6 footer. They also have longer and shorter sizes. They ship internationally, but I have no idea the shipping costs.
    *None of these cables/switches have a chip to strip the sync signal from the green cable, so they will not work on non-SOG display devices.

    http://www.monoprice.com/products/pr...seq=1&format=2

    You'll also need a RCA female to female coupler. $.57 at monoprice.

    http://www.monoprice.com/products/pr...seq=1&format=2

    If your Monitor doesn't have a VGA cable that can be removed from the back, then you'll also need a VGA female-female gender changer.

    http://www.monoprice.com/products/pr...seq=1&format=2


    This is the cheapest non-homebrew way I know to do this.

    Alternatively you could run the PS2 to a VGA splitter box, so you don't have to physically switch cables all the time. Then use the component->VGA adapters on the output of the box to the component in and a regular VGA cable to the VGA input of the TV. $18 plus $3 for another component->VGA cable.

    http://www.monoprice.com/products/pr...seq=1&format=2

    For even more flexibility you could use a VGA matrix box, to let you control each input-output independently. eg. two signals from two sources on two displays. I have used the 4x4 Matrix box in a 3 projector installation and run a computer and DVD in 480i over 100 feet, so I know they work well with interlaced and progressive signals.$28

    http://www.monoprice.com/products/pr...seq=1&format=2

    If you want to risk signal degradation you can also use a non-powered splitter, which I don't recommend. $8

    http://www.monoprice.com/products/pr...seq=1&format=2

    Some LCDs also accept VGA, or component signals through the DVI connector, thought this is not common in my experience. My HP 2335 LCD does this.

    So to summarize, the cheapest non-homemade/homebrew ways to get your PS2 component cable to connect to your VGA SOG display device are specifically:

    VGA male to 3x RCA female (harder to find, and only work if your monitor has removable VGA cable, VGA female-female gender changer required if non-removeable)


    VGA male to 3x RCA male with 3x RCA female to female coupler/gender changer (easiest to find, still only work if your monitor has removable VGA cable, VGA female-female gender changer required if non-removeable)



    Picture of female-female VGA gender changer.


    In a perfect world you could buy a VGA female to 3x RCA female to hook straight from your PS2 component cable to VGA cable without gender changers needed, but alas, I have not seen one commercially available.
    1.2. Homemade (DIY - Do It Yourself)!
    Quote Originally Posted by urbigbro View Post
    The only way is homebrew as seen in pic below. See this guy's site for more info.
    http://skygate.bravehost.com/PS2_VGA_cable.html
    2. For non-SoG display devices
    2.1. Pre-made
    (WAITING FOR PSX-SCENERS CONTRIBUTIONS TO PUT A USEFUL AND CONDENSED TEXT HERE)
    2.2. Homemade (DIY - Do It Yourself)!
    I found an interestant and updated schematics on "Recommendation for a PS2 vga box" thread, from shoryuken forums (http://forums.shoryuken.com/showthread.php?t=159035).
    2009.10.20 -> Today I receive from Gilbert thanks Gilb!) an updated and fixed version shared by him. Of course, I uploaded it here, too! ;-)
    2009.10.27 -> IN PROGRESS: Improvements by Gilbert and katananja. After I receive their feedback (and ASAP) I will update this 3rd. post.
    USE THIS-->2010.01.07 -> Improvements by Katananja and Gilbert concluded (see the "PS2 VGA Diagram Rev by GillBert_rev2.pdf" file and latest photos attached here) ;-) Thanks for both!!!
    2010.01.11 -> Capacitors' voltage for the "PS2 VGA Diagram Rev by GillBert_rev2.pdf" (by Katananja):
    - C1, C2, C3 = 25V
    - C5, C10, C11, C12 = 16V
    2010.05.18 -> Note about 220 uf caps on non-SoG display devices
    Despite of the official PS2 Linux VGA cable has not capacitors on it, there are some circumstances where 220 uf caps are neeed on each RGB signal; the reason is clarified by reading these old Gradius' posts (found by Albino I2hino):
    Quote Originally Posted by Gradius View Post
    if your monitor support 0.7V you don't need the caps at all, it's useless. You can even cut the monitor life because of that, if you don't know.
    Quote Originally Posted by Gradius View Post
    this one is only applicable for 1.0V video level monitors only.
    Moderns VGA monitors can do both, 1.0V and 0.7V. If you setup our monitor to 0.7V you'll see the right levels. My old Samsung 753DFX can do both, so I didn't mind with these caps at all.
    2010.08.11 -> Thanks Rotosound_rb666 for tolding me (in fact, remembering me :-} about your cool project... Here is for those interested on it! ;-)

    2.3. Homemade (DIY - Do It Yourself)!
    D-SUB VGA Port Case Mod
    Quote Originally Posted by Rotosound_rb666 View Post
    I got it fitted on the right hand side, under the "ledge". Added RCA audio jacks, with. I did the "anti-sony-sog" (synch on green) mod with an LM1881 chip, this is basicly now a built in "Blaze"/Xploder adaptor, software driven. It works, and made more sense that making a cable adaptor, since I just tapped to the board where the a/v out port is monted, there was a convienient 5v source there to power the LM1881.
    I t works, and only cost a few bucks to make. $5 in parts, roughly.
    Source: D-SUB VGA Port Case Mod, by Rotosound_rb666 (http://psx-scene.com/forums/f79/d-sub-vga-port-case-mod-61745/)
    Attached Thumbnails Attached Thumbnails ps2-vga-diagram-rev-gillbert.jpg   ps2-vga-diagram-rev-gillbert_rev2_ps2vga01.jpg   ps2-vga-diagram-rev-gillbert_rev2_ps2vga02.jpg   ps2-vga-diagram-rev-gillbert_rev2_ps2vga03.jpg   ps2-vga-diagram-rev-gillbert_rev2_ps2vga04.jpg  

    ps2-vga-diagram-rev-gillbert_rev2_ps2vga05.jpg  
    Attached Files
    Last edited by doctorxyz; 08-11-2010 at 04:47 PM. Reason: Added: D-SUB VGA Port Case Mod, by Rotosound_rb666
    SILENT_Pavel likes this.
    Reply With Quote  

  6. #6  
    doctorxyz's Avatar
    doctorxyz is offline I'm just a modest sorcerer's apprentice!
    Join Date
    May 2007
    Posts
    1,091
    Downloads
    2
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    7 Thread(s)
    Likes Given
    124
    Likes Received
    205
    ===>SOME VIDEO ACRONYMS<===
    The text which follows is just a simplification from the original one, "Video Displays and the PS3" (http://www.ocmodshop.com/ocmodshop.aspx?a=1118&p=2912). I tried to keep only the things related and useful for GSM project.

    I select some images in order to clarify the things for us; BTW (By The Way), the images' credits are:
    interlace10hzot7.gif and {42BADE8B-268D-41BF-B1F5-BDCD64B16C07}_resolutionTable-410.jpg (http://www.tecnologiahechapalabra.co...ulo.asp?i=3920)
    interlaced.gif ([url]http://www.montest.com/mon-app2.html/[url])
    interlaced.jpg (http://www.ocmodshop.com/ocmodshop.aspx?a=1118&p=2912)
    hdtv_001.png (missed link)
    framefields.gif (http://neuron2.net/LVG/interlacing.html)
    Scanlines.jpg, adaptation from Varrimentos.jpg (missed link)
    interlce.jpg and double.jpg (http://www.inlineinc.com/tech/notes/image/interlce.jpg)
    INTERLAC.GIF (http://img.zdnet.com/techDirectory/INTERLAC.GIF)
    800px-Common_Video_Resolutions_2.svg.png (http://upload.wikimedia.org/wikipedi...olutions_2.svg)

    SDTV
    Stands for "Standard Definition Television" and it refers to legacy TV standards. There were three competing SDTV standards: NTSC (used in most of the Americas and in some places in Asia), SECAM (used in France, Russia, and former colonies of both), and PAL (used just about everywhere else in the world).

    NTSC
    Stands for "National Television Standard Committee" and is the original television standard. NTSC ran at a resolution of 640x480 interlaced pixels with a refresh rate of 60 Hz. Originally NTSC only supported black and white images, but color support was later retro-fitted into the standard.

    PAL
    Stands for "Phase Altering Line" and was created after color support was added to the NTSC standard. PAL ran at a resolution of 640x576 interlaced pixels with a refresh rate of 50 Hz, and its main advantage over NTSC was the tint of the picture never needed to be adjusted.

    Interlaced Video
    In order to conserve bandwidth over a limited-bandwidth connection, an interlaced video scheme sends two images containing a single frame of video to the display, one after the other, with one image containing half of the vertical lines of video, and the second image containing the other half. The display then puts them back together before displaying the full frame. Although this reduces the bandwidth used, the picture is not as good, because sometimes the frames come out of sync, giving the picture noticeable video artifacting. (PS2 owners know the effect as "the jaggies".) The maximum frame rate of interlaced video is 60 frames/second.

    Progressive Scan Video
    This schemes send a single image containing the frame to the display. It takes twice the bandwidth of interlaced video, but the image is much sharper and does not suffer from any artifacts brought about by interlacing frames. The maximum frame rate of progressive scan video is 30 frames/second.

    4:3
    This is the standard aspect ratio used by NTSC TV, and is also the standard aspect ratio on non-widescreen computer monitors. (An aspect ratio refers to the number of number of horizontal pixels per vertical pixel.)

    16:9
    This is the most common widescreen aspect ratio used in HDTV sets. (Most widescreen computer monitors are actually 16:10; see below for details.) Most of the time, when a game or DVD says it supports "widescreen", it really means 16:9 support.

    16:10
    This is the second most common widescreen aspect ratio. It is very rarely seen on TV sets, but is very common in widescreen computer monitors, mainly because 16:10 resolutions are more backward-compatible with 4:3 aspect content. Many 16:10 displays support letterboxing 16:9 video so it doesn't look stretched.

    XXXXi/p
    This refers to the resolution of the picture. The XXXX refers to the number of vertical lines in the picture, while "i" stands for interlaced and "p" stands for progressive scan. Typical resolutions are 480i/p, 576i/p, 720i/p, and 1080i/p.

    CRT
    Stands for "Cathode Ray Tube" and is the original TV display technology. CRT technology is time-tested and cheap, but CRT-based TV sets are big and heavy, susceptible to radio interference, and their image quality tends to degrade over time. CRTs are also susceptible to permanent burn-in, which occurs when an image is displayed on the monitor for long periods of time, causing a "ghost" of that image to be permanently burned into the screen.

    LCD
    Stands for "Liquid Crystal Display" and is the original alternative to the CRT for displaying images on a screen. LCDs were once expensive, but their prices have dropped dramatically, and their capabilities have increased equally dramatically, since they were introduced in the 1970s. LCDs are digital, and although they are susceptible to burn-in, the burn-in is temporary and will go away shortly after it occurs. The problem with LCDs is they cannot display the color black correctly.

    Plasma
    This TVs are similar to LCDs, except that they are far better at displaying black and other dark colors, with the main trade-off being that they are more expensive and susceptible to permanent burn-in.

    -x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-

    ===>VIDEO CABLES<===
    The following text is just a simplification from the original one, "Video Displays and the PS3" (http://www.ocmodshop.com/ocmodshop.aspx?a=1118&p=2912). I tried to keep only the things related and useful for GSM project.

    Component (Y/Pr/Pb)
    Supported Resolutions: 480i/p, 576i/p, 720i/p, 1080i/p
    (support varies by display; not all displays support
    720i/p or 1080p)
    Supported Audio Types: Mono, Stereo, DPL1, DPL2
    Picture Quality: Great

    Component video is a big step up over S-Video, since it separates the chroma into two separate video color components - luma (Y), the difference between blue and luma (Pb), and the difference between red and luma (Pr) - and provides a big bandwidth boost for one of the sharpest-looking analog video types around. In addition, component video supports multiple resolutions as well as progressive scan video. Its biggest problem is it only synchronizes vertically with the display, so the horizontal aspect ratio of the picture has to be set on the display (unless you don't mind the compressed or stretched picture).

    Component (Y/Pb/Pr) video ports are universal on HDTV sets. Also, a handful of computer monitors have component video ports, usually in addition to VGA or DVI ports.

    SCART
    Supported Resolutions: Varies
    Supported Audio Types: Mono, Stereo, DPL1, DPL2
    Picture Quality: Varies

    SCART is a European standard for analog video that originated in France, and is rarely spotted outside Europe. A SCART connection can carry either Composite, S-Video, or Component video, so the quality really depends on what the display supports.

    IMPORTANT: DVD and Blu-ray playback may not be possible on SCART connections because SCART traditionally defeats the Macrovision encoding of video signals intended to defeat casual piracy.

    VGA (RGBHV)
    Supported Resolutions: 480p, 576p, 720p, 1080p (support varies by display)
    Supported Audio Types: Mono, Stereo, DPL1, DPL2
    Picture Quality: Excellent

    VGA stands for "Video Graphics Array" and is a slight step up from component video. It is very common on computer monitors, and is present on some HDTV sets as well. Like component video, VGA splits the video signal into separate components. Unlike component video, VGA uses only a single video cable, it supports both vertical and horizontal synchronization (so the user doesn't have to manually adjust the monitor's aspect ratio), and it only supports progressive scan signals.

    VGA ports are sometimes identified as "RGB" on some displays.

    Sony once made an official VGA cable for the PS2, but it was only bundled with the Linux Kit, it only supported monitors that supported "sync on green" synchronization (the majority of which are, surprise surprise, Sony monitors), and it only really worked with Linux (it unofficially worked with other games that supported progressive scan). Most "VGA boxes" for the PlayStation consoles are nothing more than upscan converters, that take S-Video or some other video type, and convert it to VGA. Blaze Gear was the only company that made a true VGA cable for the PS2 that actually worked.

    PLEASE HELP ME TO PUT VGA HOMEBREW CABLES AND ADAPTOR SCHEMATICS AND EXPLANATIONS ON THIS POST (ALREADY PUBLISHED SOME PAGES AHEAD) IN A ORGANISED WAY IN ORDER TO HELP OTHER PSX-SCENERS INTERESTED IN DIY (DO IT YOURSELF). IT WOULD BE GREAT FOR THEM, FIND THE BASIC INFORMATION IN A SINGLE POST! TKS IN ADVANCE
    Attached Thumbnails Attached Thumbnails hdtv_001.png   800px-common_video_resolutions_2.svg.png   interlac.gif   framefields.gif   interlaced.jpg  

    interlce.jpg   scanlines.jpg   interlace10hzot7.gif   %7B42bade8b-268d-41bf-b1f5-bdcd64b16c07%7D_resolutiontable-410.jpg   interlaced.gif  

    double.jpg  
    Last edited by doctorxyz; 10-16-2009 at 01:37 AM. Reason: More images, better explanations
    SILENT_Pavel likes this.
    Reply With Quote  

  7. #7 GS Registers being trapped by GSM 
    doctorxyz's Avatar
    doctorxyz is offline I'm just a modest sorcerer's apprentice!
    Join Date
    May 2007
    Posts
    1,091
    Downloads
    2
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    7 Thread(s)
    Likes Given
    124
    Likes Received
    205
    GS Registers being trapped by GSM
    They are: SMODE2, DISPLAY1, DISPLAY2 and SYNCV.

    We are using:
    - SMODE2, DISPLAY1 and DISPLAY2 GS Registers (and inherent bitfields) as the variables to control screen size and scale.
    - SYNCV to adjust vertical synchronization.

    SMODE2
    This register should be updated whenever a new vmode takes place; It is responsible to define how the data from the framebuffer will be read; there are 3 different bitfields into it:
    Code:
    .----.---.---------.-----------------------------------.
    |Name|Pos|Format   |Contents                           |
    +----+---+---------+-----------------------------------|
    |INT | 0 |int 0:1:0|Interlace Mode Setting             |
    |    |   |         |0 Non-Interlace Mode               |
    |    |   |         |1 Interlace Mode                   |
    |FFMD| 1 |int 0:1:0|Setting in Interlace Mode          |
    |    |   |         |0 FIELD Mode(Read every other line)|
    |    |   |         |1 FRAME Mode(Read every line)      |
    |DPMS|3:2|int 0:2:0|VESA DPMS Mode Setting             |
    |    |   |         |00 On          10 Suspend          |
    |    |   |         |01 Stand-by    11 Off              |
    ^----^---^---------^-----------------------------------'
    DISPLAYx
    DISPLAYx (i.e., DISPLAY1 and DISPLAY2) registers should be updated whenever a new vmode takes place; It is responsible to define screen size and scale; there are 6 different bitfields into each of them:
    Code:
    .--------.-------.---------------.---------------------------------------.-------.
    | Name   | Pos.  | Format        | Contents                              | Mask  |
    |--------+-------+---------------+---------------------------------------+-------+
    | DX     | 11:0  | int 0:12:0    | x pos in display area (VCK units)     | 0xFFF |
    | DY     | 22:12 | int 0:11:0    | y pos in display area (raster units)  | 0x7FF |
    | MAGH   | 26:23 | int 0: 4:0    | magnification in horizontal direction | 0xF   |
    | MAGV   | 28:27 | int 0: 2:0    | magnification in vertical direction   | 0x3   |
    | DW     | 43:32 | int 0:12:0    | display area width - 1 (VCK units)    | 0xFFF |
    | DH     | 54:44 | int 0:11:0    | display area height - 1 (pixel units) | 0x7FF |
    '--------^-------^---------------^---------------------------------------^-------^
    - DX and DY control the screen positioning offset in physical units (not pixels)
    - MAGH and MAGV define the relationship between physical units and pixels
    - DW and [B]DH/[B] define the size of the visible screen sections in physical units (not pixels)
    - The physical units are the VCK clock for horizontal axis and raster lines for the vertical axis


    Diagram displaying the relationship among DISPLAY1/DISPLAY 2 GS Registers fields DX, DY, DW, DH, MAGH and MAGV
    Source: DarkCrono666 (art), doctorxyz (inputs)

    "Those six values are the component bit fields that together comprise the contents of a DISPLAYx register. Those are two of the main registers we patch to achieve proper scaling and centering of enforced GSM vmodes.
    Into GSM, MAGH and MAGV are never directly controlled by the user, but are automatically adjusted for best possible rendering of a 'requested' vmode (requested by game or other software) into the physical vmode enforced by GSM (as specified by the user in the GUI).
    DW and DH define the width and height of the physical vmode, with the units being HLines for the vertical axis and VCK clock periods for the horizontal axis. This relates to pixels by the following equations:
    Width_in_pixels = (DW+1)/(MAGH+1);
    Height_in_pixels = (DH+1)/(MAGV+1);
    DX and DY define the physical offset of the top left screen corner, using similar units as DW and DH.
    DX,DY are primarily used for screen centering, but due to the automatic adjustments of GSM the relationship between enforced and requested DW, DH pairs also has a very strong influence on the effective borders, though their influence is always symmetrical around the screen center."
    Source: dlanor (http://www.psx-scene.com/forums/show...&postcount=672)


    SYNCV
    This is an undocumented GS Register that is pached for some vmodes which require it, using "magic numbers"; there are 6 different bitfields into it:
    Code:
    .--------.-------.---------------.----------------------------------.
    | Name   | Pos.  | Format        | Contents                         |
    |--------+-------+---------------+----------------------------------|
    | VFP    |  9:0  | int 0:10:0    | Vertical Front Porchinterval     |
    | VFPE   | 19:10 | int 0:10:0    | Vertical Front Porchinterval End |
    | VBP    | 31:20 | int 0:12:0    | Vertical Back Porchinterval      |
    | VBPE   | 41:32 | int 0:12:0    | Vertical Back Porchinterval End  |
    | VDP    | 52:42 | int 0:11:0    | Vertical Differential Phase      |
    | VS     | 63:53 | int 0:11:0    | Vertical Synchronization         |
    '--------^-------^---------------^----------------------------------'
    "Vertical synchronization (v-sync, v-synch, vbl-sync, vbl-synch) refers generally to the synchronization of frame changes with the vertical blanking interval. Since CRTs were nearly the only common video display technology prior to the widespread adoption of LCDs, the frame buffers in computer graphics hardware are designed to match the CRT characteristic of drawing images from the top down a line at a time by replacing the data of the previous frame in the buffer with that of the next frame in a similar fashion. If the frame buffer is updated with a new image while the image is being transmitted to the display, the frame buffer gives it the current mishmash of both frames, producing a page tearing artifact partway down the image.
    Vertical synchronization eliminates this by timing frame buffer fills to coincide with the vertical blanking interval, thus ensuring that only whole frames are seen on-screen.
    Sophisticated software such as computer games and CAD packages often allow vertical synchronization as an option, because it delays the image update until the vertical blanking interval. This produces a small penalty in performance, which can be enough to reduce a program's frame rate below the refresh rate of the monitor on computationally strained systems.
    VSYNC is also the name of the signal indicating this frame change in analog RGB component video."
    Source: "Vertical synchronization" (Analog television - Wikipedia, the free encyclopedia)

    I hadn't further details about it, but after reading...

    "each of the vertical scanning periods is defined by a vertical synchronization signal SYNCV having a constant cycle. Each of the vertical scanning periods is comprised of a pulse width interval of the verticalsynchronization signal SYNCV, a back porch interval BPV, a vertical active interval ACTV, and a front porch interval FPV. In the vertical active interval ACTV of these, an image is actually displayed vertically on the screen, while the back porchinterval BPV and the front porch interval FPV are displayed as black borders at top and bottom ends respectively on the screen."
    Source: "US Patent 7224350 - Video display apparatus and video display method" (Video display apparatus and video display method - US Patent 7224350 Full Text)

    "DP Differential phase"
    Sources:
    "NTSC/PAL/SECAM Component Digital Video Decoder With Macrovision" (http://focus.ti.com/lit/ds/symlink/tvp5145.pdf)
    "Measuring Differential Gain and Phase" (http://focus.ti.com/lit/an/sloa040/sloa040.pdf)

    ... I was able to add some brief bitfields explaination on "Contents" column.

    Remaining undocumented registers to be documented: (SMODE1, SYNCH1, SYNCH2)
    I believe that after reading and understating the documentantion on links above (on SYNCV section), some people among us (especially - but not only - electronic-engineering skilled) could guess the meaning for these remaining undocummented GS Registers... Please contribute!!! ;-)

    SMODE1
    Low-level PCRTC initialization.
    The bits 16 (PRST) and 17(SINT) should be resetted when writing to SMODE1 register in order to avoid EE freezing (and GS rev. < 21 requires three steps before doing this: Set bit 16, reset bit 16 and wait for 2.5ms).
    Code:
    .--------.-------.---------------.----------------------------------.-------.
    | Name   | Pos.  | Format        | Contents                         | Mask  |
    |--------+-------+---------------+----------------------------------+-------|
    | VHP    | 36:36 | int  0:1:0    | Mode Choice                      | 0x1   |
    |        |       |               | 0 Interlace                      |       |
    |        |       |               | 1 Progressive                    |       |
    | VCKSEL | 35:34 | int  0:2:0    |                                  | 0x3   |
    | SLCK2  | 33:33 | int  0:1:0    |                                  | 0x1   |
    | NVCK   | 32:32 | int  0:1:0    |                                  | 0x1   |
    | CLKSEL | 31:30 | int  0:2:0    |                                  | 0x3   |
    | PEVS   | 29:29 | int  0:1:0    |                                  | 0x1   |
    | PEHS   | 28:28 | int  0:1:0    |                                  | 0x1   |
    | PVS    | 27:27 | int  0:1:0    |                                  | 0x1   |
    | PHS    | 26:26 | int  0:1:0    |                                  | 0x1   |
    | GCONT  | 25:25 | int  0:1:0    | Component Color Mode             | 0x1   |
    |        |       |               | 0 RGB                            |       |
    |        |       |               | 1 YPbPr                          |       |
    | SPML   | 24:21 | int  0:4:0    | Sub-Pixel Magnification Level    | 0xF   |
    | PCK2   | 20:19 | int  0:2:0    |                                  | 0x1   |
    | XPCK   | 18:18 | int  0:1:0    |                                  | 0x1   |
    | SINT   | 17:17 | int  0:1:0    | PLL (Phase-locked loop)          | 0x1   |
    |        |       |               | 0 Off                            |       |
    |        |       |               | 1 On                             |       |
    | PRST   | 16:16 | int  0:1:0    | PCRTC Reset                      | 0x1   |
    |        |       |               | 0 Off                            |       |
    |        |       |               | 1 On                             |       |
    | EX     | 15:15 | int  0:1:0    |                                  | 0x1   |
    | CMOD   | 14:13 | int  0:2:0    | Color Subcarrier                 | 0x3   |
    |        |       |               | 2 NTSC                           |       |
    |        |       |               | 3 PAL                            |       |
    |        |       |               | 0 Used by other modes            |       |
    |        |       |               | 1 Untested                       |       |
    | SLCK   | 12:12 | int  0:1:0    |                                  | 0x1   |
    | T1248  | 11:10 | int  0:2:0    |                                  | 0x3   |
    | LC     |  9:3  | int  0:7:0    | PLL Loop Divider                 | 0x1F  |
    | RC     |  2:0  | int  0:3:0    | PLL Reference Divider            | 0x7   |
    '--------^-------^---------------^----------------------------------^-------'
    
    Reference values:
                                               VHP,VCKSEL,SLCK2,NVCK,CLKSEL,PEVS,PEHS,PVS,PHS,GCONT,SPML,PCK2,XPCK,SINT,PRST,EX,CMOD,SLCK,T1248,LC,RC
    NTSC-Non Interlaced   (640x240(224))         0,     1,    1,   1,     1,   0,   0,  0,  0,    0,   4,   0,   0,   1,   1, 0,   2,   0,   1, 32, 4
    NTSC-Interlaced       (640x480(448))         0,     1,    1,   1,     1,   0,   0,  0,  0,    0,   4,   0,   0,   1,   1, 0,   2,   0,   1, 32, 4
    DTV 480P              (720x480)              1,     1,    1,   1,     1,   0,   0,  0,  0,    0,   2,   0,   0,   1,   1, 0,   0,   0,   1, 32, 4
    PAL-Non Interlaced    (640x288(256))         0,     1,    1,   1,     1,   0,   0,  0,  0,    0,   4,   0,   0,   1,   1, 0,   3,   0,   1, 32, 4
    PAL-Interlaced        (640x576(512))         0,     1,    1,   1,     1,   0,   0,  0,  0,    0,   4,   0,   0,   1,   1, 0,   3,   0,   1, 32, 4
    VGA (0x1A)            (640x480 59.940Hz)     1,     0,    1,   1,     1,   0,   0,  0,  0,    0,   2,   0,   0,   1,   0, 0,   0,   0,   1, 15, 2
    DTV-1080I             (1920x1080)            0,     0,    1,   1,     1,   0,   0,  0,  0,    0,   1,   0,   0,   1,   0, 0,   0,   0,   1, 22, 2
    DTV-720P              (1280x720)             1,     0,    1,   1,     1,   0,   0,  0,  0,    0,   1,   0,   0,   1,   0, 0,   0,   0,   1, 22, 2
    PMODE
    Code:
    .-------.------.------------.----------------------------------------------.------.
    | Name  | Pos. | Format     | Contents                                     | Mask |
    |-------+------+------------+----------------------------------------------+------+
    | EN1   | 0    | int 0:1:0  | Read Circuit 1 ON/OFF                        | 0x1  |
    |       |      |            | 0 OFF                                        |      |
    |       |      |            | 1 ON                                         |      |
    | EN2   | 1    | int 0:1:0  | Read Circuit 2 ON/OFF                        | 0x1  |
    |       |      |            | 0 OFF                                        |      |
    |       |      |            | 1 ON                                         |      |
    | CRTMD | 4:2  | int 0:3:0  | CRT Output Switching                         | 0x7  |
    |       |      |            | Always 001                                   |      |
    | MMOD  | 5    | int 0:1:0  | Alpha Value Selection for Alpha Blending     | 0x1  |
    |       |      |            | 0 Alpha Value of Read Circuit 1              |      |
    |       |      |            | 1 ALP Register Value                         |      |
    | AMOD  | 6    | int 0:1:0  | OUT1 Alpha Output Selection                  | 0x1  |
    |       |      |            | 0 Alpha Value of Read Circuit 1              |      |
    |       |      |            | 1 Alpha Value of Read Circuit 2              |      |
    | SLBG  | 7    | int 0:1:0  | Alpha Blending Method Selection              | 0x1  |
    |       |      |            | 0 Blended with the output of Read Circuit 2. |      |
    |       |      |            | 1 Blended with the background color          |      |
    | ALP   | 15:8 | int 0:8:0  | Fixed Alpha Value (0xff = 1.0)               | 0xFF |
    '-------^------^-------------^---------------------------------------------^------^
    * Undefined bits shoud be set to 0.
    About Resolution Adaption Formulas
    "Each time GSM force a resolution change it will activate and analyze the requested values of the:
    - DISPLAY1/DISPLAY2 six bitfields (DX, DY, MAGH, MAGV, DW, DH)
    - SMODE2 two bitfields (INT and FFMD)
    So as to calculate the resolution in pixels that the forced program will 'believe' it is using.
    Then the patch program will use that information, combined with the stored values of DX, DY, DW, DH chosen by the user in the setup menu, in order to calculate values for all six of the bitfields that will allow optimized rendition in the chosen physical video mode.
    That's the total purpose of the equations in 'Rez adaption formulas.txt', whose real implementation lie in the inline asm sections of 'Adapt_X.c' and 'Adapt_Y.c'."
    Source: dlanor (http://www.psx-scene.com/forums/show...&postcount=185)
    Attached Thumbnails Attached Thumbnails displayxfields.jpg  
    Last edited by doctorxyz; 04-07-2013 at 12:43 AM. Reason: Fixed: PMODE's CRTMD mask
    SILENT_Pavel likes this.
    Reply With Quote  

  8. #8 GSM 0.23x FAQ 
    doctorxyz's Avatar
    doctorxyz is offline I'm just a modest sorcerer's apprentice!
    Join Date
    May 2007
    Posts
    1,091
    Downloads
    2
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    7 Thread(s)
    Likes Given
    124
    Likes Received
    205
    GSM 0.23x FAQ
    (requested by urbigbro and made by doctorxyz, based on many questions answered by dlanor)


    Question
    Can GSM be auto booted, or launched by holding a button at FMCB boot?

    Answer
    No, but it can however be auto launched from uLE. So VGA users could just set FMCB to auto boot uLE than have uLE auto boot GSM with VGA preset as slot 00.


    Question
    Can someone give me step by step instructions on how to change between interlaced video modes (the video modes that work with composite 'yellow', or s-video cable) for example from PAL to NTSC. What about NTSC to PAL, via a SCART cable?

    Answer
    Changing between SDTV interlaced video modes is simple. All you need do from starting the program is either wait a while for the splash screen to go away, or directly press any button to close it.
    This should bring you to the main GSM screen with all the text on it. Here pressing the 'Circle' button will load the presets for the first SDTV alternative, which is NTSC. But it is not automatically activated. For that to happen you must next press the DPad_Down button, which will activate enforcing of the currently selected preset. So from that moment on the menu should be visible to you.
    You can also force GSM to go directly into that resolution on future launches (after closing its splash). This is done by storing the NTSC presets in the first slot of the saveable preset array. That array allows for 16 saveable preset slots, and the first slot (== slot 00) will also be used to initialize the user interface on each launch. Those who want the default should not use that array slot at all, but those who want an enforced mode at start should use that slot.
    Once you have the messy GSM menu screen visible (after the initial pressing of 'Circle' and DPad_Down), you can save that preset state to slot 00 by pressing the buttons R2 and DPad_Up simultaneously, to store the currently active preset into the current slot of the array (and slot 00 selection is already active at startup). And then you should press buttons R2 and L2 to save this array in the config file stored on your memory card, together with GSM itself. This will ensure that the settings are reloaded in future sessions, for use immediately after closing the splash screen (if not before).


    Question
    How I can load a saved preset in GSM?
    I'm using GSM to force a PAL Tomb Raider Underworld to NTSC, but every time I will play is needed to regulate settings.
    I saved one preset (using R2 + L2, is this correct?) but when I will start again I do not know how to load it.

    Answer
    R2+L2 is one of the correct commands in this context.
    To be precise it is the command that causes a GSM.CNF file to be saved.

    That GSM.CNF file has room for up to 16 different 'slots' of customized video modes, and on every new start of GSM, all those slots will again be loaded from the CNF file into RAM, where they await your commands for simple reactivation. And if you stored anything in slot:00, then that video mode will be automatically activated at launch of GSM.
    Those slots are what is referred to by the text: "Current User Slot:00" on the screen.
    By using R2+DPad_Right you can increase that slot index (wraps to zero after 15)
    and by R2+DPad_Left you can decrease it (wraps to 15 after zero)
    Use R2+DPad_Up to upload the currently active mode into the slot array
    Use R2+DPad_Down to download a video mode from the slot array to 'Current Presets'
    Note that the video mode is then not directly activated, so you can tweak it a bit before you activate it with DPad_Down (alone)

    By proper use of these commands you can easily handle up to 15 optionally activated custom video modes in addition to the default one you store in slot:00 for automatic activation.
    Just remember to again repeat the R2+L2 command whenever you have modified settings for any of the slots, so that these changes are also saved to GSM.CNF
    (Hopefully you will remember that, as it was apparently the only one of these commands you already knew :-))


    Question
    Is there a way to save your current settings? I have to re-input all the settings whenever I start my PS2.. can be a tedious task...

    Answer
    If you are using the current release version v0.23x then pay attention to the text row lowest in the main field, which clearly states:
    "[L2]+[R2] Save all slots + current 'Exit to' option to mc"
    This refers to the configuration file "mc0:/BOOT/GSM.CNF".
    So if you press and hold both the L2 and the R2 button simultaneously, that file will be saved.
    But since you were not aware of this, you are probably not aware of how to use the video mode array slots at all. So I had better explain that too...
    Apart from the current presets that you can directly manipulate, GSM also supports an array with 16 slots, each of which can hold a complete set of preset values defining a video mode.
    Note how one of the text rows in the GUI says:
    "CNF FILE - Current User Slot:00" followed by a parenthesis stating the base vmode code of that slot, or "(Base vmode:unused)" if the slot is empty.
    If you press and hold the R2 button you can then also press buttons on the D-pad, to manipulate these video mode slots as follows:
    Code:
    [R2]+[Left]  => Decrease 'Current User Slot:xx' number (wraps to 15 after 00)
    [R2]+[Right] => Increase 'Current User Slot:xx' number (wraps to 00 after 15)
    [R2]+[Down]  => Download 'Current User Slot' content. to become new current presets
    [R2]+[Up]    => Upload current preset values to 'Current User Slot', replacing any old content
    Note that in loading presets from such a slot, this only sets the preset values, but you still have to press D-pad [Down] (alone) in order to activate the video mode in hardware. That is intentional, to allow user tweaking of the preset values before the hardware activation.
    By using these commands together with those that modify video modes you can step through the 16 possible slot indexes to store 16 of your favorite video modes into the array, and then save all of them to the "mc0:/BOOT/GSM.CNF" file by pressing the [L2]+[R2] combo.
    That file will automatically be reloaded whenever you start the GSM program, and if slot 00 of the array from that file contains any video mode, then that is the video mode which will be activated initially for the GUI. Otherwise the default video mode for your console region will be used, either NTSC or PAL. Using slot 00 allows the program to start properly with other video modes too, both HDTV and VGA modes being allowed, which latter is very important for those using VGA-only monitors.



    Question
    I'd like to learn how to reset the DX, DY, DW and DH preset settings for HDTV 480p, 720p, and 1080i? I was messing with them to stretch my screen, but notice it was terrible. I need to learn to reset them, because I then saved the presets by pressing L2 and R2--I'm thinking that I should just delete the GSM.CNF file it creates on my memory card "mc0:/BOOT/", but I'd like to know for sure.

    Answer
    Saving CNF by the L2+R2 button combo does not alter the default values loaded when stepping through the standard preset modes using the right-thumb buttons (Square button for HDTV modes). The resulting values will always be the same when you set one of these base modes, regardless of what custom modes you have in the CNF.
    The custom values for DX,DY,DW and DH that you have tweaked yourself will only be saved to the CNF as part of the user mode array.
    And then you may indeed have to delete the CNF file to get rid of it, or edit the CNF to fix that slot, but deletion is perhaps easier for you.



    Question
    I want to learn the proper procedure when loading this application. Here are my steps, please let me know if I am doing things correctly:
    1. Load GSM
    2. Press [SQUARE] button to choose a HDTV setting (this example: HDTV 480p)
    3. Press [DOWN] button on D-Pad to enable the setting.
    4. Press [R2] + [UP] buttons to Save Slot to RAM--Is this necessary?
    5. Press [START] + [DOWN] buttons to exit to PS2 Browser (CNF).


    Answer
    Typical user mode array creation procedure:
    1: Use a right-thumb button to choose your basic video mode
    2: Tweak the position and size values until satisfied with the result
    3: Use R2+Left or R2+Right button combos to choose the 'User Slot:' index for the array
    4: Use R2+Up button combo to upload the current settings to that array slot
    5: Repeat steps 1-4 above until you have set all array slots that you want
    6: Press R2+L2 button combo to save the GSM.CNF file

    Typical way to utilise user mode array:
    1: Use R2+Left or R2+Right button combos to choose the 'User Slot:' index for the array
    2: Use R2+Down button combo to download the current settings from that array slot
    3: Use Down button (alone) to activate the video mode in current settings
    4: Use Start+Down button combo to exit to DEV1 elf (== uLE of FMCB setups)
    (Assuming you have configured GSM to use that exit mode, via Start+Up or CNF)

    You can do so, and this will cause GSM to fall back on defaults for everything.
    But the case you describe does not motivate doing that, since you changed nothing that is saved to the CNF.
    Temporary preset changes are never stored in the CNF.
    This happens with some games, depending on how they use the dual GS buffers for interlacing.
    The 'Save Slot to RAM' command is only meaningful if you intend to reuse the same setting in future sessions, by reloading the same user array slot again, as I describe further above in this post. And for that to be possible the array must also be saved to MC by the L2+R2 combo.
    And of course, if you don't tweak any of the values yourself, then there is no reason to save the setting for future reuse. You can just choose it the same way again next time.
    Saving modes in the user array is primarily intended for cases where you have tweaked the settings to optimize sizing and centering on your own TV set, or to force specific scaling of some particular game for some particular base mode etc. But when using default modes without any custom tweaks there is no point in saving the modes.
    Note however that any video mode stored in slot 00 of the user array saved to the CNF file will be automatically reactivated on future launches of GSM. (This is to help people with VGA monitors, who are 'blind' until GSM has been auto-launched and auto-activated a VGA mode.)
    Last edited by doctorxyz; 01-21-2011 at 10:42 PM. Reason: Original text replaced by GSM 0.23x FAQ
    SILENT_Pavel likes this.
    Reply With Quote  

  9. #9  
    doctorxyz's Avatar
    doctorxyz is offline I'm just a modest sorcerer's apprentice!
    Join Date
    May 2007
    Posts
    1,091
    Downloads
    2
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    7 Thread(s)
    Likes Given
    124
    Likes Received
    205
    GSM 0.23x FAQ (2nd.part)
    (compilation made by Gedankenschild based on many questions answered by dlanor)


    Question
    GSM forces my game into 16:9 mode when I activate 480p, inserting black borders left and right.
    But the game is actually 4:3 only!

    Answer
    Many PS2 games do not utilize the maximum possible NTSC/PAL resolutions. Instead they run on a lower one like 512x448.
    Forcing these games into 480p mode not only forces progressive scan, but also a higher resolution (640x448). The game's internal resolution is then centered within this framework, leaving black borders left and right. So while this may seem like a 4:3/16:9 switching issue, it actually isn't. It's more like a fortunate coincidence that "stretching" all of this into a 16:9 aspect ratio pretty much returns these games to their original proportions.


    Question: (follow-up to above question)
    Can't I just tweak GSM's values to stretch the display to fill the screen in games with these borders?
    Answer
    There is no 'gradual stretching' of the picture scaling for small changes of either DH or DW, since the only scale adaption we can make is done by changing the MAGH and MAGV magnification factor integers. And since they are integers, fractional scaling is impossible.
    In other words, the PS2 is by no means a scaler like the XRGB-2. It cannot on the fly recalculate a horizontal resolution of 512 into one of 640. It can only magnify the vertical and horizontal resolutions, that is double, triple, quadruple them. Doubling the horizontal resolution for one of the above mentioned games (with black borders) will result in parts of the game screen beeing cut off left and right in 480p. (512 x 2 = 1024 centered within 640)
    It would be different if we could somehow finetune the VCK clock, as that could allow fractional scaling. But we don't know how to do that, or even if it is possible.


    Question
    Is it possible to play PSone games in 480p?
    Answer
    That may be impossible to achieve since the program we use to force 480p is a PS2 program, which will not survive a switch of the console into PS1 mode.
    It is true that some graphics enhancement is possible even for PS1 programs (the settings of the PS1 driver), and perhaps some of the things we write to the GS chip may continue to influence it even after a shift into PS1 mode. But most likely the PS1 driver will reprogram the GS from scratch, which then completely eliminates our influence.


    Question
    GSM doesn't seem to respond to my pushing the controller buttons!
    Answer
    In order to easily implement many commands without any advanced menu system, most of the commands require pressing two buttons simultaneously instead of the usual one. And this means you may have to press them a little longer for secure detection.
    For example, to exit from GSM into HDLoader you need to press down both [D-pad Right] and [Start] until the program responds.


    Question
    Where exactly does GSM look for the HDLOADER.ELF?
    Answer
    HDLoader must be placed at "mc0:/BOOT/HDLOADER.ELF" for now.


    Question
    Could you give an explanation of what the DX, DY, DW, DH, MAGV, MAGH values do?
    Answer
    Those six values are in fact different bitfields of a 64-bit GS register type, and the GS has two registers of this kind.
    (DISPLAY1 and DISPLAY2) The precise bitfield positions are best shown by the "make_magic" function in the source code.
    DX,DY == control the screen positioning offset, in physical units, not pixels
    DW,DH == define the size of the visible screen sections, in physical units, not pixels
    MAGH,MAGV == define the relationship between physical units and pixels
    (Physical units are the VCK clock for the horizontal axis and raster lines for the vertical axis)
    For DX and DY the values are used as-is, but the other four are stored as value-1.
    So if MAGV = 0x00, this means that the vertical scale factor is one, and if MAGH = 3 then the horizontal scale factor is 4 (normal for both PAL and NTSC in interlaced mode). And for the normal PAL resolution of 640x512, DW will be 639 and DH will be 511.


    Question
    Adjusting DW works but adjusting DH doesn't. DH has the same effect as DY.
    Answer
    Decreasing DY should have the effect of moving the entire display upwards on the physical screen, but if the top is already outside it, then you will see that only as a movement of the display 'cutoff' point at the bottom, moving up.

    Decreasing DH on the other hand should only cause the 'cutoff' point to move up, as the visible display height is decreased. But this may look very similar to the case mentioned above.


    Question
    What is the "Adaption" option for?
    Answer
    This option performs an adaption of screen scaling or centering, as the name implies. For normal game use adaption should always be "ON".
    The purpose of the "OFF" mode is to give us a better chance to see what happens when we make specific register patches, without having the screen adaption interfering with that feedback.


    Question
    Anything I should consider when reporting a bug?
    Answer
    There is one thing you can contribute, and this is something we really want from all who report on GSM results.
    What is your console's product code and bios version?
    The product code is shown in the main Sony menu (==FMCB) when you press Triangle.
    The code we want is the one starting with SCPH. So the code of my v7 is "SCPH-39004".
    The bios version is shown in uLE when you use FileBrowser to run "MISC/Debug Info".
    Here we want the whole string displayed as content of rom0:ROMVER.
    So for my v7 this is ""0160EC20020319_", exactly as displayed by uLE.
    This will help us learn which models have GS chips with various limitations.
    And another thing we want for every report is the precise version of the GSM program used. (Or GSTest for those older versions.) And of course all future tests should use whatever version is then the current one.


    Question
    Switching to 576p crashes my PS2 every time. Don't all PS2 consoles support this mode?
    Answer
    The real dependency here is not on hardware updates but on bios firmware updates.
    All PS2 consoles should have hardware capable of generating 576p, but a request for that mode through the bios function sceSetGsCrt will only work if that function has been updated to recognize that mode code. Otherwise the function call will crash the console.


    Question
    Do you have any sort of "short list" as to which PS2s are known to work with 576p?
    Answer
    Sorry, but 576p is not implemented in the bios of any fat PS2, to our knowledge.
    We don't think it was implemented in the SCPH-700xx v12/v13 consoles either.
    576p is definitely implemented in bios v2.20 as used for the SCPH-77004 v15 console, and for the SCPH-750xx v14 consoles it might vary, as differing bios versions may have been used for some of them.


    Question
    The game screen is off-center with GSM's standard settings. Can you improve those?
    Answer
    We can not possibly center the default settings perfectly for everyone, so tweaking the centering is your own responsibility. With the current GSM version you can also save tweaked settings, which should make it easier for everyone.
    Having said that it should be added that we are open to suggestions and even voting on the best default screen positioning values, as we too are less than happy with some of those choices. However, different equipment has different needs. Settings ideal for an old CRT TV might give horrible centering on an HDTV, and vice versa.


    Question
    Could you add an option to start games directly from the GSM menu?
    Answer
    We see no possible reason to do so. With the number of different game launch methods around today there is no way we will even consider adding them all to the GSM GUI. That would be absurd. (Let's see now, 3 or 4 different USB launchers, plus various HDLoader versions, plus ESR, plus disc-swapping tools and let's not forget normal disc launching too (the least important method to us...)


    Question
    Game x seems to output a low-res image in 480p mode, as if it were displayed in half of its vertical resolution. How come?
    Answer
    There are two different ways of rendering a normal NTSC picture using a true resolution of 640x448 pixels. (The same applies to PAL too, only some numbers differ).
    One game method uses a single buffer of 448 raster lines of 640 pixels.
    The other game method uses a pair of buffers each holding 224 raster lines of 640 pixels. Effectively this means that one buffer holds all the odd lines, while the other buffer holds all the even lines, so each represents the output of one half-frame.
    This method gives us serious problems with progressive modes, since there is no built-in support for the kind of access we'd need here, alternating between the two buffers for each raster line to be rendered. Doing so is not possible for us. So instead we are stuck with the method of simply doubling the height of the pixels, so that they at least fill up the correct space on screen and prevent the rendering from including uninitialized garbage RAM content, as seen in testing these games with previous GSM versions (when they could be displayed at all that is).
    We know that this method isn't really satisfactory, but it is the best we have, and far better than what we had before.


    Question
    Can both NTSC and PAL video modes be 'non-interlaced' (NTSC-NI and PAL-NI respectively)?
    Answer
    There is a common homebrew technique to eliminate interlace flicker, and therefore called 'non-interlaced', even though that is technically untrue.
    The VSync period still has a non-integral number of HSync periods, so technically speaking the display is still interlaced, which is why TV sets display the mode description "480i" or "576i" in the popup that could appear at each incoming video mode change. But the appearance of the screen shows reduced flicker because odd and even frames repeat exactly the same 224 or 256 lines content, as opposed to normal interlace usage where the odd and even frames content differ so as to use a total of 448 or 512 lines together.
    Last edited by doctorxyz; 02-23-2011 at 10:34 PM. Reason: Addition of 'Non-Interlaced' Q&A
    SILENT_Pavel likes this.
    Reply With Quote  

  10. #10  
    kevstah2004 is offline Member
    Join Date
    Apr 2008
    Posts
    1,202
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    2
    You mean codes types?
    http://www.codemasters-project.net/p...php?content.23

    All the info / guides are on
    http://www.codemasters-project.net/p...ortal/news.php just click the bar on the left hand side, I recommend registering at forums too
    http://www.codemasters-project.net/vb/
    as well as
    http://www.thegshi.org/ and ps2dev.net
    I can't code so don't ask, i'm just a point and shoot hacker much like how Bung started out, I should really get my arse into gear and start learning to code properly for the ps2 but it looks too daunting and tool chains are a bitch to setup.

    http://www.eurasia.nu/wiki/index.php...ScreenPosition
    Last edited by kevstah2004; 08-01-2009 at 09:25 PM.
    Reply With Quote  

Page 1 of 274 1 2 3 11 51 101 ... LastLast
Tags for this Thread

View Tag Cloud

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •