Editing ATI/AMD Framebuffer Personality

Guide moved to new site:

http://www.rampagedev.com/?page_id=82

99 Responses to Editing ATI/AMD Framebuffer Personality

  1. Pingback: Editing ATI/AMD Framebuffer Personalities Guide | rampagedev

  2. kakarot9 says:

    I keep getting the following error when running the script:
    Cannot open otool -arch x86_64 -l /System/Extensions/ATI2600Controller.kext

    • rampagedev says:

      known issue. See end of page for list of framebuffers.

    • Sergio says:

      Hello Rampagedev

      I have the same error and i dont know how see the framebuffer with the IOReg

      Can you help me?

      • Sergio says:

        Ok i was looking in detail the IOReg and found 4 names under the ATI500Controller

        Hoolock
        Langur
        Orangutan
        Zonalis

        Can i use one of those 4 names or is a name in special?

        Thanks in advanced

      • Sergio says:

        I think that is Zonalis, because i was browsing inside of the ATI5000Controller.kext and looking the file info.plist i found the Dev ID and the Vendor under the String Zonalis

        CFBundleDevelopmentRegion
        English
        CFBundleExecutable
        ATI5000Controller
        CFBundleGetInfoString
        ATI5000Controller 1.6.36.10 (9792)
        CFBundleIdentifier
        com.apple.kext.ATI5000Controller
        CFBundleInfoDictionaryVersion
        6.0
        CFBundleName
        Radeon 5000 Controller
        CFBundlePackageType
        KEXT
        CFBundleShortVersionString
        1.6.36
        CFBundleSignature
        ????
        CFBundleVersion
        6.3.6
        IOKitPersonalities

        Controller

        ATY,Hoolock

        aty_config

        CFG_FORCE_ICLK

        ATY,Langur

        aty_config

        CFG_FORCE_ICLK

        ATY,Orangutan

        aty_config

        CFG_GPIO_HIGH
        131104

        ATY,Zonalis

        aty_config

        CFG_NO_PP

        CFBundleIdentifier
        com.apple.kext.ATI5000Controller
        IOClass
        ATI5000Controller
        IOMatchCategory
        IOFramebuffer
        IOName
        ATI5000Controller
        IOPCIMatch
        0x68981002 0x68991002 0x68E01002 0x68E11002 0x68D81002 0x68C01002 0x68C11002 0x68D91002 0x68B81002 0x68B01002 0x68B11002 0x68A01002 0x68A11002
        IOProbeScore
        65000
        IOProviderClass
        IOPCIDevice
        aty_config

        CFG_NO_PP

        CFG_USE_SRRB

        CFG_USE_USCN

        aty_properties

        PP_ActivitySamplingInterval
        1000
        PP_HighSamplingInterval
        200000
        PP_R600ActivityHysteresis
        5
        PP_R600LoweringHighPercentage
        25
        PP_R600LoweringMediumPercentage
        10
        PP_R600RaisingLowPercentage
        10
        PP_R600RaisingMediumPercentage
        25
        PP_UserMaxClockForMultiDisplays
        1

        OSBundleCompatibleVersion
        1.1.36
        OSBundleLibraries

        com.apple.iokit.IOACPIFamily
        1.2
        com.apple.iokit.IOGraphicsFamily
        1.3
        com.apple.iokit.IOPCIFamily
        1.2
        com.apple.kext.ATISupport
        1.1.36
        com.apple.kpi.bsd
        8.0.0
        com.apple.kpi.iokit
        8.0.0
        com.apple.kpi.libkern
        8.0.0
        com.apple.kpi.mach
        8.0.0

        OSBundleRequired
        Safe Boot

      • rampagedev says:

        Wrong… Vervet is the one you need to use.

  3. larbi mehida says:

    Hello you say use gpu-z
    what should i do if it does not give me a bios version and that i can not use atiflash on dos

    The vendor (Sony vaio laptop ) and win 8 say that my video card is a 7650m 2 gb
    SiSoftware Sandra

    Information du Dispositif
    Type de Dispositif : VGA Adaptateur VidÈo
    ID Dispositif : bus 1, dispositif 0, fonction 0
    Nom du Dispositif Windows : AMD Radeon HD 7550M/7650M Graphics
    Nom du Dispositif OEM : ATI (AMD) Thames PRO [Radeon HD 7850]
    ID MatÈriel OEM : VEN_1002, DEV_6841, REV_00
    Nom du Dispositif : Sony Thames PRO [Radeon HD 7850]
    ID Produit : VEN_104D, DEV_90AB, REV_00
    RÈvision : A1

    My point is that i do not know how to make a dsdt and it seem that my machine does not allow me to start to learn it 🙂

    Can you please give me a hand i know your time is valuable

  4. mjkhaani says:

    Hi Sir.
    I have an ATI 7400M Series and i tried to load a driver. First i used DSDT injection Guide of yours and i was going to wait until 10.8.3 to release. The i find out that my Graphic Card is rebranded and it’s identical to 6400M series. So I used GE=Yes and ATI6000Controller loaded successfully but only work on VGA port. I used Lotus frame buffer and change according to your guide. But still same answer.I have Only VGA port and internal display.
    Here is bios dump and …:
    redsock_bios_decoder*****************************************************************************
    k54h0905.001:

    Asus K54HR SEYMOUR M2 XTX DDR3

    Subsystem Vendor ID: 1043
    Subsystem ID: 2002
    Object Header Structure Size: 199
    Connector Object Table Offset: 34
    Router Object Table Offset: 0
    Encoder Object Table Offset: 99
    Display Path Table Offset: 12
    Connector Object Id [14] which is [LVDS]
    encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
    Connector Object Id [12] which is [HDMI_TYPE_A]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
    Connector Object Id [5] which is [VGA]
    encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
    radeon_bios_decode******************************************************************************************
    ATOM BIOS Rom:
    SubsystemVendorID: 0x1043 SubsystemID: 0x2002
    IOBaseAddress: 0xd000
    Filename: k54h0905.001
    BIOS Bootup Message:
    Asus K54HR SEYMOUR M2 XTX DDR3

    PCI ID: 1002:6760
    Connector at index 0
    Type [@offset 44820]: LVDS (7)
    Encoder [@offset 44824]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 44894]: 0x96, OSX senseid: 0x7
    Connector at index 1
    Type [@offset 44830]: HDMI-A (11)
    Encoder [@offset 44834]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 44917]: 0x91, OSX senseid: 0x2
    Connector at index 2
    Type [@offset 44840]: VGA (1)
    Encoder [@offset 44844]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 44944]: 0x97, OSX senseid: 0x8

    Original Personality**********************************
    Personality: Lotus
    ConnectorInfo count in decimal: 3
    Disk offset in decimal 180064
    0000000 00 04 00 00 04 03 00 00 00 01 00 00 11 02 01 01
    0000010 00 08 00 00 04 02 00 00 00 01 00 00 22 05 04 04
    0000020 00 04 00 00 00 01 00 00 00 01 00 00 21 03 02 02
    0000030

    My Personality****************************************
    Personality: Lotus
    ConnectorInfo count in decimal: 3
    Disk offset in decimal 180064
    0000000 00 02 00 00 00 40 00 00 00 09 00 00 10 00 01 07
    0000010 00 08 00 00 02 00 00 00 00 00 00 00 21 03 02 02
    0000020 00 10 00 00 00 10 00 00 00 00 00 00 10 10 03 08
    0000030

    Am I did something wrong? Help me.
    Sorry for My English.

  5. Mohamed says:

    this was in Part5, 1.

    if 0×00000002  = 02  00  00  00 and 0×00000800 =  00  08  00  00, so just for example 0×12345678 should be 78 56 34 12?
    so why 0×00000080 = 08  00  00  00 ? shouldn’t it be 80 00 00 00?

    also I can’t understand anything from part5,2. the control flags part, I mean you said 0×0800 : HDMI     ControlFlag : 0×0200, so I thought the control flag will be 00 02 00 00 but found you writing it as 04  02  00  00

    I think i should have understood that before reading this tutorial as I have zero knowledge about hexadecimals and such

    from all of this can you just and please tell me what is the left hand side from the equal symbol and what is the right hand side in all of this tutorial?

    I think the left hand side is hexadecimal but what is the right hand side? not knowing what the hell is that I just tried to figure a relation and it was as in the first line, 0×12 34 56 78 should be 78 56 34 12, where each two numbers are considered as one number, then the last will be the first, the one before last will be the second etc…

    this relation is justified in most of this tutorial except a few of them, so can you clarify this for me?

    • rampagedev says:

      That section has to do with how the app displays the info. Do not worry about it to much. And only change things in the FB that are not working already.

      • Mohamed says:

        okay anyway, here is my bios
        Subsystem Vendor ID: 174b
        Subsystem ID: e174
        Object Header Structure Size: 291
        Connector Object Table Offset: 3e
        Router Object Table Offset: 0
        Encoder Object Table Offset: d0
        Display Path Table Offset: 12
        Connector Object Id [19] which is [DISPLAY_PORT]
        encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false
        Connector Object Id [12] which is [HDMI_TYPE_A]
        encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
        Connector Object Id [2] which is [DVI_I]
        encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
        Connector Object Id [2] which is [DVI_I]
        encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

        my output was
        00 04 00 00 04 03 00 00 00 01 00 00 12 02 01 01
        00 08 00 00 00 02 00 00 00 01 00 00 22 02 02 04
        00 02 00 00 04 02 00 00 00 01 00 00 10 00 03 03
        00 02 00 00 04 02 00 00 00 01 00 00 00 10 04 03

        the thing is when I open ati-personality.pl I don’t get configs, I only get name of a config and its decimal offset so I don’t know what should I replace my output with via hexeditor,
        thought of searching for someone who copied configs form their computer in some forums but their values weren’t in my 5000 kext, any ideas?

      • rampagedev says:

        You need to just pic a FB and change it to the ones you found

  6. Mohamed says:

    Okay, though I was trying to say I have a problem like the first 2 posters in this topic “http://www.insanelymac.com/forum/topic/286130-first-attempt-at-custom-personality-ati-personalitypl-issue/” I managed to just copy over frame buffers from the 3rd poster in the very same topic and putting those strings in the find box in hexedit and could really replace them with mine.

    Anyway HDMI worked (without audio) and DVI didn’t, seems like I will try other flags from section 2 in part 5 and hope for a better result!

    guess you really helped as HDMI video worked eh? :p

    • rampagedev says:

      HDMI audio is a DSDT edit not a kext edit. Some cards the DVI port is tied to the HDMI port and does not work but not in the 5xxx series that I know.

      ________________________________

  7. Mohamed says:

    Ye true, actually I have DVI working alone with 32 AtiConfigs from the 45 out there (yes I tried all of them) but only thought of doing this tutorial so as to get both HDMI and DVI working together even if connected after boot, and about audio maybe you are right but some other tutorial said that his HDMI audio wasn’t working because his connector ID was false, he changed it and audio worked afterwards

    still thanks for the tutorial, HDMI video working means your tutorial is indeed a success!

  8. jabberwocky says:

    Just a basic question about connector patching, from my understanding i should use one of the basic frame buffers which matches the count of connectors of my card. But, means it “physical” or “logical” (my second DVI port can also output VGA). [Sapphire 7950, DP, HDMI, DVD-D and DVD-I. ]

    I believe it should be the physical count.

    • rampagedev says:

      Physical. This method is untested on the new cards.

    • Gareth Webber says:

      @Jabberwocky – did you ever make this work? I have a sapphire 7950 boost and have stubbled to make Futomaki work. Without editing I got both monitors maybe every firth reboot but locks ups most of the time. I edited to the below but still no dice. Any Advice?

      Thanks

      Gareth

      Personality: Futomaki
      ConnectorInfo count in decimal: 4
      Disk offset in decimal 663056
      0000000 00 04 00 00 04 03 00 00 00 01 01 00 12 04 01 01
      0000010 00 08 00 00 04 02 00 00 00 01 02 00 22 05 02 02
      0000020 04 00 00 00 14 02 00 00 00 01 03 00 11 02 03 03
      0000030 04 00 00 00 04 02 00 00 00 01 04 00 10 00 04 06
      0000040

      • rampagedev says:

        Everything i know is here…

      • jabberwocky says:

        Hi Gareth,
        actually i’m using FB hamachi, with dual monitor setup, 4 connectors. DP and DVI, still 10.8.5.
        Patching is done with clover, first string is original code (with some pre-bytes, else the false FB will be patched), second string is my patched version.

        1102010300040000040300000001010012040501000400000403000000010200220504020400000014020000000103000000030600080000040200000001040011020104

        ATIConnectorsPatch1102010300040000040300000001010012040501000800000002000000010200220504020400000014020000000103001102030300020000040200000001040000000106

        Bye

      • Gareth Webber says:

        Thanks both.

        I have the both displays detected but one screen blank. Oddly when I remote to the machine I get both displays find on the remote session. Will keep playing.

  9. Mohamed says:

    Is it possible to use this with the other tutorial concerning adding the GPU to the DSDT? I mean I am now able to use DVI and HDMI (hot plug enabled) and detected as 5850 from this

    But when I added my GPU to the DSDT just like the other tutorial under DSDT guides 1, I got HDMI audio working but system profiler detected my card as 5000 series and dvd player crashes though I renamed the FB personality in the DSDT to the same name of the one I have edited

    • rampagedev says:

      Not related at all. You are not changing the Framebuffer in the DSDT edit. Thats your issue.

      • Mohamed says:

        I thought so too, and actually I changed Duckweed to Uakari in the DSDT (Uakari is the personality I have successcully edited), maybe I missed or deleted a symbol by mistake….. will give it another try tomorrow

        btw mate, you answer my comments really fast lol
        you got a damn good notifer :p

      • rampagedev says:

        lol. Goot luck. And its called Email notification my friend.

  10. Drosha says:

    I have black screen problem.
    I install iAtkos ML 10.8.2, If i use a external monitor it works with no problem bu identifed as HD 5750M. On the other hand if i try to use laptop display i got black screen than i type PciRoot=1 there is no problem for working screen however this time vga has identified as 3mb standart vga with no acc. So what’s wrong or where i am wrong? Also , i tried to edid display ID, Framebuffer was Hoolock and graphicsEnabler=Yes.
    17.3” Display on laptop with 1600×900 res.
    So do you think this will solve my problem? If it is, can you show me the way when i send you what you need.(codes, rom version, etc.). I need a specialized tutorial.

  11. David Blackeby says:

    I have an old XFX HD4890 card but have been unable to get both DVI ports to work (it has previously sensed a DVI port and a VGA port)

    I’ve tried following the guide, and modified my Kext but with no success (system profile now reports that no kext is loaded, and its really sluggish as a result.

    The ROM dump of my card is as follows:-

    489ZSF2W.BIN:

    Wekiva RV790 B93102-00 XT 850E/975M

    Subsystem Vendor ID: 1682
    Subsystem ID: 2702
    Object Header Structure Size: 354
    Connector Object Table Offset: 50
    Router Object Table Offset: 0
    Encoder Object Table Offset: 10b
    Display Path Table Offset: 10
    Connector Object Id [2] which is [DVI_I]
    encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
    Connector Object Id [2] which is [DVI_I]
    encoder obj id [0x16] which is [INTERNAL_KLDSCP_DAC2] linkb: false
    Connector Object Id [15] which is [DIN]
    encoder obj id [0x16] which is [INTERNAL_KLDSCP_DAC2] linkb: false
    Connector Object Id [15] which is [DIN]
    encoder obj id [0x16] which is [INTERNAL_KLDSCP_DAC2] linkb: false
    Connector Object Id [2] which is [DVI_I]
    encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
    Connector Object Id [2] which is [DVI_I]
    encoder obj id [0x1f] which is [INTERNAL_KLDSCP_LVTMA] linkb: false

    Which based on following the guide I came up with the following for my edits

    0000000 00 02 00 00 04 02 00 00 00 01 00 00 10 00 01 01
    0000010 00 02 00 00 04 02 00 00 00 01 00 00 00 10 02 01

    Any pointers would be greatly appreciated.

    • rampagedev says:

      You need netkas exotic package for you card.

      • David Blackeby says:

        Yes, had the exotic patch installed, before edits it was fine (although only a single DVI port working) after edits doesn’t seem to load, have reloaded the original Kext in the interim, but any chance you could help see if the strings I have calculated are correct based on the bios dump above?

      • rampagedev says:

        You do not change the values on the port that is working. My guide just goes step by step if you had to. Making the second port almost match the working port would be the solution.

  12. David Blackeby says:

    Still no joy, whatever changes I make still results in 2 Displays DVI & VGA, although VGA isn’t outputting anything as I’ve actually got 2 DVI ports (one capable of VGA), and a DIN port.

    I’ve tried using Quail as the personality on the basis that technically I have 3 outputs (although I only care for the DVI ones).

    Using this as my Hex edits:-

    0000000 00 02 00 00 04 02 00 00 00 01 00 00 10 00 01 03 Attempt 5 DVI Port
    0000010 08 00 00 00 20 00 00 00 04 01 00 00 10 10 02 15 Attempt 5 DIN (assume SVideo)
    0000020 00 02 00 00 04 02 00 00 00 01 00 00 00 10 03 03 Attempt 5 DVI

    Graphics Displays in System Profile just list the following

    Displays:
    2461W:
    Resolution: 1920 x 1080 @ 60 Hz
    Pixel Depth: 32-Bit Color (ARGB8888)
    Display Serial Number:
    Main Display: Yes
    Mirror: Off
    Online: Yes
    Rotation: Supported
    Television: Yes
    VGA Display:
    Resolution: 1920 x 1080 @ 60 Hz
    Pixel Depth: 32-Bit Color (ARGB8888)
    Mirror: Off
    Online: Yes
    Rotation: Supported

    The display which is working perfectly, just wish I could get the second monitor online.

  13. I’m using Lion 10.7.5 when using ati-personality.pl i get this output. Why it doesn’t work?

    Kext /System/Library/Extensions/ATI6000Controller.kext/Contents/MacOS/ATI6000Controller
    Personality: Pithecia
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 116195
    Personality: Bulrushes
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 116265
    Personality: Cattail
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 116342
    Personality: Hydrilla
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 116411
    Personality: Duckweed
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 116481
    Personality: Fanwort
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 121659
    Personality: Elodea
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 124357
    Personality: Kudzu
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 124649
    Personality: Gibba
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 124719
    Personality: Lotus
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 127609
    Personality: Ipomoea
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 127679
    Personality: Muskgrass
    ConnectorInfo count in decimal: 0
    Disk offset in decimal 129581

  14. Chikn says:

    My card is Radeon HD 7850 yet I get this error after dragging ati-personality.pl in to Terminal and pressing return.
    Cannot open otool -arch x86_64 -l /System/Library/Extensions/ATI2400Controller.kext/Contents/MacOS/AMD2400Controller for input

  15. dreamconjuror says:

    Thank you very much for the tutorial.

    On my MacPro 3,1 I have an XFX 7970 that lists 6 connections using red sock_bios_decoder. Do I just choose any personality in ATI7000controller.kext That has an equal number of connections? Like the “OPM” or the “Ikura” personalities? I just noticed in the example that you choose Gibba, which has 5 connections, while your BIOS has 6 connections. Did you just insert connection number 6 after the last connection listed in Gibba?

    With unaltered kexts and the original BIOS for the card, IOREG under AMD7000Controller@2 shows “ATY,Chutoro” and “ATY,Hamachi”. What actually cause the system to choose these two? If I alter my kext as explained in your tutorial, will the system automatically choose my altered personality?

    Feel free to point me to any further reading I should do to understand this entire process better.

    Cheers and enjoy the weekend,
    DreamConjuror

    • rampagedev says:

      I just wanted 4 ports to work (DVI port is tied to HDMI port so only one works). Just as long as you get the amount of ports working is all that maters.

  16. Persia says:

    Hello
    Thanks for this tutorial.
    i have vaio sve15117fdb and my graphics card is radeon 7650m
    Graphics Card Manufacturer Powered by AMD
    Graphics Chipset AMD Radeon HD 7500M/7600M Series
    Device ID 6841
    Vendor ID 1002
    Subsystem ID 90AB
    Subsystem Vendor ID 104D
    Graphics Bus Capability PCI Express 2.0
    Maximum Bus Setting PCI Express 2.0 x16
    BIOS Version 013.012.000.041
    BIOS Part Number HK5.019
    BIOS Date 2012/07/10
    Memory Size 1024 MB
    Memory Type DDR3
    Core Clock in MHz 500 MHz
    Memory Clock in MHz 900 MHz
    Total Memory Bandwidth in GByte/s 28.8 GByte/s
    It is based on the same chip as the Radeon HD 6650M, but has a lower core clock of 450 – 550 MHz.
    The power consumption of the chip and 3D performance is similar to the Radeon HD 6630M.
    i have problem with Framebuffer Personality (not work for me) of course i do in 10.9 dp4 .
    is there other method for get frambuffer?

  17. Jose Luis says:

    Friend, can you help me to identify this log (xfx5770 via DSDT;);

    GPU Hang State = 0x00000000
    2013-10-29 20:00:51 -0400 kernel[0]: GPU hang: Not Implemented
    2013-10-29 20:00:51 -0400 kernel[0]: Trying restart GPU …
    2013-10-29 20:00:51 -0400 kernel[0]: AMDJuniperGraphicsAccelerator: bad busy count (255,1)
    2013-10-29 20:00:51 -0400 kernel[0]: Backtrace 0xffffff800062d0b8 0xffffff800062cfc4 0xffffff7f81f34697 0xffffff7f81f129d0 0xffffff7f81f1b4c5 0xffffff7f81f202f2 0xffffff7f81f15e3d
    2013-10-29 20:00:51 -0400 kernel[0]: Kernel Extensions in backtrace:

  18. rampagedev says:

    No. If you can not turn off intel Gpu in the bios the it will never work.

  19. druteron says:

    Hello,

    I have problem with my Mobility Radeon HD4570:

    ——————————
    Radeon Bios Decode:
    ——————————
    ATOM BIOS Rom:
    SubsystemVendorID: 0x1025 SubsystemID: 0x0212
    IOBaseAddress: 0x5000
    Filename: BR34582.001
    BIOS Bootup Message:
    BR34582.001 M92 DDR2 64bit 680e/500m

    PCI ID: 1002:9553
    Connector at index 0
    Type [@offset 45718]: LVDS (7)
    Encoder [@offset 45722]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 45762]: 0x96, OSX senseid: 0x7
    Connector at index 1
    Type [@offset 45728]: VGA (1)
    Encoder [@offset 45732]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 45785]: 0x90, OSX senseid: 0x1

    ——————————
    Redsock Bios Decoder:
    ——————————
    BR34582.001 :

    BR34582.001 M92 DDR2 64bit 680e/500m

    Subsystem Vendor ID: 1025
    Subsystem ID: 212
    Object Header Structure Size: 138
    Connector Object Table Offset: 28
    Router Object Table Offset: 0
    Encoder Object Table Offset: 6a
    Display Path Table Offset: 10
    Connector Object Id [14] which is [LVDS]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false
    Connector Object Id [5] which is [VGA]
    encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
    ——————————

    With this information i patched Shrike framebuffer. Here’s what I got:

    LVDS 02 00 00 00 40 00 00 00 09 01 00 00 12 04 00 07
    VGA 10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 01
    EMPTY 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    After that I have transparent menubar, DVD Player is working but Chess (all 3D apps) suspend system.

    Can You help me find error?

  20. Andy says:

    Hi, I get that I need to edit my framebuffer but which one to use as a base?
    Card amd firepro m8900 .(DELL Precision M6600)
    Should I stick with Elodea since it defaults to that and then trial and error with connectors?
    Found a related post on another forum which suggested this layout enabled lvds ( modified cattail using clover )
    02 00 00 00 40 00 00 00 29 05 00 00 10 00 00 05 (tested this with chameleon/chimera but no luck)
    Redsock decode doesnt list lvds , is it possible that ldvs shares a dp connector ?
    with graphics enabler=yes ….ioreg | grep ATY = Elodea
    no laptop screen,no hdmi , VGA MONITOR working and card identified correctly in system profiler with full acceleration ( though elodea personality looks to be dp based )

    aticonfig=Ipomoea & GE=YES …..
    LAPTOP DISPLAY NO ,VGA NO , HDMI working and card identified correctly in system profiler with full acceleration

    aticonfig=Muckgrass & GE=YES …..
    LAPTOP DISPLAY NO ,VGA NO , HDMI working and card identified correctly in system profiler with full acceleration
    I’m comfortable editing personalities but just need a solid starting point.
    Thanks.

  21. Hady Hallak says:

    Hello
    thank you for this guide

    I get a black screen on my laptop when booting with Ati kexts installed ,VGA Works with fully graphics acceleration

    Could you help me find out which Personality should I edit
    my card AMD Radeon HD 6570M/5700 Series
    I found this while searching
    { 0x68C0, 0x00000000, CHIP_FAMILY_REDWOOD, “AMD Radeon HD 6570M/5700 Series”, kNull },
    it says the AtiConfig must be Null , so what Personality should I edit to get my notebook’s LVDS Monitor working!

    thanks in advance for any help you can offer

  22. Jannik says:

    Hi Rampagedev,

    Thanks a lot for the guide. Unfortunately I couldn’t find the right value for every Framebuffer property. This is what my bios gave me (I’m having the same card as Hady Hallak, which is mobile Radeon HD 5730):
    ______________________________________________________________________________
    HP / Quanta Gerrard / Hammm 2.0 64Mx16 GDDR5 1GB UCODEv:128

    Subsystem Vendor ID: 103c
    Subsystem ID: 1593
    Object Header Structure Size: 199
    Connector Object Table Offset: 34
    Router Object Table Offset: 0
    Encoder Object Table Offset: 99
    Display Path Table Offset: 12
    Connector Object Id [14] which is [LVDS]
    encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
    Connector Object Id [12] which is [HDMI_TYPE_A]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
    Connector Object Id [5] which is [VGA]
    encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
    _______________________________________________________________________________

    This is the result of my first line edit, which does at the moment give me a black, but backlighted screen:

    02 00 00 00 14 00 00 00 09 01 00 00 10 00 00 04

    I tried a lot of values, some gave me internal screen and some did not. None of them fixed my problem yet: After display sleep, the internal screen wakes with distorted colors, external screens didn’t. I am not using a DSDT.

    Could you help me out with this? If you have some time, would you also help me with the VGA? There’s a phantom screen capable of many resolutions whenever no VGA is connected.

    Thank you very much!!!

    • Jannik says:

      Is there anyone who could help me with this?

    • Jannik says:

      This is weird, i’m the only one who didn’t get a reply yet. Not even an “just look into the guide”. Do you guys see my posts at all?

      • Jannik says:

        I just copy it here, could you confirm whether you saw the post or not?

        This is it:

        Thanks a lot for the guide. Unfortunately I couldn’t find the right value for every Framebuffer property. This is what my bios gave me (I’m having the same card as Hady Hallak, which is mobile Radeon HD 5730):
        ______________________________________________________________________________
        HP / Quanta Gerrard / Hammm 2.0 64Mx16 GDDR5 1GB UCODEv:128

        Subsystem Vendor ID: 103c
        Subsystem ID: 1593
        Object Header Structure Size: 199
        Connector Object Table Offset: 34
        Router Object Table Offset: 0
        Encoder Object Table Offset: 99
        Display Path Table Offset: 12
        Connector Object Id [14] which is [LVDS]
        encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0×0)] linkb: false
        Connector Object Id [12] which is [HDMI_TYPE_A]
        encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0×3)] linkb: true
        Connector Object Id [5] which is [VGA]
        encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
        _______________________________________________________________________________

        This is the result of my first line edit, which does at the moment give me a black, but backlighted screen:

        02 00 00 00 14 00 00 00 09 01 00 00 10 00 00 04

        I tried a lot of values, some gave me internal screen and some did not. None of them fixed my problem yet: After display sleep, the internal screen wakes with distorted colors, external screens didn’t. I am not using a DSDT.

        Could you help me out with this? If you have some time, would you also help me with the VGA? There’s a phantom screen capable of many resolutions whenever no VGA is connected.

        Thank you very much!!!

      • rampagedev says:

        Try one line at a time. Look on IM for a fix for a MSI 5770 ghost display if I recall for that fix.

      • Jannik says:

        Ok thank you. I just urgently need the first line for internal screen. It’s quite a mess whenever the lid get’s closed. Also, sleep would be great on a laptop with low battery times.

  23. Waqy says:

    Dead link to ati-personality.pl. Any chance of a new link?
    Thanks Rampage, keep up the good work! 🙂

  24. Hady says:

    Hi …
    my card AMD Radeon HD 6570M/5700 Series
    my internal screen is working with patched Eulumer and Edid override
    the problem is that my display0 in ioreg is detected as “AppleDisplay”
    I’m trying to load it as AppleBacklightDisplay
    patches which worked
    02 00 00 00 14 00 00 00 01 08 00 00 10 02 01 07
    02 00 00 00 14 00 00 00 09 01 00 00 10 02 01 07

    whenever I change “14 00 00 00” to “02 00 00 00” or “00 01 00 00”
    I never get a working screen … even in ioreg no display0

    any idea / experience with that ??

    your help is much appreciated … Thanks in advance

  25. kode54 says:

    I am currently using my Radeon R9 270X which has the following detected:

    R927XO2D.F1 :

    GV-R927XOC-2GD/F1

    Subsystem Vendor ID: 1458
    Subsystem ID: 2272
    Object Header Structure Size: 355
    Connector Object Table Offset: 48
    Router Object Table Offset: 0
    Encoder Object Table Offset: fd
    Display Path Table Offset: 12
    Connector Object Id [19] which is [DISPLAY_PORT]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false
    Connector Object Id [12] which is [HDMI_TYPE_A]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
    Connector Object Id [2] which is [DVI_I]
    encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
    Connector Object Id [2] which is [DVI_I]
    encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
    Connector Object Id [4] which is [DVI_D]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false

    And I’m having some success with a pre-prepared four port framebuffer personality from Valda, which modifies the Futomaki personality to:

    04 00 00 00 14 02 00 00 00 01 00 00 01 02 05 05
    00 08 00 00 04 02 00 00 00 01 00 00 22 05 02 03
    00 04 00 00 04 03 00 00 00 01 00 00 12 04 01 01
    00 02 00 00 04 02 00 00 00 01 00 00 10 00 03 06

    However, this results in the DVI-I/VGA port not working as VGA, and it results in the secondary DVI-D port only functioning as single link. I would like the VGA port to function as VGA, and the other DVI port to function as dual link. If necessary, I can replace some 5 or even 6 port personality instead.

  26. Ken says:

    Hello,
    Forgive me for this dumb question – will this work on a real Mac (I have an old 2010 MacPro) with AMD 7970, but only 1 DVI and display port works:(

    Thanks

  27. Mayur says:

    hello,
    I have installed successfully..but screen gets flicker when i open safari or launchpad menu or while playing video
    my PC specs :
    Intel core 2 Duo
    intel 965RY motherbord
    5gb ram
    Saphire ATI Radeon 5450 1gb ddr3

    I tried several kexts for this GPU…no luck…please guide me..thanx

  28. yankie9486 says:

    my audio had glitches when playing video and audio on any player this fix it.
    work great.
    running mavericks
    amd phenom ii x4 965
    ati firepro v3750

  29. Cliffnj says:

    Have you ever seen a problem where the readback checksum using atiflash is always 0x0000?
    I have tried -unlockrom but that did not seem to have any effect

  30. Cliffnj says:

    I bit the bullet, re-installed windows and tried to use the GPU-Z method. If I try to save to file I get a “BIOS reading not supported on this device” error.

  31. Cliffnj says:

    Ok, I believe I have found a solution and I will post here just in case anyone is interested or runs into a similar issue. I was working on an Asus laptop. Laptops apparently sometimes store the VBIOS in the actual BIOS. I downloaded a bios update ROM for my laptop and loaded it into MMTool. Using MMTool I browsed until I found my Graphics Card Vendor and Product ID and I believe was able to extract the VBIOS from the laptop BIOS.

  32. Cliffnj says:

    Thank you for this guide. I have my Radeon Mobility 4670M fully functioning by correcting the framebuffer to wrk with my Asus laptop.

    • rampagedev says:

      Be sure to post your pre and post FB patch

      • Cliffnj says:

        No Problem I am still working on getting all ports 100% functional. I was able to get the LVDS display working. HDMI I have running but you can’t plug it in after boot it has to be plugged in on start up. I am guessing this is the Hot Plug ID? Also, when I plug it in instead of switching exclusively between monitors it is running both simultaneously but turns the backlight off on the LVDS display instead of using only the HDMI… Anything I might be missing here?

  33. Cliffnj says:

    Ok so I believe I am done modifying my Radeon Mobility 4670 on my Asus N81Vp-X1 laptop. Here are the caveats… I have not gotten VGA port functioning in OSX and I am no longer working towards this. If someone gets it working please post here. LVDS is fully functional. HDMI out works but it comes up as a secondary display. Also you cannot “Hot Plug” the HDMI. It must be plugged in at boot. The display is not just disabled when the lid is closed although the backlight appears to be turned off (a function of the laptop hardware, not OSX). I am guessing this is an ACPI issue as I did set up the LVDS as a clamshell display.

    Modified AMD4600Controller.kext for the “Shrike” buffer.

    Original Framebuffer:
    0000000 02 00 00 00 40 00 00 00 09 01 00 00 02 01 00 03
    0000010 02 00 00 00 00 10 00 00 09 01 00 00 20 01 02 02
    0000020 00 04 00 00 04 03 00 00 00 01 00 00 10 00 01 01
    0000030

    Modified Framebuffer:
    0000000 10 00 00 00 10 00 00 00 00 01 00 00 00 10 02 06
    0000010 02 00 00 00 40 00 00 00 09 01 00 00 12 04 00 07
    0000020 00 08 00 00 04 22 00 00 00 00 00 00 20 01 01 02
    0000030

  34. alcomposer says:

    RampageDev,

    I need to know if I have a working Frame Buffer on my system. Everything in my system is working very well with a 7970. (I am using Clover).

    I get transparent menu bars etc and no video problems whatsoever, however I have never changed any FB settings, also the 7970 comes up as a 7xxx under system profiler. I am on 10.9.3.

    Can you let me know a solid way to check if my frame buffer is functioning?

    Cheers,
    A

    • rampagedev says:

      Not needed with the newer OS.

      • alcomposer says:

        Awesome! You are the king of frame buffer gpu knowledge.

        I have also been able to flash my MSI 7970 with a GOP VBIOS (supplied by MSI when I sent them my VBIOS) – by doing this I get boot screens from the 7970 under clover.

        Added to this that triple screens are working flawlessly with the 7970 when using the “Active” Mini-displayport adaptor along with a HDMI and another display port port.

        Suffice to say that discovering that worked was very insightful as there was practically no info online regarding it. Hope this helps your knowledge base even a little!

        Cheers,
        A

      • rampagedev says:

        lol. Glad I could help. I just put all the info in one place as it is poorly documented. Just started on Intel GPU’s now…

  35. alcomposer says:

    PS: I lied a bit about never getting video problems: FCPX sometimes does some very very very stupid things with graphics and video outputs, but then I read about it on ‘MacPros’ – so apart from normal video problems there are no problems! ;-D

  36. maoshouse says:

    hey, awesome tutorial by the way.

    i’ve been following this and getting everything pretty well until the senseID part where you never updated how you obtained it from the radeon decoder output.

    My output looks like your sample screenshot and has no obvious senseID field like some of the forum tutorial screens that you linked to.

    Can you please clarify how you got working values for SenseID? Thanks! 😀

    • rampagedev says:

      You have to do trial and error.

      • maoshouse says:

        Hey, I’ve found that the radeon bios decoder will tell you the senseID information. So you can use the two bios tools together to figure everything out.

        Right now I’m a little confused to how the patch actually works. How does OSX know to use the specific personality that I chose to modify? I know we modify the kext but how do I know that was the one it defaults to anyway? did i miss a step where i specify which personality to use?

        I’m using clover by the way.

      • rampagedev says:

        You tell the Boot loader or inject it into a SSDT/DSDT with the FB you use.

  37. Cliffg says:

    Have you seen an issue where settings used in one version of OS X do now work when moving to a newer release? For example they work in Mavericks but not Yosemite?

Leave a comment