Forum Archive

Go Back   3D Realms Forums > Archives > Other Apogee/3D Realms Games
Blogs FAQ Members List Social Groups Calendar Mark Forums Read

Notices

 
 
Thread Tools
Old 12-27-2000, 07:35 AM   #1
Guest
Guest
Wacky Wheels serial connection
I loved the game Wacky Wheels when I played the shareware version few years ago, and I'm still thinking about buying the game ...

However, I first want to try out the probably most exciting feature: the 2player/2computer mode.

I connected a 486DX2-66 and a PentiumII-300 with a serial cable on COM2 and tried out all different connection speeds.
At 9600 baud the 486 always hangs, when the text "Checking version info" is displayed; and the PII returns to the main menu.

Why does that happen? What's the problem?

At higher speeds, both PCs never stop SYNCing.

Thank you for any hint!
TomKa

------------------
 
Old 12-28-2000, 12:36 AM   #2
Guest
Guest
Re: Wacky Wheels serial connection
You need a null-modem cable which has different pinouts then a standard serial cable.

Find in depth info here:
http://www.jimprice.com/connectors/NullModem.htm

Great game, have fun
 
Old 12-28-2000, 03:53 AM   #3
Admiral_Bob
Re: Wacky Wheels serial connection
Also make sure that both computers have a 16550 UART serial port controller chip. The PII is bound to have one, however the 486 may have a older 8250 chip which is not able to handle higher speeds above 9600 and consumes excessive CPU cycles (not good for games or multitasking).

To check the UART chip type MSD at the DOS prompt (if the program's not there, it should be somewhere on the Win9x CDs). Go to "Serial Ports" and look at the controller chip type.

If the 486 has a 8250 UART, you'll need to replace the I/O controller card with one that has a 16550 UART on it.

------------------
__________________
A d m i r a l B o b
Admiral_Bob is offline  
Old 12-28-2000, 03:02 PM   #4
Guest
Guest
Re: Wacky Wheels serial connection
It is, indeed, a 8250 UART on the 486 (says MSD).

(But why can I connect to the internet with a 33k6 Modem, although you say "... is not able to handle higher speeds above 9600"?)

Why does this serial connection not work, although it works with newer games like C&C - Red Alert?

------------------
 
Old 12-30-2000, 01:07 AM   #5
Admiral_Bob
Re: Wacky Wheels serial connection
Quote:
Originally posted by TomKa:
(But why can I connect to the internet with a 33k6 Modem, although you say "... is not able to handle higher speeds above 9600"?)

Why does this serial connection not work, although it works with newer games like C&C - Red Alert?
Is it an internal or external modem? If it's an internal modem, it provides it's own 16550 UART chip exclusively for use with the modem. If you're plugging an external modem into the 486, chances are that you're only getting 9600bps out of it even though your software says it's transmitting at 33600bps.

The problem with 8250 chips is that they have no receive/transmit buffers and that they require a hardware interrupt for every bit that gets sent or received. Transmitting at 9600bps requires 9600 interrupts/second which puts a lot of strain on the CPU. You might get more out of an 8250 chip (like 19200), but the software probably has to be heavily optimised for it.

C&C was probably optimised to deal with 8250 chips, being a RTS game with simple 2D graphics, it doesn't require a great deal of CPU speed and probably can get by with lots of interrupt overhead. Wacky Wheels, being a pseudo-3D game would obviously have more problems since it uses more processor time.

The 16550 UARTs solve this problem with memory buffers that buffer up something like 128 bits or so and only send an interrupt every 128 bits, easing CPU load.

------------------
__________________
A d m i r a l B o b
Admiral_Bob is offline  
Old 12-30-2000, 06:35 AM   #6
Guest
Guest
Re: Wacky Wheels serial connection
Quote:
Originally posted by Admiral_Bob:
Is it an internal or external modem? If it's an internal modem, it provides it's own 16550 UART chip exclusively for use with the modem. If you're plugging an external modem into the 486, chances are that you're only getting 9600bps out of it even though your software says it's transmitting at 33600bps.
...
I used the same port on the 486 (COM2) to surf in the internet with a 33.6 k Modem for over a year! If that really would have been 9600 bps connections I would have fallen asleep ... I think that cannot be true.

Tom
 
Old 12-30-2000, 02:39 PM   #7
Guest
Guest
Re: Wacky Wheels serial connection
The max 8250 DTE speed without excessive errors is about 19.2 Kb/s, but 9.6 Kb/s is the max reliable speed. I think you are limited to 9.6 with games using the 8250 UART due to the fact they use no error correction whereas a normal modem connection uses error correction.

Note that even a modem to modem connection with Wacky using an 8250 is limited to 9.6 due to the fact error correctioon is disabled in the ini string.

Due yourself a favor and get a 16550 serial card. If you use this for your modem you will be able to use a DTE speed of 115.2 Kb/s to connect to the Net or BBS. You should be able to use a higher speed with serial games too but I don't think that high (115.2)
 
Old 01-03-2001, 03:06 AM   #8
AncientCoder
Re: Wacky Wheels serial connection
The game needs a null modem cable for straight serial play and a COM port that's not connected to anything. So basically
don't piggy back off the modem port to connect the two together on a straight link.


Because it's getting as far as "Checking Version" then it means that the two have managed to sync. However when I checked the code there is a timeout so I don't understand why the machine locked up.

The 8250 UART may not help things but Wacky does not send that much data on a straight serial link connection. A single packet size is 2 bytes for a serial link connection and 6 for a dial up modem connection.



[This message has been edited by AncientCoder (edited 01-03-2001).]
AncientCoder is offline  
Old 01-03-2001, 03:13 PM   #9
Guest
Guest
Re: Wacky Wheels serial connection
So, actually it should work?

What exactly is being done, when "Checking version" appears?
I checked the bytes being sent with a "terminal program" but they don't make sense to me ...

What should happen, if the connection is successful? (Which menu should appear on the screen?)
 
Old 01-03-2001, 09:44 PM   #10
Guest
Guest
Re: Wacky Wheels serial connection
This is from:
http://www.3drealms.com/tech/rott.html#nullmodem

If you were using an adaptor; Could it apply to Wacky Wheels too?

Null modem Cable layout
When we were in the testing Stages with Rise of the Triad, and Duke 3D we tested a lot of different Null Modem Adapters and none of them would work up to standard.

I actually can not answer your question on what the difference is, as up until I tried to get them to work I had no idea that there was a difference.

Please make sure that you are using a null modem cable.
 
Old 01-04-2001, 02:17 AM   #11
AncientCoder
Re: Wacky Wheels serial connection
Quote:
Originally posted by TomKa:

What exactly is being done, when "Checking version" appears?
What should happen, if the connection is successful? (Which menu should appear on the screen?)
When Wacky checks the version it is simply checking if the other computer is Shareware/Registered or upgraded. If the two versions are different then it will drop to the lowest version because there may be tracks that the shareware version cannot play.

It sends two bytes when checking the version. The first byte will be (ASCII) one
of the following :-

1 - For Shareware
2 - For registered
3 - For registered and upgraded

The second byte will be 0.

If the two versions are the same the caller will control the menu. The other machines menu will now be controlled by you (Bit like PC anywhere)

If the two are different the game will inform you that it will drop to the lowest version and then continue as normal as above.

If you have the shareware version on both ends you should see 1 being sent and transmitted from both computers.

Do both computers hang when checking version is up on the screen?




------------------
AncientCoder is offline  
Old 01-07-2001, 07:28 AM   #12
Guest
Guest
Re: Wacky Wheels serial connection
Here is what I experienced with my self-written "terminal program"
using a serial null modem cable on COM2 with 9600 baud on both the 486 and the PII:

Both PCs send the byte 127 (dec.) when waiting for SYNC. After they received the byte 127 from the other part, they move on to CHECKING VERSION.
I found out, that both the sending and the receiving part send the bytes 68, 1, 0, 0, 93, 147. I suppose, that the second value is the version id, as I use the shareware version on both sides.

At that time (when WW runs on both PCs), the 486 always hangs up and the PII finds itself back in the main menu. (The only way to "awake" the 486 again is to select MAKE CONNECTION on the PII again -> when starting a new SYNC, the 486 returns again to the main menu)

When I use my terminal program to "simulate" sending the above mentioned byte row 68, 1, 0, 0, 93, 147 the PII always returns to the main menu without any message. What is the correct "code" to tell the PII that everything is OK? (Is it 147? Is it 127? or what?)

BTW: Should I set the Interbyte Delay in the SETUP program?
 
Old 01-07-2001, 07:54 AM   #13
Guest
Guest
Re: Wacky Wheels serial connection
Hi Guys,

I'm a newbie to this forum, but I have had little trouble getting the serial version to work between two PC's

Tip - use a decent null modem cable (full hardware handshaking)

Here is a really good question for you all tho...

I have been playing around with some serial port redirectors to enable two players to play on a TCP/IP network. As yet, I can only find "one end" of the redirection. (lantronix redirector)

Any-one else that has some good ideas this way would be good. (maybe it can become a pseudo standard for the game)

Hope that this may put extra life into a game that my kids love....


Macca


------------------
 
Old 01-07-2001, 01:22 PM   #14
Guest
Guest
Re: Wacky Wheels serial connection
Quote:
Originally posted by JohnnyMac:
I have been playing around with some serial port redirectors... (lantronix redirector)
Howdy. Maybe you could help me on Lantronix "fixes".

I looked into their modem redirector software some time ago. I then found out that I had to but expensive hardware for both ends. Then to use DOS programs with the modem redirector software (only in a Windows DOS box) I would have to use virtual port software from turbocom.com (I have used this).

I was thinking http://www.taltech.com/products/tcpcom.htm

Am I lost here?

[This message has been edited by GeeGee (edited 01-07-2001).]
 
Old 01-10-2001, 03:49 AM   #15
AncientCoder
Re: Wacky Wheels serial connection
Quote:
By Tomka...
I found out, that both the sending and the receiving part send the bytes
68, 1, 0, 0, 93, 147. I suppose, that the second value is the version id, as I use the shareware version on both sides.
Sorry I have been away so I am late with this.

That is a Modem packet not a serial link packet!! I now even more confused

Ok here goes this may help.

On a straight serial link Wacky only sends two bytes per packet. So after the
CHECKING VERSION has been completed the computer that made the connection will
send to the other computer what was pressed on the keyboard. The slave will then
receive these as if it came through the keyboard.

Here is some code (Don't know why but if you can read it then it might help)

#define K_UP 1
#define K_DOWN 2
#define K_LEFT 1
#define K_RIGHT 2
#define K_B1 4
#define K_B2 8
#define K_B3 16
#define K_B4 32
#define K_ESC 64

void kpack_menu(void)
{
send_byte1=0;
send_byte2=0;
if(up) send_byte1+=K_UP;
if(down) send_byte1+=K_DOWN;
if(button1) send_byte1+=K_B1;
if(esc_menu) send_byte1+=K_ESC;

}

Basically in the menu system the first byte is only needed. You should be seeing the
values passed.


However your example of 68, 1, 0, 0, 93, 147 indicates the following. In a modem game
the program needs more control of bad data. So the first byte is the type of packet (in your case DATA_PACKET)
the second and third are the actual data, as in a normal serial link, the fourth byte is the packet number and the last
two bytes are a CRC of the total packet.

You should not be seeing this type of packet in a normal serial link as you would have
had to physically dial the other computer to see this.

The interbyte delay is not needed.

Cheers
Andy

------------------


[This message has been edited by AncientCoder (edited 01-10-2001).]
AncientCoder is offline  
Old 01-10-2001, 03:59 AM   #16
AncientCoder
Re: Wacky Wheels serial connection
Quote:
Originally posted by JohnnyMac:
Hi Guys,
Any-one else that has some good ideas this way would be good. (maybe it can become a pseudo standard for the game)
Haven't had any direct experience of this
technique but it sounds interesting.

If I had time, which I never have, I wouldn't
mind having a crack at moving the game into
Windows. Heck I may even convert it to Shockwave one day



------------------
AncientCoder is offline  
Old 01-29-2001, 05:29 AM   #17
Guest
Guest
Re: Wacky Wheels serial connection
Wow, it has been a while between visits....

Ok... for GeeGee, I have had a look at that link, and it works on a different premise to a redirector....

TCPCom intercepts real data from a real serial port and sends it via TCP/IP. (so your applicaton requires 2 serial ports)

Redirectors should intercept a serial call on the bus side of the serial port (software side) and put the data over TCP/IP which only needs one serial port.

There used to be a redirector in OS2 called ComTCP, which did exactly this.

I am now looking into anything that will redirect, like IPX or anything else.

The hard part, is that it has to work at a dos level, but still make use of the windows networking.


Now for a tricky question....

How does whacky Wheels determine which serial port to try???


All help greatfully accepted!!!


The Pseudo standard that I was talking about is a prety much tried and tested nearly foolproof way to get this to work, and one that passes inspection by the great programming gods...

CYA later,


Macca


------------------
 
 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -6. The time now is 08:39 AM.

Page generated in 0.35293102 seconds (100.00% PHP - 0% MySQL) with 15 queries

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.

Website is 1987-2014 Apogee Software, Ltd.
Ideas and messages posted here become property of Apogee Software Ltd.