Race Sim Central
Rec.Autos.Simulators Archive

Question for Jim/Adam about RENDDMA

6 posts by 3 people · 01 Feb 1997 - 06 Feb 1997

I have two questions about the upcoming patch from Sierra for NASCAR 2. The first is the general question of will there be any Rendition work included? The second is the specific question of will the patch address the problem of erratic joystick/wheel control when running the RENDDMA version of Rendition NASCAR 2 on NON-INTEL machines? I realize that you (Jim Sokoloff) have said the patch is Adam's concern, but if you could either get an answer from him or get him to post one it would be appreciated. A simple yes or no is all I'm asking for. BTW, if the answer is no, I just want to say that the reasoning of the Cyrix chips have problems with most Rendition games and it is therefore a Cyrix problem is untrue. Quake and Tomb Raider both work perfectly in Rendition mode. Additionally, all of my other software works perfectly with the Cyrix (including regular NASCAR 2) so it is definitely NOT a hardware issue. And before I get flamed from the outside on this, I do feel that compatibility is Cyrix's responsibility, but I also feel they have met that when 99% of the software out there runs fine (which probably isn't that different a number from Intel's<G>!) Just wanted to make sure that we keep things on a level playing field and that everyone (including Sierra) understands that this is a specific problem related to NASCAR 2. As I have played the game more I realize that it really is a good product and that my initial judgement was probably too harsh. I enjoy the game thoroughly and my only request is that Sierra take support of alternative chips as seriously as id and EIDIOS as well as others have. Thank you for your time and efforts, Jim Grayson Air Traffic Control Specialist - Automation - Memphis ARTCC
Jim Sokolo 01 Feb 1997#354604
I'll ask Adam to continue to provide details when those details are available... At this time, to the best of my knowledge, Cyrix has not been able to provide a solution to the problem (see more below) See my previous post regarding this issue. The Cyrix chip is NOT a Pentium, and doesn't report itself as a Pentium. We ask at startup if the CPU is a Pentium and if so, we are able to use an undocumented Pentium instruction to enable our joystick routines to be more accurate. If Cyrix is able and willing to provide us a technical solution, we are willing to incorporate the special case code at startup to allow us to take advantage of the more accurate joystick routines. Two reasons why other games might work: 1) it might not be so critical if a single joystick read is inaccurate and/or 2) they might know how to access the same information on the Cyrix chip and have special case code for the Cyrix. Translation: if Cyrix provides the information, and if their chip provides the technical ability for us to solve the problem, it'll get solved... ---Jim Sokoloff, Papyrus
Jim Sokolo 01 Feb 1997#354605
Actually, it is (sort of) a hardware problem at the root of it all. The root problem is that the DMA transfer seizes the bus for a short period of time. This throws off the loop count in the joystick read. The solution is to use another more accurate method to time the joystick (if available). There's an undocumented Pentium cycle count instruction which we use if the CPU reports itself to be a Pentium. The Cyrix doesn't, and therefore, we can't use this extremely accurate timebase, but use a loop count instead. The loop count is thrown off by the DMA transfer, causing erratic joystick reads when using DMA and a non-Pentium CPU. I agree with you that compatibility is Cyrix's responsibility. In this case, they have not acheived that goal 100%. If Cyrix is able to provide a solution or work-around, we are willing to implement it. ---Jim Sokoloff, Papyrus
Jim Sokolo 06 Feb 1997#355155
After corresponding with a nice gentleman at Software Developer Support at Cyrix, he informed me that the 5x86 and 6x86 do not support the Pentium's RDTSC instruction. As such, they do not support the "more accurate" joystick routines that we enable when we detect a Pentium. (So, even if we detected the Cyrix chip, we couldn't use RDTSC, so it wouldn't help the game at all...) Cyrix SDS reported that the Cyrix M2 will support the RDTSC instruction, and therefore, the correct joystick behavior will occur. As the Cyrix chip does not support an instruction that the Pentium does, and which is required to solve this "bug" report, Papyrus will be unable to solve this problem as it is a hardware compatibility issue with the Cyrix 5x86 and 6x86 chips. (They aren't Pentiums.) ---Jim Sokoloff, Papyrus
Jim Sokolo 06 Feb 1997#355156
Someone asked me (by private e-mail) "Why don't other games show this same problem?" "Don't other developers use RDTSC?" "How about Quake/TombRaider, etc.?" I won't post his e-mail or name, as I think that would be rude w/o his permission, but I'll post the answer I mailed him: No, we use RDTSC anytime we can. (Why? Because it's more accurate than just counting the number of times through a loop (while waiting for the cap in the game card to charge up through the adjustable resistor (potentiometer) in the joystick)...) The number of times through a loop per microsecond is pretty constant SO LONG as you aren't doing DMA over the computer's bus. No appreciably variable amount of DMA is going on in the normal N2, and non-DMA (i.e. slow-a**) Rendition mode. However, when we use the DMA mode on the Rendition (very fast), it "steals" bus cycles from the CPU, causing the CPU to run slightly slower. That would be fine if it was a constant amount slower, but the card isn't doing DMA all the time. The result is that when the card does DMA, our loop count goes awry. (Note: the count also goes awry for other reasons, like the serial port, but not nearly as much) But the RDTSC instruction returns the number of "clocks" since powerup and is constant, no matter what the CPU and/or video card are doing... So, the RDTSC method of reading the joystick is dead-on accurate, and the simple loop-counting method is not particularly accurate when the video card is doing variable amounts of DMA over the bus... Why do our games suffer "more" than Quake/Tomb Raider? Simple: our game is more sensitive to slightly "noisy" joystick readings. (imagine driving 200 mph and suddenly slamming the wheel 15 degrees to the left. OK. Now imagine walking at "90%" to the right, and for a 1/10th of second, only walk at 50% to the right, then resume walking at 90%... Not much noticeable difference (especially with rocket propelled grenades going off everywhere... :-) ) ---Jim Sokoloff, Papyrus
Yoshiki Mo 06 Feb 1997#355157
Jim, thanks for taking your time to answer the question all the IBM/Cyrix CPU users have been wondering for a long time. This is exactly the answer I was looking for (technical and informative, yet expained in the way that it is understandable), rather than incompetent "senior" tech support (Hi Jay!) who kept telling me all the info that was on Intergraph and Sierra Web site. Keep up the great work. You guys seems to be the only one who know how to make racing sims. "At the beginning of any project, a high level of e***ment can be found with a low level of execution." - Trevor Harris

Sponsors

Affiliate Links

Sim Gaming Expo MOZA Racing Sim-Lab Fanatec TrakRacer Asetek Internet Privacy From NordVPN Dreamhost Capital One Credit Card Application Fanatical CDKeys Amazon Amazon UK Project Motor Racing iRacing Get your racing gloves, boots and more from Demon Tweeks. Enlist at Roberts Space Industries, developers of Star Citizen and Squadron 42


Back from the ashes since July, 2019. First created in 2001 with the merger of Legends Central (founded 1999) and simracing.dk.

A site by a sort of sim racer, for sim racers, about racing sims. News and information on both modern and historic sim racing software titles.

All products and licenses property of their respective owners.


Facebook Threads Bluesky Twitter Mastodon Instagram YouTube Tiktok Twitch Reddit Google News Apple News Subscribe via WordPress Flipboard eBay

Race Sim Central © 1999-2026 | Some links pay RSC a commission. Advertising does not equal endorsement.Cookie Policy