home *** CD-ROM | disk | FTP | other *** search
/ Toolkit for DOOM / DOOMTOOL.ISO / net_doom / ser3.txt < prev    next >
Text File  |  1994-04-25  |  5KB  |  107 lines

  1. 1.    I won't compile Id's non-portable small-model code in large-model.
  2. 2.    I won't compile Id's non-portable small-model code in large-model.
  3. 3.    I won't compile Id's non-portable small-model code in large-model.
  4. ...
  5. 998.  I won't compile Id's non-portable small-model code in large-model.
  6. 999.  I won't compile Id's non-portable small-model code in large-model.
  7. 1000. I won't compile Id's non-portable small-model code in large-model.
  8.  
  9. Ok, I've learned my lesson now. :-)
  10.  
  11. There's a very interesting (and non-portable) line of code that
  12. copies all of sersetup's arguments into a string so it can pass them
  13. to doom.exe.  The reason ser.exe and ser2.exe don't work if you use
  14. any arguments is that the arguments aren't getting passed -- and that
  15. includes the two new arg's that serstup appends to the list which are
  16. "-net" and the address of the doomcom structure for doom.exe to use.
  17. Without those last two, doom.exe just starts up and goes straight to
  18. the demo.
  19.  
  20. My appologies.
  21.  
  22. Well, having solved that problem, I've now learned quite a bit about
  23. how sersetup works.  I've created a ser3.exe, which is in ser3.zip.
  24. It's pretty close to ser2.exe, but I added a few print
  25. statments in the connect() routine so we can see the PLAY0_0p msgs
  26. being passed.  I also modified the stats a little, and added a couple
  27. of new ones such as avg. bytes sent and received per minute, and per
  28. interrupt.  Maybe that'll give us some kind of benchmark to compare
  29. with.  And, of course, it still has these fixes:  (Are there more?)
  30.  
  31.   o  head and tail becoming too large (actually all mod's have been removed).
  32.   o  extratics now set to 1, plus a -noextratics option.
  33.   o  able to run with up to 19200 baud with the -19200 option.
  34.   o  -irq and -port options fixed
  35.   o  able to run with -dial and -answer, plus setup.exe (rename ser3.exe to
  36.      sersetup.exe).  Ditch the dial.bat and answer.bat that came with ser2 :-)
  37.   o  usage info with -? or -help.
  38.  
  39. I did a lot of testing, and had success with all 3 connection
  40. types:  using a comm program, -dial & -answer, and setup.exe.  I also
  41. tried using several arguments such as -deathmatch, -com2, -19200,
  42. etc.  I also used the modem.cfg file for the init string -- but be
  43. aware that some modems don't process anything after ATZ -- AT&F
  44. (reset to factory defaults) is probably a safer bet.  I also sent
  45. this to a few people to let them try it out first, and it seems to be
  46. working right this time.  One person said they saw a big difference
  47. with 14400, another said -player1 on the slower computer helped
  48. quite a bit.
  49.  
  50. For those interested, here's the normal flow of msgs during the connect()
  51. routine ("Attempting to connect..."):
  52.  
  53.         A                 B
  54.     PLAY0_0 --->
  55.                     <---PLAY1_0
  56.     PLAY0_1 --->
  57.     (launch doom)
  58.                     <---PLAY1_2
  59.                     (launch doom)
  60.  
  61. The first digit after the PLAY is the player #, the second is a
  62. sequence # they use to figure out when both have decided on the
  63. correct player #.  In the above example, computer A is player 0, and
  64. B is player 1.  Both machines start at player 0 (unless the -player1
  65. option is selected), but if a machine reads the PLAY0_0 msg from the
  66. other side, it increments its own player # to 1.  If you've had the
  67. problem of getting stuck in the "Attempting..." loop, there are now
  68. print statements to help figure out what's going wrong.  I had that
  69. happen once when one modem didn't have the proper setting for 14440
  70. baud, but the other one did.  The modems connected, but they couldn't
  71. talk.
  72.  
  73. Here are some numbers I got with the stats at the end of the game:
  74.  
  75. 1.  With two 486-66's and two 14.4 modems (16550 UARTs) using 14,400 baud:
  76.     313,261 Bytes read                    305,109 Bytes written
  77.      89,444 Receive interrupts             38,151 Transmit interrupts
  78.    32,239.6 Avg. rx bytes/minute         31,400.6 Avg. tx bytes/minute
  79.         3.5 Avg. rx bytes/rx interrupt        8.0 Avg. tx bytes/tx interrupt
  80.  
  81. 2.  With a 486-66 and a 386-25, both with same modems above:
  82.     126,044 Bytes read                     55,637 Bytes written
  83.      37,687 Receive interrupts              7,232 Transmit interrupts
  84.    22,113.0 Avg. rx bytes/minute          9,760.9 Avg. tx bytes/minute
  85.         3.3 Avg. rx bytes/rx interrupt        7.7 Avg. tx bytes/tx interrupt
  86.  
  87. The first configuration was of course perfectly smooth.  The second
  88. was unplayable.  One person wrote me and said he had only 0.8 bytes
  89. per interrupt, but it was perfectly smooth after he used 14400 baud.
  90. My guess is that it's better to have lower bytes per interrupt on the
  91. read side, and higher on the write side.  This may be more true when
  92. using a 16550 UART, since it's writing up to 16 bytes each
  93. interrupt.  Also, since the read interrupt is generated on the first
  94. byte (in the 16 byte buffer), if you get low bytes/interrupt then the
  95. computer is getting to that first byte very quickly and not letting
  96. many pile up in the queue.  You would hope so especially if you have
  97. an 8250 (16450) UART, since it only has a one byte buffer.  I haven't
  98. done enough testing to see exactly what the difference in the numbers
  99. is when using a 16450 with the same configuration -- soon though...
  100.  
  101. Any results sent to me would be greatly appreciated.  It'd be interesting
  102. to know your type of hardware and modem speed as well as some of the
  103. numbers you got.  Maybe we'll be able to figure out what configurations
  104. are really necessary for a smooth game.  Thanks alot,
  105.  
  106. Russell     (gilbert@esd.dl.nec.com)
  107.