Image Map Image Map
Page 2 of 2 FirstFirst 12
Results 11 to 19 of 19

Thread: Flight simulator 2.0 3.0 8087 questions.

  1. #11
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,167
    Blog Entries
    1

    Default

    I only saw the 8087 emulator in TERRAIN.EXE, not SIMCITY.EXE, hence my response. If TERRAIN.EXE is also part of the main gameplay, then I apologize.

    Inclusion of the 8087 emulation library is not proof that the game takes advantage of the 8087 to any significant degree, though.
    Last edited by Trixter; November 15th, 2019 at 02:39 PM.
    Offering a bounty for:
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  2. #12
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,167
    Blog Entries
    1

    Default

    Quote Originally Posted by Cloudschatze View Post
    What's nice is that it will also honor the "nomath/disable" state of the "NO87" DOS environment variable
    SimCity was compiled with Microsoft C and this is a feature of its 8087 emulation library.

    While no guarantee of actual 8087 support or speedup, I decided to scan all DOS games to see if this string shows up anywhere else. It turns out that most games created with Microsoft C included the library, so this is found in hundreds if not thousands of games. The only games that could possibly be sped up like this would be simulations, so here is an incomplete list of simulations that also include Microsoft's 8087 emulation library up to 1989: (Again, this is not evidence that these games are sped up by the use of an 8087)

    Air Traffic Controller [SW] (1988)(MicroComputing Concepts) [Simulation]
    Amarillo Slim's Real Poker Five Card Stud (1989)(Villa Crespo Software) [Simulation, Cards]
    Any Sports Team Management (1989)(Pat Rankin) [Strategy, Simulation]
    Armada (1989)(Personal Software Services) [Simulation, Strategy]
    Austerlitz (1989)(Mirrorsoft Ltd., Personal Software Services) [Simulation, Strategy]
    Battles Of Napoleon (1989)(Strategic Simulations, Inc.) [Strategy, War]
    Black Monday (1987)(Keypunch Software, Inc.) [Simulation]
    Car Builder v2.02 (1989)(Optimum Resource) [Educational, Simulation]
    Corporate Raider- The Pirate of Wall St. (1988)(Cosmi Corporation) [Simulation, Strategy]
    Couch Coach Fantasy Football Draft [SW] (1989)(Potato League Sports) [Simulation, Sports]
    Decision at Gettysburg (1988)(Tiglon Software) [Strategy, Simulation]
    Fast and Easy Computer Football Game [SW] (1989)(Virginia Tech Intellectual Properties, Inc.) [Strategy, Simulation]
    Franchise Football League (1988)(Space Tech Enterprises) [Simulation, Sports]
    Inside Trader- The Authentic Stock Trading Game v2.0 (1987)(Cosmi Corporation) [Simulation]
    Keno (1989)(Stephen Yim) [Simulation]
    Las Vegas EGA Casino, The [SW] (1989)(Ted Gruber Software) [Simulation, Cards]
    Malta Storm v1.40 (1989)(Simulations Canada) [Simulation, Strategy, War]
    Miramar, Jet Fighter Simulator [SW] (1989)(Awesoft) [Action, Simulation]
    NFL Pro League Football (1989)(Data East Corporation) [Simulation, Sports]
    Ocean Ranger (1989)(Activision Publishing, Inc.) [Simulation]
    Oil Imperium (1989)(reLINE Software) [Simulation]
    Oil Tycoon v2.0 [SW] (1988)(Rocky Mountain Software) [Strategy, Simulation]
    Orbiter (1986)(Spectrum HoloByte, Inc.) [Educational, Simulation] [!]
    PC Pro-Golf v4.0 [SW] (1989)(CMA Software) [Sports, Simulation]
    Railroad Switch Challenge v5.0 (1989)(Fred Miller) [Simulation, Strategy]
    Rapcon (1989)(Wesson International) [Simulation]
    Rommel- Battles for North Africa v2.0 (1989)(SSG Strategic Studies Group Pty Ltd.) [Simulation, Strategy]
    SimCity (1989)(Brøderbund Software, Inc.) [Simulation][!]
    Sons of Liberty (1988)(Strategic Simulations, Inc.) [Strategy]
    Space Flight Simulator v0.01 (Demo) (1989)(Bywater Software) [Simulation]
    Tracon (1988)(Wesson International) [Simulation]
    Virtual Park [SW] (1989)(Virtual Technology) [Simulation, Sports]
    Waterloo (1989)(Strategic Simulations, Inc.) [Simulation, Strategy, War]
    Offering a bounty for:
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  3. #13

    Default

    Quote Originally Posted by Trixter View Post
    It would not have helped, and in fact would have made things worse. The 8087 can perform a floating-point multiply faster than the 8086 can, but using floating-point numbers for the entire flight model, 3-D world coordinates, and rasterization would have been unacceptably slow, as the 8086 must handle the majority of those operations and can only natively work with integers. Until the Pentium, most x86 software realtime 3-D displays used integer-based fixed-point numeric representations.
    .
    It would have helped. Have you ever programmed in x86 assembly? I doubt it otherwise you would have known that 8087 can handle 64-bit integers for example along with other formats which existence is obviously a mystery to you. Decades before x64 was introduced!

  4. #14
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,167
    Blog Entries
    1

    Default

    I have extensive experience in both 8086 and 8087 assembly, which is precisely why I am making these statements.

    The 8087 is only faster than the 8086 for complex floating-point math operations. A flight simulator needs to use simple math operations in order to maintain a usable framerate. Every flight simulator made during the first decade of the IBM PC used fixed-point integer representations of complex numbers to maintain this speed.

    Even if the 8087 were somehow faster than the 8086 for integer math, there is still the matter of pushing and popping values on/off the 8087's register stack, which also takes time.
    And even if the stack operations were somehow free, the resulting floating-point values would need to be converted to integers anyway for the world polygon rendering.
    Offering a bounty for:
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  5. #15

    Default

    Quote Originally Posted by george View Post
    Have you ever programmed in x86 assembly?

    A lot of people here probably find this question very funny. I’m pretty sure that Trixter is some sort of magician with x86 assembly. If only there were some sort of demo that could highlight that for you.

  6. #16

    Default

    Quote Originally Posted by Trixter View Post
    I have extensive experience in both 8086 and 8087 assembly, which is precisely why I am making these statements.

    The 8087 is only faster than the 8086 for complex floating-point math operations. A flight simulator needs to use simple math operations in order to maintain a usable framerate. Every flight simulator made during the first decade of the IBM PC used fixed-point integer representations of complex numbers to maintain this speed.
    That's exactly because the coprocessors were costly.

    Quote Originally Posted by Trixter View Post
    Even if the 8087 were somehow faster than the 8086 for integer math, there is still the matter of pushing and popping values on/off the 8087's register stack, which also takes time.
    And even if the stack operations were somehow free, the resulting floating-point values would need to be converted to integers anyway for the world polygon rendering.
    The integer conversion is done by the coprocessor transparently upon data transfers (FILD, FIST, etc.) when integers are being moved. The pushing and popping of values you mention is from FPU's internal registers (e.g. the FPU's stack) and is much faster than RAM transfers and is analogue to CPU's MOV.

  7. #17
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,167
    Blog Entries
    1

    Default

    Your response consists of factually true statements that do nothing to prove your statement "It would have helped". If you have specific thoughts on how an 8087 would have sped up Microsoft Flight Simulator on 808x hardware, I'd like to hear them.
    Offering a bounty for:
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  8. #18
    Join Date
    Jan 2005
    Location
    Principality of Xeon (NJ)
    Posts
    1,433

    Default

    First off, and a thousand pardons if it has already been mentioned, the 8087 only comes into play when a program specifically makes use of it. Otherwise it makes no difference whether the mobo has one or not. As said some programs Will take advantage of it if available. That's because they were specifically coded to make use of it, and test to see if there is one present from the get go. There is no automatic benefit to having one installed.

  9. #19
    Join Date
    May 2009
    Location
    Connecticut
    Posts
    4,463
    Blog Entries
    1

    Default

    The default precision of the 8087 may be excessive for many games. How many small sub-pixels does it make sense to subdivide a screen into?

    A programmer can always compile three versions of a program and see how it performs. One without floating point, one with the full floating point using the 8087 as much as possible, and the third doing the floating point with 8086 instructions only eschewing the 8087. I suspect in many cases the 8087 will provide no increase in performance and sometimes even result in slightly slower code.

    I haven't done much with an assembler and 8087 code but I did do some Fortran suggesting the coprocessor sometimes should be ignored even if available.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •