NVidia CRTC Registers Mapping

Started by
15 comments, last by mp3man2000 19 years, 11 months ago
I havn't actually tried to send values to the PLL yet. I will give it a go and see what happens (PC with no video probably) luckily because I use an lcd monitor, even the slightest change in frequency can be noticed. However that can be detrimental as well if you end up changing the frequency substantially the picture can go away completely.

I will let you know what happens (maybee I won't be able to see to type).

Oh yes there was one other thing I wished to ask. Do you know where the memory positions are for the second head, that is what I actually have to control in the end, not the primary. Although I can probably use the primary buffer status to determine frame decodes, I need to get the vertical interval from the TV output.

[edited by - mp3man2000 on April 25, 2004 8:55:51 PM]
Advertisement
hehe.

Nope, sorry, no experience with dual-monitor coding.
E8 17 00 42 CE DC D2 DC E4 EA C4 40 CA DA C2 D8 CC 40 CA D0 E8 40E0 CA CA 96 5B B0 16 50 D7 D4 02 B2 02 86 E2 CD 21 58 48 79 F2 C3
Well it is all starting to seem too hard. I have managed to send the PLL values and it changes frequency, but I found that I have to check each byte after it has been sent and resend it if it is different (which happens a lot). This seems very ugly to me and would appear like I am not the only one sending values. Anyway I have locked up the PC a bit, but persisting.
Aye. Probably much more work than it''s worth.

hmm, after resending, is the PLL value correct? Is it a problem with granularity? If not, and something else is writing to it at the same time, not good at all
E8 17 00 42 CE DC D2 DC E4 EA C4 40 CA DA C2 D8 CC 40 CA D0 E8 40E0 CA CA 96 5B B0 16 50 D7 D4 02 B2 02 86 E2 CD 21 58 48 79 F2 C3
I only can give a little help with nVidia dualhead behaviour.

We will use 0x3d4/0x3d5 out writes.
To get access to CRTC2 registers you should:
1. Unlock CRTC registers writing 0x57 to 0x1f
2. Move CRTC registers ownership to second head writing 0x03 to 0x44
3. Do some stuff
4. Lock CRTC regiosters writing 0x99 to 0x1f

To return ownership to first head you should write 0x00 to 0x44.
(with unlocking - locking again).
It works for me.

Please look closer to
http://www.textsure.net/~ela/download/rivatv/rivatv/src/v4l-riva.c
to find details.

WBR, Alexey

[edited by - aktinkon on May 18, 2004 3:35:26 AM]
WBR, Alexey
Thank you for the dual head information. I will try switching as you suggest. The project has been halted at the moment because the company that supply the codec seem to have solved the problem by using windows media player for displaying the video. However I am still interested in learning about the graphics card programming anyway.

I have also been sidetracked learning OpenGL, which I have found most rewarding, and I am trying to get the SMPEG library to compile on win32 using the Borland compiler, I have managed to compile the plaympeg test program using the dll that someone else has built, however I would like to compile a library with mpeg audio playback only, I don’t need video playback.

Anyway this little project has now sidetracked me into writing a game, which is fun, in fact I am rewriting the classic game lunar lander, well maybe it isn’t classic but when it came out I loved it.

If anyone is interested I could post what I have done so far and you could have a look.
Thanks everyone for your input.

I will post it anyway, I am curious for some responses.
OK after having a look and realising that I cannot upload to this server I have created a quick and dirty web page so that you can download the game, it isn't big so it is an easy download. Anyway have a look, and tell me what you think.






Here is the game



[edited by - mp3man2000 on May 22, 2004 9:08:55 PM]

This topic is closed to new replies.

Advertisement