Jump to content
1 post in this topic

Recommended Posts

I've posted it a couple of weeks ago at the win2osx forum, but I hardly got any replies. I'll post the important stuff from that thread here:

 

Looking at the BIOS of my video card with a hex editor (GeForecFX 5500), I found 2 places with the value 0x00040003, which translates to 1024x768 resolution. I found similiar values for 640x480, and there are probably more for other resolutions.

maybe if those numbers are changed, we could get higher resolutions using the VESA drivers? (of course dropping the changed resolution)

 

Update:

I booted off a FreeDOS CD and flashed the BIOS, now I see 1680x1050 when I type "?video", but the result is kinda strange, the graphics card still thinks it's 1024x768 and I see half of the screen.

I'll try to patch more offsets that have 0x00040003 in them.

 

Another update:

Well patching the other offset didn't help either.

but there is something strange about it. in the video modes list, I don't see 1024x768 anymore, but that's still the mode it boots when I don't type anything. that means that either those modes are stored in another place, or Darwin can boot unsupported modes.

I tried looking in my motherboard BIOS, and I didn't find modes like 320x400 or 1400x1050 there (those modes appeared in ?video), so that's probably not the place.

anyone knows more about it?

 

 

well, i was thinking in a similar way i guess. what would 1680x1050 (my desirable resolution) translate to so i could try and update my video bios.

 

m video card, 6600gt, gives me 1280x1024, so i guess i have to search fot those hex values in video bios.

 

anyhow, could you post little more details about how you patched your bios (dec -> hex translation, etc)

 

thx,

 

larna

1680x1050 translates to 9006 1A04.

1679x1049 is probably needed too, that's 8F06 1904.

 

Decimal to Hex convertion:

1. In the Windows calculator (scientific mode), enter the decimal number you want, for example 1680.

2. Click Hex and it will convert it to a hexidecimal base number (690 in this example)

3. If it's less than 4 digits (hex digits), pad it with zeros. (0690 in this example)

4. flip the order of the first 2 bytes with the last 2 bytes, so if the number was ABCD it becomes CDAB. (9006 in this example)

 

step 4 is required because the video BIOS uses Little Endian, a flipped byte order.

 

the height value of the resolution is positioned just after the width value. each value is 2 bytes (4 hex digits).

 

all the tools for messing with the video BIOS for nVidia:

NvFlash - flashes/backs up the video BIOS. must be used in real DOS mode (FreeDOS or similiar can be used - http://www.freedos.org/ )

VGABios - loads a video BIOS without actually flashing it. make sure to test a new BIOS with this tool. from my testing, it's pretty much reliable.

BiosEditor - edits the ROM and corrects it's checksum. a ROM edited by a regular hex editor can't be loaded with VGABios, and probably not by NvFlash either.

All these tools are found here: http://whitebunny.demon.nl/hardware/chipset_nvidia.html

 

 

I think the changes I made are not enough, the pixel timing settings and such probably need to be changed too, but I hardlyunderstand anything about it so I can hardly continue by myself from here.

×
×
  • Create New...