View Full Version : Microcode Update Hack for Parhelia: Poll, Interested?
Leoncatz
01-09-04, 01:01 PM
Some friends of mine and I, have been reading alot of interesting information about certain things that can be done to enhance the performance of PC components by reprogramming their BIOSes to unlock/add/fix/remove GPU features.
This brings me to asking a few important questions on the subject.
StealthHawk
01-09-04, 07:57 PM
Where are such BIOSes coming from? User created hacks or IHV leaked/released?
Leoncatz
01-10-04, 12:14 AM
User created. As I mentioned above, we are thinking about tackling this challenge and work a few of our spare cards to see what we can achive.
The Baron
01-10-04, 01:02 AM
Is there even a possibility of simply improving things through BIOS updates? Sure, you could change voltages and such, but that's only going to allow you to adjust the clocks so far.
Leoncatz
01-10-04, 01:24 AM
Well, the process is quite elaborate it seems to me. I don't have the full details, but my chum thinks we can do it so I gotta believe him.
What I can say for sure is that it's 0.02% about the bios, and 99.98% about the GPU's Code. Which means we need to poll the GPU and then try to manually force the instructions we want it to perform and if it can't do them per our direct polling, then we need to work out the subroutines that will allow it to work at reasonably performing speeds and then update the BIOS to contain our Micro-code updates and then voilą!
That's the short version. The real way, apparently, is going to take several weeks.
P.S.- We're going to be looking for people to help out, but we want to keep the project well contained for fear of having bad weirdness issues. I mean just look at my hair! :afro2:
bkswaney
01-10-04, 04:00 AM
U cannot fix a bad hardware design through a bios.
They just dropped the ball on it. That's it.
Hanners
01-10-04, 06:12 AM
If certain features are disabled in a GPU, you can be pretty sure that it's because that feature is broken in hardware, so even if it could be enabled by a BIOS fix then I see no point in doing so.
Of course, you'd most likely also have to rewrite the drivers yourself to expose the feature you enabled anyway.
In other words, it would probably be easier to produce your own card. ;)
Leoncatz
01-10-04, 01:09 PM
HAHAHA nice reading!
"What I can say for sure is that it's 0.02% about the bios, and 99.98% about the GPU's Code."
Is what I said, if you can't make sense of that, fine. I'm being told by a group of people that are my close friends, that we can. NOT REWRITE THE BIOS! As for drivers, that's not such a big deal, because everything is accessible through the .Net PowerDesk util, accept that if your card dosn't support a feature then it just greys out the corresponding entry.
BTW, I'm NOT asking anyone here if they think it can be done or not, since I have experienced success in the past. What I'm asking is if anyone is interested in using such an update for their card. It's simple, if not: we wont share it. We don't want a buch of nay-sayers, who really might know nothing about programming hardware sharing their insight.
We have worked together in the past on a microcode update for a problematic motherboard (http://www.abit-usa.com/products/mb/products.php?categories=1&model=109) we had.
Anyhow, if anyone is interested in an IDE, here is a link to a Free for Non-Commercial use IDE incase you wish to participate and share ideas with us. Mirco Code Studio (http://www.mecanique.co.uk/code-studio)
P.S. - To Hanners' Quote: "If certain features are disabled in a GPU, you can be pretty sure that it's because that feature is broken in hardware,..."
So basicaly what you're saying is, that if you take your Retail 9500Pro and flash it with the Retail 9700Pro BIOS that it doesn't enable new features? I you think that, you should really do a search on that, cause I've flashed 8 9500s and ended up with fully funtioning 9700s minus the 256bit core bebause not all the same components were used, but the Addressing was mirror identical.
saturnotaku
01-10-04, 02:07 PM
Originally posted by Leoncatz
So basicaly what you're saying is, that if you take your Retail 9500Pro and flash it with the Retail 9700Pro BIOS that it doesn't enable new features? I you think that, you should really do a search on that, cause I've flashed 8 9500s and ended up with fully funtioning 9700s minus the 256bit core bebause not all the same components were used, but the Addressing was mirror identical.
The 256-bit core was the only difference between the 9500 Pro and 9700 Pro. Both cards already had 8 pipelines.
The Baron
01-10-04, 02:30 PM
I think you're really underestimating the complexity of "fixing" the Parhelia. I mean, what are you going to do? You can't give it a 256-bit memory bus, which is the only thing that would pretty much fix it. You could play with memory timings and such, but that would probably only grant about a 5% performance boost. Same with crazy clockspeed increases--assuming you have the cooling, maybe a 15-20% boost at max.
The 9500->9700 hack only worked because the disabled functions were already there in hardware; that's why it only worked on the boards with the L-shaped RAM--they were already 9700 PCBs, and since the 9500 used the same chipset, it was not impossible to fake the 9500 into thinking it was a 9700. I don't think that you're going to have the same luck with the Parhelia; if it were possible, don't you think Matrox would have released an update to make it more competitive or even a refresh?
If you can do it, I think everyone that has a Parhelia (all 300 of them) would use it. I just think that a noticeable performance improvement through anything except BIOS-level overclocking is simply not going to happen.
Leoncatz
01-10-04, 03:27 PM
Originally posted by The Baron
I think you're really underestimating the complexity of "fixing" the Parhelia. I mean, what are you going to do? You can't give it a 256-bit memory bus, which is the only thing that would pretty much fix it.
Parhelia Specs (http://www.matrox.com/mga/products/parhelia/home.cfm)
But I'll put right here so you don't have to link:
Key features:
512-bit GPU
256-bit DDR memory interface
128MB or 256MB DDR memory
16x Fragment Antialiasing
10-bit GigaColor technology
AGP 4X
Again, I'm saying, I'm NOT asking you what you think we can or cannot access on the card.
By the looks of the replies, none of you seemingly understand what I'm talking about and that's ok. Don't ask me about Accounting cause I'm not an Accountant. I have a Com-Sci, BSc and a Specialist Degree in Electronics Engineering I and my friends, that are also involved in the industry at a professional level, ALL aggree that we can alter the card's GPU Instruction Set.
One thing we CANNOT change is the fact that the card IS, I believe, only 4xAGP. We wont alter the card "electrically" so we're not doing anything about Side Banding for 8xAGP.
If you have no expertise or hobbiest qualifications to qualify what you're saying, that's ok too. Let's turn this thread to informatics rather than inflamatics.
We're not going to be altering the BIOS for timings and the like. We're going to use the BIOS's storage addresses to add some microcode to extened the GPUs instruction set capabilites, i.e. - DX9 and whatever else needs adding.
We haven't started so we don't know exactly what is there and what isn't. But we are going to attempt something. What it becomes, we hope, will be better than what we have now. :)
saturnotaku
01-10-04, 04:02 PM
Ah, the holier-than-thou attitude, Custer's last stand, the final resort of the person who refuses to listen to logic and reason from people who probably know just about as much as he does.
You talk a good game, now put up or shut up.
Leoncatz
01-10-04, 04:22 PM
I wouldn't have started this entire thread if it couldn't be done.
And it isn't my final stand. Just seems like everyone has a negative attutide when nothing is being asked of them in the contributive form.
It's just bad form when to straight out say "it's impossible" or misconstrue what someone has posted.
Nowhere did I mention anything about ONLY USING THE BIOS. So I am getting rather irritated by that, and am making it known that a negative attitude doesn't resolve anything. It simply oppresses ideas and the realitiy of others.
And there is SO much documentation abroad the net to support both arguments, that if one digs deep enough, one can travel to China using a shovel...errr... no...that's not it... :D
BTW Saturnotaku, If I'm an @$$hole I think people can see for themselves. You don't have to point it out for anyone. ;)
bsdgeek
01-10-04, 09:48 PM
Hey, how about you, instead of going on some silly micro-code BIOS quest, rewrite the drivers to activate the features that Matrox has erased from existence?
@The Baron: Actually there was a voltage mod a while ago that enabled some to get Parhelia clocks in the ~270-290 range, just a little interesting tidbit. Also, another little interesting fact, Matrox had a Parhelia refresh that should have been released 6 months after the original (fall-christmas 2002), but they cancelled it. (most likely because there were too many original Parhelias in stock. :rolleyes: )
Never underestimate the stupidity of Matrox's management.
By the way, why are you posting this at NVNews? They're just going to make fun of you for buying/using a Parhelia (quite rightly so, I might add). You should be posting this stuff at MURC.
saturnotaku
01-10-04, 11:04 PM
Originally posted by Leoncatz
BTW Saturnotaku, If I'm an @$$hole I think people can see for themselves. You don't have to point it out for anyone. ;)
I'm just trying to save everyone a lot of trouble.
And I'm still waiting for proof. All you've done is beat your chest. If there's so much documentation about what you're trying to do, enlighten us. You're the one who supposedly has all the answers. Teach us, oh high-and-exalted one.
Originally posted by bsdgeek
By the way, why are you posting this at NVNews? They're just going to make fun of you for buying/using a Parhelia (quite rightly so, I might add). You should be posting this stuff at MURC.
No, that's not the policy.
If that were to really happen, then the idiots with no respect would get made fun of :D
I'm not of the put up or shut up reasoning with this, at least at this point, which I myself think: "Leoncatz: if you and your cohorts can imporove that card in any way, for the "greater good" or just geek pleasure, then by all mean I consider it hella cool."
...
:)
Leoncatz
01-11-04, 12:17 AM
Saturnotaku, you remind me of some of my old high school friends that got used to getting their way and getting people to comply with their wishes, simply because they were big and scary and noone would dare try to kick their asses, maybe teaching them a lesson.
Perhaps you don't realize it, but talking like that over a medium that doesn't really push visual as it's primary source of 'chat' stimilus, you should maybe rethink your behaviour retroactions.
120 lbs aristocrats are taking over the world, and getting the oafs to fight the battles and deliver the loot.
I didn't beat my chest at all. I stated my formal education, and the fact that I didn't appreciate negative comments stating that it can't be done. As nothing is impossible in this existence.
As for you interpreting it as such is not my problem. I believe I mentioned that there are medications to help elleviate dementia. Try some. :mad:
I'm going to stop looking at this poll and get back to work, as it seems I must put up or shut up!
P.S. - And thx for the good words Ragejg.
The microcode in GPUs is only used to create a "shorthand" method of talking to the cards. IE instead of writing to 4 registers to set the destination of a blt you would call a microcode funtion with 2 parameters in 1 IO call (a word). Microcode does nothing special, it simply wraps registers to reduce the IO / DMA usage.
The video bios contains amoungst other features such as clock timing structures, video mode timings, info on what devices are installed VGA mode fonts etc. When a bios can be used to "enable/diable" GPU features, the bios is only being used as non-volatile store for the flag. It is the driver that reads this flag and decides what path the driver takes. Microcode isn't stored in the bios, it is in the drivers. Loaded when the driver initialises the DMA apertures.
I think your wasting your time.
faraday
01-11-04, 07:44 PM
To my understanding theres quite a bit that can be done with driver/firmware , meaning , on a software level, to change and/or enhance the workflow of a hardware device. The bios is the 'interface' between the component and the motherboard, all software requests are managed/routed by it , or so I recall.
I won't say that it can be done , but neither will I so eagerly say it can't be done, this matter is too complex to be analysed in such a simplistic way, too many variables.
As for changing GPU instructions (I couldnt really understand if this was actually what you meant , but you did meantioned adding functionality like Dx9 ), I'm guessing this would have to be done in the software level using the existing hardware, so it could reveal itself to be too much of a challenge, in either way im just spitballing here thinking if it can or cant be done, give us a word here if you do suceed to achieve anything.
Oh and......good luck.
Leoncatz
01-11-04, 10:01 PM
Thx guys. We're looking for some creative insight on this. We're also looking for an open source Linux driver for primary analysis.
It's always exciting to start a new project, but once I find myself knee deep in it, the enjoyment of the potential achievement is far out of mind.
... I was going to continue, but now realize that I may have a tough question coming. And I guess if it can be done ...bleh, I'll reply with question.
SnakeEyes
01-12-04, 12:03 PM
I'm not so sure that there aren't things that the Parhelia could do that aren't disabled in the current setup. Matrox has targeted their products primarily at a business audience, both for low-end multimonitor professional rendering as well as just higher end multi-monitor uses. Due to that narrowed focus, if the hardware supports functions A, B, and C or functions X, Y, and Z, but not both due to the resources physically available, Matrox may have picked the functionality that best benefited the area of focus chosen for the card. This may not be the best thing for the rest of the possible customers out there (read: general home users and gaming enthusiasts, among others), but would help the card remain competitive in the area they want it placed.
BTW, I'm not saying that this is the case here. Just pointing out that there is room for hope, and nothing would be hurt by exploring the possibilities. At worst, no noticable benefits will be achieved. On the other hand, nothing ventured nothing gained.. ;)
(And no, I don't have a Parhelia. Partly because they waited so long to get the card on the market that the competition had greatly surpassed them for my needs and desires, partly because of cost, and lastly because Matrox has been steadily withdrawing further and further from the non-business part of the market, both in available hardware and in support. That doesn't mean that the users themselves shouldn't do what they can to make the best of what they've got though. :))
Leoncatz
01-12-04, 01:38 PM
Originally posted by Leoncatz
We're also looking for an open source Linux driver for primary analysis.
Scratch that idea. We just ripped open the drivers with W32Dasm8.93. It's much easier to work with and see exactly what the card is doing. There is also a really nice trace feature.
As for what the team will be capable of churning out, well the decision has been made to open a Website dedicated to the project.
I'll keep you abreast of our travail.
Originally posted by Leoncatz
We're also looking for an open source Linux driver for primary analysis.
I'm sorry, but that sentence of yours reveals that you're not a professional in this area. There are no open source drivers for new serious 3D-cards. There are many reasons for that:
1. Companies do not want to reveal their propietary interfaces to hardware, because they don't want to give their work to their competitors.
2. There are legal issues that prevent companies to open source their driver code (e.g. Macrovision protection and various patents and licences)
Furthermore, there are no open source Parhelia drivers for Linux. (See e.g. XFree86.org http://www.xfree86.org/4.3.0/mga.4.html). And if there would be open source drivers for Parhelia, there would already be information floating around the net about the hardware spesifics on the card. You should have known these.
saturnotaku
01-12-04, 03:55 PM
Originally posted by aapo
There are no open source drivers for new serious 3D-cards.
If serious 3D is a qualification for lack of open source, then there should be open Parhelia drivers all over the place. :D
Leoncatz
01-12-04, 04:07 PM
Originally posted by aapo
I'm sorry, but that sentence of yours reveals that you're not a professional in this area. There are no open source drivers for new serious 3D-cards. There are many reasons for that:
1. Companies do not want to reveal their propietary interfaces to hardware, because they don't want to give their work to their competitors.
2. There are legal issues that prevent companies to open source their driver code (e.g. Macrovision protection and various patents and licences)
Furthermore, there are no open source Parhelia drivers for Linux. (See e.g. XFree86.org http://www.xfree86.org/4.3.0/mga.4.html). And if there would be open source drivers for Parhelia, there would already be information floating around the net about the hardware spesifics on the card. You should have known these.
Oh, jeez really?
You're right. I guess you're always right... That's ok.
:rolleyes:
P.S. - Oops! I almost forgot. :cry:
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.