Radeon 7000 boot into 1600x1200 resolution |
December, 30, 2002 11:26 PM |
joevt |
The Radeon 7000 always boots into 640x480 which sucks for verbose mode especially if there is a kernel panic during startup where you can't see all the panic text. I don't know how to permanently change that but there are commands that can be used in Open Firmware to make the current boot start in 1600x1200. 1) Boot into Open Firmware and make sure that the 7000 is the current output device and is currently displaying Open Firmware output. This example assumes the output device is pci1/@D/ATY,RV100ad_A but yours might be different. 2) type the following commands (a) dev pci1/@D/ATY,RV100ad_A (b) 27 enable-videomode (c) 27 set-mode (d) 8 set-depth (e) boot Step (a) gets you to the Radeon node in the device tree. To get a list of video modes, type "show-modes" after step (a). Type "words" at this time to get a list of other supported commands. The mode number for 1600x1200 75Hz is 27 and is disabled by default so step (b) enables it. Step (d) is required because for some strange reason, step (c) does not change the mode completely. Don't worry that you can't see anything after step (c) or that the colors are not correct after step (d). After step (e) you should see the familiar gray apple except it will be a lot smaller. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 29, 2003 6:36 PM |
OSXGuru |
. |
Hi joevt, This stuff sounds great. Feel free to e-mail it to me--I'm very curious to take a look at it. --Ryan. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 29, 2003 2:20 AM |
tempest |
. |
I agree. Please consider checking joevt's changes into XPF proper. Inclusion of ATI's ROM file would probably not a good idea, but a patcher program should be sufficient. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 28, 2003 10:30 PM |
bralston |
. |
Ryan, now that you are back, take a looke at joevt's source code and include it in a point release to Xpostfacto...it works! -Ben |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 23, 2003 2:35 AM |
tempest |
. |
One suggestion is to move the init into the XPF application and make it a control panel under OS 9. That way you can have the package it. The mod of the Radeon's firmware could probably be also folded in? But this is just refinement. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 22, 2003 11:43 PM |
joevt |
. |
tempest, I'm glad everything worked out for you. What you saw is normal behavior. When booting into OS X, the white console appears at 640x480 before BootX changes the resolution. The NVRAM reading stuff in BootX would have to be moved to the OpenFirmware NVRAM script to fix that. OS 9 should only show that white screen if you were in OS X just before booting into OS 9 (OS 9 changes Open Firmware stuff after it begins loading). You can get rid of that white screen by setting the output-device in XPostFacto to none. BootX will set the output-device to the Radeon later (as long as it's the first display device that can be successfully opened). I don't have write access to the CVS. I wouldn't want to check my stuff in anyway without having it looked over first. I'll ask Ryan when he's not busy. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 22, 2003 6:43 PM |
tempest |
. |
The Radeon would give it a good kick but will not feel like a current Power Macintosh. The 640X480 resolution is what happens regardless of what your normal Radeon resolution is under OS 9 and X. Joevt's fix is applicable only during the initial stages when the Mac is booting, but if you don't mind that defect, your Mac will eventually switch to its set resolution later on. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 22, 2003 3:50 PM |
rpertierra |
. |
I presently have a Mac 7300 upgraded with a Sonnet 400/G4 and I've replaced my hard drives with an 18 GB internal and a 36 GB internal. I was thinking of waiting a little longer for a new Mac and was considering the Radeon 7000 Mac Edition. I'm running XPostFacto with OS X 10.2.4. Is this video board going to be a "pain in the...". I don't need 1600x1200 but I sure don't want to always boot into 640x480 every time I boot the computer. Is this what actually happens at any resolution? Would the proposed fix work in my configuration (don't mind doing some work to get the desired results). The 7300 and the 8600 are fairly close pedigrees. Should I buy the board? Will it improve performance with a 45 MHz bus? Heeeeeeeeeeellllllllllppppppppppp! :) |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 22, 2003 2:52 AM |
tempest |
. |
Thanks for the files! It works great on my 8500 w/ Radeon 7000 and Sonnet 800MHz G4. I see that my Mac displays the OpenFirmware white background before the desired resolution is chosen by BootX then continues onto OS X--or OS 9 if I have the option key depressed. Do you have write access to the source code? Perhaps Ryan can be pursuaded to fold in your changes into XPF, say v2.3.0? A most-excellent mod. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 21, 2003 10:25 PM |
bralston |
. |
Thats excellent news! I would love to try it out (original Radeon). I first complained about this issue almost a year ago now. I think you emailed me some pascal at the time that you were working on. Anyway, I'm glad to see it beared fruit. I'd love it if you forwarded your stuff to me (source code if you are willing, especially for the OS9 extension). I can also post it on my website (I'm the OS 9 Helper author from OWC), at www.os9forever.com. Great Job! -Ben www.os9forever.com |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 21, 2003 5:10 PM |
macman |
. |
At the risk of sounding like a newbie: I'm all for trying this too! macman@migol.com My config: 8600/Sonnet 800/Trio/M-Audio/7k. I can think of at least one other config out there that is the same as mine and might benefit from the fix. Thanks! Stephen |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 21, 2003 3:03 AM |
tempest |
. |
I'd love to try it out. You may use tmpest1@yahoo.com. How long did it take for you to dig up this old thread? :) |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
April, 20, 2003 3:03 AM |
joevt |
. |
I've finished work on this issue and made a new version of XPostFacto that installs a patched version of BootX that will read properties from NVRAM and place them in the device tree so that Open Firmware display drivers (tested Radeon and Radeon 7000) can use them to set the display resolution at startup. The NVRAM properties for the Radeon cards are too large (greater than 8 bytes) for Old World Macs. I made an OS 9 extension to allow those properties to be saved to NVRAM when OS 9 shuts down so that OS 9 and OS X (with the new BootX) can boot into higher resolutions than the default 640x480. OS X currently does not save NVRAM properties on Old World Macs (I'm not sure it even does that on New World Macs). Changes to the kernel would have to be made to allow the saving of properties (both large and regular sized) to NVRAM. The Open Firmware driver for the Radeon 7000 uses a routine called "get-inherited-property" which does not work correctly on old versions of Open Firmware and stops the Radeon 7000 from getting the preference property. I made a patch to the Radeon's ROM to fix that. During startup, BootX is supposed to select a new output device if the output device was not set or was invalid or was not a display device. I fixed a bug where it would not do that if the display device was the Radeon 7000. The problem was that the path BootX was trying to use ended with "/ATY,RV100ad_A@0,0". The @0,0 needed to be removed for it to work. I also made a few other minor changes... If anyone wants to try it, just ask. I have nowhere to post it so you'll have to get it through e- mail (not more than 2MB). I've only tested it out on a PowerMac 8600. Your mileage may vary. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
January, 21, 2003 5:25 PM |
OSXGuru |
. |
Yes, BootX can read files before the splash screen is displayed. BootX is what is responsible for displaying the splash screen. At the moment, the image is statically compiled into BootX, and I suppose one would want that as a backup in case the disk can't be read for some reason. But it should not be problematic to read the disk before the splash screen is displayed. Whether BootX can read NVRAM is an interesting question. It should be possible on the 7300 - 9600 series, because the procedure for reading NVRAM on those machines is well-documented and easy to implement. (In fact, I used to implement it in XPostFacto. More recently, I've been relying on a Mac OS trap, because that works on all models, not just the 7300 - 9600). |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
January, 21, 2003 8:23 AM |
powderhaus |
. |
When i got my DVI monitor it automaticly sets itself to 1280 x 1024. if you have one of the adapters you could try using that to see if it still works. but it my just be my monitor, if the rez gets changed a message pops up and tells my that i should change it back to 1280 x 1024. it would not hert to try pluging into DVI. good luck! |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
January, 21, 2003 1:06 AM |
joevt |
. |
But can BootX read files before the splash screen is displayed? Will it work with NetBoot? Does XPostFacto even work with NetBoot? Is it possible to add code to BootX so it can read NVRAM? If it is then it could read the NVRAM properties and put them into the device tree. First, the 6 byte location would need to be decoded and the format for that is not documented anywhere (but it wouldn't be impossible to figure out). A second table (probably stored at the end of the same [$1400..$17FF] NVRAM range used for the first table) would need to be added to list properties that have values with more than 8 bytes. We could just forget about decoding the 6 byte location field of the properties in the first table and put all the properties into the second table and use open firmware paths like the aapl,pci Open Firmware property does. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
January, 20, 2003 5:43 PM |
OSXGuru |
. |
These are interesting ideas. It is quite true that BootX can read files from the boot volume, and that it can execute Open Firmware commands. So it should be possible for XPostFacto to set up a kind of "BootX preferences file" that would affect what BootX does. I had, in fact, been toying with that idea as a way of getting custom images into the boot process (i.e. instead of the Apple logo). I'll play with this a little and see what I can come up with. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
January, 05, 2003 9:19 PM |
joevt |
. |
It appears that with select-dev, you don't usually need the "8 set- depth" command and the colors don't go strange (but sometimes you still need to do "8 set-depth". I decided to think about a different method for correcting the resolution problem. New World Macs have an Open Firmware variable "aapl,pci" that stores a list of properties for nodes in the device tree. This is where the preferences for the display devices are stored. The properties are setup by Open Firmware when the computer is started. The preference properties can be found in the OS 9 name registry by looking for properties that have the kRegPropertyValueIsSavedToNVRAM mod bit set. It doesn't look like that mod bit does anything on Old World Macs. If the prefs aren't being saved to nvram then my idea for XPostFacto would be for it to find all the properties that have that mod bit set (and kRegPropertyValueIsSavedToDisk just in case) and add them to an area in BootX bracketed by unique delimiter strings as a set of Open Firmware commands or something. BootX would set the properties before the splash screen is drawn and hopefully, the OS X driver for the display device will use the preference property and set the resolution to that used when XPostFacto was run. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
January, 02, 2003 3:23 AM |
tempest |
. |
I found that I could do the following: output-device select-dev then ... enable-videomode ... set-mode ... set-depth. I haven't tried to save it in the resource nor have I used nvedit... |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
January, 02, 2003 12:22 AM |
joevt |
. |
I did think of that and tried to modify XPostFacto's nvramrc in Open Firmware using nvedit but nvstore says there is not enough space. I didn't check to see if such commands would actually work from nvramrc if I removed XPostFacto's stuff first. output-device by itself will put an address and a length on the forth stack. output-device eval will dump the value of output-device. I don't know how to combine that with the dev command. Anyway, if you can't figure out how to make dev use the output-device string then XPostFacto could be changed to dynamically create the necessary commands depending on the currently selected output-device and prepend or append them to it's OFpt stuff. That would work as long as you don't change the monitor but only for display devices that support those commands and I don't think that's possible to check from outside Open Firmware. It seems that BootX has the ability to execute Open Firmware commands. It would be nice if it could read user created text files that contain Open Firmware commands and execute their code before the splash screen is displayed. If BootX can't read files before the splash screen is displayed then the code could be put directly into BootX. |
. |
RE: Radeon 7000 boot into 1600x1200 resolution |
December, 31, 2002 3:37 PM |
tempest |
. |
You would make it permanent by modifying the OFpt resources within the XPostFacto control panel. Possibly appending the commands would be sufficient w/out the boot command. One thing to consider is available NVRAM and I don't know how to reference a configuration variable within Open Firmware: i.e. dev $output-device or some such construct. I tried dev" output-device", dev output-device@, but to no avail. |