Hard Light Productions Forums

General FreeSpace => FreeSpace & FreeSpace Open Support => Topic started by: Avder on August 17, 2015, 09:09:14 pm

Title: Joystick turning lag
Post by: Avder on August 17, 2015, 09:09:14 pm
Hi there

I'm having a problem with getting a joystick to work properly that I can't seem to figure out, and searching through this forum hasn't led me to anyone who have had similar problems.

The problem I'm having is there is a discernible lag between when I start moving my joystick and when my ship in game begins to respond.  There's anywhere from a quarter to a half second of lag between my hand doing something and something happening in game.  Button presses on the joystick are instant.  Keyboard input is also instant. Moving the mouse also results in instant movement.

As an example, I'll leave my stick handle centered and then slam it all the way to full deflection.  The stick will reach the fullest extent of it's range and then an instant later the ship will start turning.

So far I've tried multiple versions of FSO including the current "final" release, two prior releases, and the current antipodes version which uses SDL for joystick input instead of DirectInput.

I've also used 4 different joysticks as well as both manufacturer drivers and default windows HID drivers for one of them:
Saitek Cyborg EVO (both mfg and default drivers), MS Sidewinder 3D Pro with Grendel adapter, MS Sidewinder Precision 2, MS Xbox 360 controller.

I've also tried my joysticks in Descent 1 & 2 (rebirth versions), Descent 3, and Oolite for comparison, but there is no joystick lag in any of them.  Increasing joystick sensitivity predictably does nothing except make me overshoot my targets even worse than I already am.

Any help would be appreciated.  For now I'm working around it by using an autohotkey script to emulate X and Y axis movement with a mouse as well as assigning buttons on my stick to keys, but this means I can't use my twist axis for roll and have to do it on the keyboard.
Title: Re: Joystick turning lag
Post by: z64555 on August 17, 2015, 09:24:18 pm
Alright, and this is for the FS2 campaign correct?

Try Fredding a test mission and try out the various craft (Just open FRED and then save the empty mission it creates within your /data/missions subdirectory). Paying particular attention to differences between the light and fast interceptor craft and the slower bomber craft.


If you are able to, could you also take a video of it?
Title: Re: Joystick turning lag
Post by: Avder on August 17, 2015, 09:41:00 pm
Alright, and this is for the FS2 campaign correct?

Try Fredding a test mission and try out the various craft (Just open FRED and then save the empty mission it creates within your /data/missions subdirectory). Paying particular attention to differences between the light and fast interceptor craft and the slower bomber craft.


If you are able to, could you also take a video of it?

Have tried it in FS2 unmodded as well as with the media vp's, as well as the FS1 port with and without media VP's.

What made me notice is was I was going to play through the whole series starting from the beginning and I noticed the Apollo fighter was a lot harder to control than I remember from the last time I played years and years ago, so I loaded up the Vasudan gauntlet and flew a Ulysses and the problem persisted.  I then loaded up regular FS2 and found the Erinyes has the same problem.

I'll see if I can take a video.  My hardware is rather old so programs like fraps and the like don't work too well.
Title: Re: Joystick turning lag
Post by: Avder on August 17, 2015, 10:14:01 pm
Here's a quick video

https://www.youtube.com/watch?v=lvF1KRAGhRg

The first time I'm firing by bringing my hand back hard directly against the trigger button.

The second time I fire I slapped the left mouse button.

The first time I'm firing it takes until the 2nd shot is firing before the ship responds.

The second time it responds just as I'm firing the first shot.

I know it doesn't look like much of a difference, but it makes a HUGE difference when trying to shoot at anything that's not flying straight.

Response is the same on the FS1 Apollo, Valkyre, Herculese, Ulysses, and FS2 Erinyes.
Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 18, 2015, 04:35:23 am
And this happens with multiple different joysticks, but only in FSO? Please post your fs2_open.log file.  Instructions on how to do this can be found in this post.
Title: Re: Joystick turning lag
Post by: Avder on August 18, 2015, 06:31:48 am
Here you go:

Code: [Select]
==========================================================================
DEBUG SPEW: No debug_filter.cfg found, so only general, error, and warning
categories can be shown and no debug_filter.cfg info will be saved.
==========================================================================
FreeSpace 2 Open version: 3.7.2.11329
Passed cmdline options:
  -no_vsync
  -no_glsl
  -window
Building file index...
Found root pack 'C:\Games\FreeSpace2\root_fs2.vp' with a checksum of 0xce10d76c
Found root pack 'C:\Games\FreeSpace2\smarty_fs2.vp' with a checksum of 0xddeb3b1e
Found root pack 'C:\Games\FreeSpace2\sparky_fs2.vp' with a checksum of 0x164fe65a
Found root pack 'C:\Games\FreeSpace2\sparky_hi_fs2.vp' with a checksum of 0xa11d56f1
Found root pack 'C:\Games\FreeSpace2\stu_fs2.vp' with a checksum of 0xd77da83a
Found root pack 'C:\Games\FreeSpace2\tango1_fs2.vp' with a checksum of 0x4c25221e
Found root pack 'C:\Games\FreeSpace2\tango2_fs2.vp' with a checksum of 0x86920b82
Found root pack 'C:\Games\FreeSpace2\tango3_fs2.vp' with a checksum of 0x705e8d71
Found root pack 'C:\Games\FreeSpace2\warble_fs2.vp' with a checksum of 0xd85c305d
Searching root 'C:\Games\FreeSpace2\' ... 52 files
Searching root pack 'C:\Games\FreeSpace2\root_fs2.vp' ... 157 files
Searching root pack 'C:\Games\FreeSpace2\smarty_fs2.vp' ... 10 files
Searching root pack 'C:\Games\FreeSpace2\sparky_fs2.vp' ... 3027 files
Searching root pack 'C:\Games\FreeSpace2\sparky_hi_fs2.vp' ... 1337 files
Searching root pack 'C:\Games\FreeSpace2\stu_fs2.vp' ... 2355 files
Searching root pack 'C:\Games\FreeSpace2\tango1_fs2.vp' ... 32 files
Searching root pack 'C:\Games\FreeSpace2\tango2_fs2.vp' ... 15 files
Searching root pack 'C:\Games\FreeSpace2\tango3_fs2.vp' ... 10 files
Searching root pack 'C:\Games\FreeSpace2\warble_fs2.vp' ... 52 files
Searching root 'd:\' ... 0 files
Found 11 roots and 7047 files.
Setting language to English
Game Settings Table: Using Standard Loops For SEXP Arguments
Game Settings Table: Using standard event chaining behavior
Game Settings Table: External shaders are DISABLED
Initializing OpenAL...
  OpenAL Vendor     : Creative Labs Inc.
  OpenAL Renderer   : Software
  OpenAL Version    : 1.1

  Found extension "ALC_EXT_EFX".

  Sample rate: 44100 (44100)
  EFX enabled: NO
  Playback device: Generic Software on Speakers (Realtek High Definition Audio)
  Capture device: Line in at rear panel (Blue) (R
... OpenAL successfully initialized!
Initializing OpenGL graphics device at 1024x768 with 32-bit color...
  Initializing WGL...
  Requested WGL Video values = R: 8, G: 8, B: 8, depth: 24, stencil: 8, double-buffer: 1
  Actual WGL Video values    = R: 8, G: 8, B: 8, depth: 24, stencil: 8, double-buffer: 1
  OpenGL Vendor    : ATI Technologies Inc.
  OpenGL Renderer  : ATI Radeon HD 4800 Series
  OpenGL Version   : 3.3.11672 Compatibility Profile Context

  Using extension "GL_EXT_fog_coord".
  Using extension "GL_ARB_multitexture".
  Using extension "GL_ARB_texture_env_add".
  Using extension "GL_ARB_texture_compression".
  Using extension "GL_EXT_texture_compression_s3tc".
  Using extension "GL_EXT_texture_filter_anisotropic".
  Using extension "GL_ARB_texture_env_combine".
  Using extension "GL_EXT_compiled_vertex_array".
  Using extension "GL_EXT_draw_range_elements".
  Using extension "GL_ARB_texture_mirrored_repeat".
  Using extension "GL_ARB_texture_non_power_of_two".
  Using extension "GL_ARB_vertex_buffer_object".
  Using extension "GL_ARB_pixel_buffer_object".
  Using extension "GL_SGIS_generate_mipmap".
  Using extension "GL_EXT_framebuffer_object".
  Using extension "GL_ARB_texture_rectangle".
  Using extension "GL_EXT_bgra".
  Using extension "GL_ARB_texture_cube_map".
  Using extension "GL_EXT_texture_lod_bias".
  Using extension "GL_ARB_point_sprite".
  Using extension "GL_ARB_shading_language_100".
  Using extension "GL_ARB_shader_objects".
  Using extension "GL_ARB_vertex_shader".
  Using extension "GL_ARB_fragment_shader".
  Using extension "GL_ARB_shader_texture_lod".
  Using extension "GL_ARB_texture_float".
  Using extension "GL_ARB_draw_elements_base_vertex".
  Found special extension function "wglSwapIntervalEXT".

  Max texture units: 8 (2)
  Max elements vertices: 2147483647
  Max elements indices: 16777215
  Max texture size: 8192x8192
  Max render buffer size: 8192x8192
  Can use compressed textures: YES
  Texture compression available: YES
  Post-processing enabled: NO
  Using trilinear texture filter.
... OpenGL init is complete!
Size of bitmap info = 742 KB
Size of bitmap extra info = 48 bytes
ANI cursorweb with size 24x24 (25.0% wasted)
GRAPHICS: Initializing default colors...
SCRIPTING: Beginning initialization sequence...
SCRIPTING: Beginning Lua initialization...
LUA: Opening LUA state...
LUA: Initializing base Lua libraries...
LUA: Beginning ADE initialization
ADE: Initializing enumeration constants...
ADE: Assigning Lua session...
SCRIPTING: Beginning main hook parse sequence....
Wokka!  Error opening file (scripting.tbl)!
TABLES: Unable to parse 'scripting.tbl'!  Error code = 5.
SCRIPTING: Inititialization complete.
SCRIPTING: Splash screen overrides checked
SCRIPTING: Splash hook has been run
SCRIPTING: Splash screen conditional hook has been run
Using high memory settings...
Wokka!  Error opening file (interface.tbl)!
WMCGUI: Unable to parse 'interface.tbl'!  Error code = 5.
Dutifully ignoring the extra sound values for retail sound 36, 'l_hit.wav'...
Dutifully ignoring the extra sound values for retail sound 37, 'm_hit.wav'...
Windows reported 16 joysticks, we found 1
Current soundtrack set to -1 in event_music_reset_choices
Wokka!  Error opening file (armor.tbl)!
TABLES: Unable to parse 'armor.tbl'!  Error code = 5.
ANI support1 with size 108x24 (25.0% wasted)
ANI damage1 with size 148x25 (21.9% wasted)
ANI wingman1 with size 71x53 (17.2% wasted)
ANI wingman2 with size 35x53 (17.2% wasted)
ANI wingman3 with size 14x53 (17.2% wasted)
ANI toggle1 with size 57x20 (37.5% wasted)
ANI head1 with size 164x132 (48.4% wasted)
ANI weapons1 with size 126x20 (37.5% wasted)
ANI objective1 with size 149x21 (34.4% wasted)
ANI netlag1 with size 29x30 (6.3% wasted)
ANI targhit1 with size 31x21 (34.4% wasted)
ANI time1 with size 47x23 (28.1% wasted)
ANI targetview1 with size 137x156 (39.1% wasted)
ANI targetview2 with size 4x96 (25.0% wasted)
ANI targetview3 with size 7x20 (37.5% wasted)
ANI 2_energy2 with size 86x96 (25.0% wasted)
ANI 2_reticle1 with size 40x24 (25.0% wasted)
ANI 2_leftarc with size 103x252 (1.6% wasted)
ANI 2_rightarc1 with size 103x252 (1.6% wasted)
ANI 2_toparc2 with size 35x24 (25.0% wasted)
ANI 2_toparc3 with size 41x29 (9.4% wasted)
ANI 2_lead1 with size 26x26 (18.8% wasted)
ANI 2_lock1 with size 56x53 (17.2% wasted)
ANI 2_lockspin with size 100x100 (21.9% wasted)
ANI energy1 with size 12x41 (35.9% wasted)
ANI 2_radar1 with size 209x170 (33.6% wasted)
loading animated cursor "cursor"
ANI cursor with size 24x24 (25.0% wasted)
Ships.tbl is : VALID
Weapons.tbl is : VALID
cfile_init() took 351
MVE: Buffer underun (First is normal)
Got event GS_EVENT_GAME_INIT (49) in state NOT A VALID STATE (0)
PLR => Loading 'Avder.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Parsing:  Scoring...
PLR => Parsing:  ScoringMulti...
PLR => Parsing:  HUD...
PLR => Parsing:  Variables...
PLR => Parsing:  Multiplayer...
PLR => Parsing:  Controls...
PLR => Parsing:  Settings...
PLR => Loading complete!
PLR => Verifying 'Avder.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Verifying complete!
PLR => Verifying 'Avidius.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Verifying complete!
ANI cursor.ani with size 24x24 (25.0% wasted)
PLR => Verifying 'Avder.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Verifying complete!
Got event GS_EVENT_MAIN_MENU (0) in state GS_STATE_INITIAL_PLAYER_SELECT (37)
PLR => Loading 'Avder.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Parsing:  Scoring...
PLR => Parsing:  ScoringMulti...
PLR => Parsing:  HUD...
PLR => Parsing:  Variables...
PLR => Parsing:  Multiplayer...
PLR => Parsing:  Controls...
PLR => Parsing:  Settings...
PLR => Loading complete!
CSG => Loading 'Avder.FreeSpace2.csg' with version 5...
CSG => Parsing:  Flags...
CSG => Parsing:  Info...
CSG => Parsing:  Missions...
CSG => Parsing:  Techroom...
CSG => Parsing:  Loadout...
CSG => Parsing:  Scoring...
CSG => Parsing:  RedAlert...
CSG => Parsing:  HUD...
CSG => Parsing:  Variables...
CSG => Parsing:  Settings...
CSG => Parsing:  Controls...
CSG => Parsing:  Cutscenes...
CSG => Parsing:  Last Missions...
CSG => Loading complete!
CSG => Loading 'Avder.FreeSpace2.csg' with version 5...
CSG => Parsing:  Flags...
CSG => Parsing:  Info...
CSG => Parsing:  Missions...
CSG => Parsing:  Techroom...
CSG => Parsing:  Loadout...
CSG => Parsing:  Scoring...
CSG => Parsing:  RedAlert...
CSG => Parsing:  HUD...
CSG => Parsing:  Variables...
CSG => Parsing:  Settings...
CSG => Parsing:  Controls...
CSG => Parsing:  Cutscenes...
CSG => Parsing:  Last Missions...
CSG => Loading complete!
ANI 2_mainwalk.ani with size 209x477 (6.8% wasted)
ANI 2_mainflyby.ani with size 509x189 (26.2% wasted)
ANI 2_maincrane.ani with size 192x116 (9.4% wasted)
ANI 2_mainexit.ani with size 319x174 (32.0% wasted)
ANI 2_mainbarracks.ani with size 273x158 (38.3% wasted)
ANI 2_mainreadyroom.ani with size 231x145 (43.4% wasted)
ANI 2_maintechroom.ani with size 69x119 (7.0% wasted)
ANI 2_mainoptions.ani with size 337x206 (19.5% wasted)
ANI 2_maincampaign.ani with size 308x190 (25.8% wasted)
Got event GS_EVENT_QUIT_GAME (5) in state GS_STATE_MAIN_MENU (1)
PLR => Saving 'Avder.plr' with version 2...
PLR => Saving:  Flags...
PLR => Saving:  Info...
PLR => Saving:  Scoring...
PLR => Saving:  ScoringMulti...
PLR => Saving:  HUD...
PLR => Saving:  Variables...
PLR => Saving:  Multiplayer...
PLR => Saving:  Controls...
PLR => Saving:  Settings...
PLR => Saving complete!
CSG => Saving 'Avder.FreeSpace2.csg' with version 5...
CSG => Saving:  Flags...
CSG => Saving:  Info...
CSG => Saving:  Missions...
CSG => Saving:  Techroom...
CSG => Saving:  Loadout...
CSG => Saving:  Scoring...
CSG => Saving:  RedAlert...
CSG => Saving:  HUD...
CSG => Saving:  Variables...
CSG => Saving:  Settings...
CSG => Saving:  Controls...
CSG => Saving:  Cutscenes...
CSG => Saving:  Last Missions...
CSG => Saving complete!
Freeing all existing models...
... Log closed, Tue Aug 18 06:22:58 2015

Completely unrelated, but is there a way to run the game in 16:9 but have the hud conform to 4:3 dimensions?  I'd like my target view and weapons loadouts in closer to the radar for easier viewing.
Title: Re: Joystick turning lag
Post by: AV8R on August 18, 2015, 05:58:16 pm
This is a post from another thread I had made that mostly explains this phenomenon. The info was taken from various other forums when I noticed the same thing:

That was back before my accuracy went to **** for whatever reason.  I can't use it effectively anymore.  Maybe it's the joystick (currently on x45, where before I had a Cyborg 3D gold), or this fuzzy direct input thing I've heard mentioned a couple of times.  I just can't nail down what's different.

On a few other message boards they had an explanation for this phenomenon. From the days of Windows 9x to now, the way Direct Input reacts to joystick movement has changed. It used to use absolute values from the joystick which would translate to instant movement in whatever direction (X,Y) away from 0 (zero - center) the joystick was moved. Whether you moved the joystick 25, 50, or 100% away from center and no matter how quickly or slowly you moved it, your ship would change direction based on input instantaneously. Conversely, releasing the joystick to center would instantly snap the ship to straight. This method actually made the joystick act more like a mouse.

Later, in order to make turning seem more "realistic" (and unfortunately, it really is), there was a delay added (attitude acceleration/deceleration) since it was felt that, realistically, it took time for a aircraft/starship/whatever to respond to input from its pilot based on the craft's speed, weight, drag, etc. The net effect is: if you were to slam the joystick 100% in any direction using the old Direct Input method, the ship would almost instantly turn in that direction whereas now it has to accelerate to full turn speed (which can take up to 1 second to accomplish) before reaching its maximum. Bottom line: this makes the joystick less responsive and has the effect of causing overcompensation when targeting - often overshooting the target you're trying to get a fix on (the ship has to accelerate into the turn but then has to decelerate when the target nears the reticle - the deceleration causing the overshoot).

Also, the effect is adjustable for game-designers to give a custom "feel" for various ships in a game (based on percentages from up of down from default, from what some have stated elsewhere). This makes it easier for designers to create different performance characteristics on the fly (for example, while the Valkyrie would be 5% less than default input values, the Medusa would be 40% less than default input values so it would seem "heavier" or more "sluggish" during directional changes).
Title: Re: Joystick turning lag
Post by: z64555 on August 18, 2015, 11:52:41 pm
AV8R: That's what we thought at first, but it isn't craft inertia in this case. With inertia, you *do* get an instantanious response from the joystick, but the ship needs a bit of time to accelerate up to the delta-theta.

What Avder is experiencing is some kind of bug with how FSO interacts with the hardware, and what's got me stumped is that it also appears on the Antipodes SDL-Everywhere builds.

Avder: What are your system specs for this machine? Specifically: OS brand and version, CPU, motherboard, amount of RAM, and video card. Are you using an expansion card to connect your joystick?

The debug should builds show your framerate, and should be at least 20 or 30 FPS.

Do you get the same lag when using the mouse?
Title: Re: Joystick turning lag
Post by: Avder on August 19, 2015, 12:14:05 am
This is a post from another thread I had made that mostly explains this phenomenon. The info was taken from various other forums when I noticed the same thing:

That was back before my accuracy went to **** for whatever reason.  I can't use it effectively anymore.  Maybe it's the joystick (currently on x45, where before I had a Cyborg 3D gold), or this fuzzy direct input thing I've heard mentioned a couple of times.  I just can't nail down what's different.

On a few other message boards they had an explanation for this phenomenon. From the days of Windows 9x to now, the way Direct Input reacts to joystick movement has changed. It used to use absolute values from the joystick which would translate to instant movement in whatever direction (X,Y) away from 0 (zero - center) the joystick was moved. Whether you moved the joystick 25, 50, or 100% away from center and no matter how quickly or slowly you moved it, your ship would change direction based on input instantaneously. Conversely, releasing the joystick to center would instantly snap the ship to straight. This method actually made the joystick act more like a mouse.

Later, in order to make turning seem more "realistic" (and unfortunately, it really is), there was a delay added (attitude acceleration/deceleration) since it was felt that, realistically, it took time for a aircraft/starship/whatever to respond to input from its pilot based on the craft's speed, weight, drag, etc. The net effect is: if you were to slam the joystick 100% in any direction using the old Direct Input method, the ship would almost instantly turn in that direction whereas now it has to accelerate to full turn speed (which can take up to 1 second to accomplish) before reaching its maximum. Bottom line: this makes the joystick less responsive and has the effect of causing overcompensation when targeting - often overshooting the target you're trying to get a fix on (the ship has to accelerate into the turn but then has to decelerate when the target nears the reticle - the deceleration causing the overshoot).

Also, the effect is adjustable for game-designers to give a custom "feel" for various ships in a game (based on percentages from up of down from default, from what some have stated elsewhere). This makes it easier for designers to create different performance characteristics on the fly (for example, while the Valkyrie would be 5% less than default input values, the Medusa would be 40% less than default input values so it would seem "heavier" or more "sluggish" during directional changes).

Well, I think my video above eliminates DirectInput as the culprit.  That video was taken using the current final release, but the result is exactly the same in the antipode SDL release.

AV8R: That's what we thought at first, but it isn't craft inertia in this case. With inertia, you *do* get an instantanious response from the joystick, but the ship needs a bit of time to accelerate up to the delta-theta.

What Avder is experiencing is some kind of bug with how FSO interacts with the hardware, and what's got me stumped is that it also appears on the Antipodes SDL-Everywhere builds.

Avder: What are your system specs for this machine? Specifically: OS brand and version, CPU, motherboard, amount of RAM, and video card. Are you using an expansion card to connect your joystick?

The debug should builds show your framerate, and should be at least 20 or 30 FPS.

Do you get the same lag when using the mouse?

Well when I generated that log I just let it load until I got to the hangar like the instructions said.  However I've never noticed any framerate problems.  In fact I'd say that my FPS in any version of FSO with any mod has never dropped below 60. In fact I know my FPS is way above 30 because when I recorded that video my FPS got locked to 30 which is the recording softwares limit and I can see a clear difference between 30 and 60.  You'll notice I do disable shaders tho through the command line.  That's because when I downloaded the antipode release suddenly everything was invisible except for ship lights that have been added in the media VP mods.  Guessing it's just cause my machine is old.

Anyway, here are my specs:
Intel Core 2 Quad Q8300 2.5GHz
Gigabyte UD3P motherboard
8 GB Ram
AMD HD4850 with 1GB of ram.

Both the Sidewinder Precision 2 and the Saitek Evo are connected through USB ports on the front panel of my computer, which are themselves connected to a USB header on the motherboard.  The Sidewinder 3D Pro is connected through a Grendel USB adapter which is connected to a USB port on the back panel, as is the 360 Controller (built in ports on the rear of the motherboard)

Running Windows Vista 64 bit, believe it or not.  Got it for free while attending school.

As for lag with the mouse, nope.  As you can see when I fire for the 2nd time in that little video, the mouse responds pretty much instantly as expected.  As I said, the first time I fire in that video it's by bringing my hand back HARD against the joysticks trigger.  The second time I fired was by slapping my hand down hard on the left mouse button.   With the joystick, it fires instantly but takes a while to start moving.  In fact I pulled the joystick back to full deflection before any turning took place.  So it's not like the input isn't getting to the game in time.

As I am currently running my joystick through a script that emulates it as a mouse, I get some slight delay with it, but nowhere near as bad as if I were using a joystick directly.  Basically less than half the lag seen in the video above when I fire for the first time.   The video was made with my joystick selected directly in the launcher.
Title: Re: Joystick turning lag
Post by: Avder on August 19, 2015, 06:36:04 am
Can add the Project 64 emulator with nrage 2.3c input plugin as programs that have no joystick input lag for both my saitek and xbox 360 controller.  My xbox 360 controller is also using custom drivers, so directinput all the way.
Title: Re: Joystick turning lag
Post by: z64555 on August 19, 2015, 01:15:00 pm
Ok, I figured out the issue.

Code: [Select]
playerman/playercontrol.cpp: 378
if ( (Joystick_last_reading == -1)  || timestamp_elapsed(Joystick_last_reading) ) {
// Read the stick
control_get_axes_readings(&Joystick_saved_reading[0], &Joystick_saved_reading[1], &Joystick_saved_reading[2], &Joystick_saved_reading[3], &Joystick_saved_reading[4]);
--> Joystick_last_reading = timestamp( 1000/10 ); // Read 10x per second, like we did in Descent.
}

The polling rate is using a rather slow polling rate of 10Hz, which is fine if the framerate is like, 20FPS or less, but seriously noticable otherwise.

I'll see if I can refactor this a bit to go with a faster poll rate, so expect a test build soonish.
Title: Re: Joystick turning lag
Post by: Avder on August 19, 2015, 01:24:26 pm
A 10 hz polling rate?  And they used that same rate in Descent?

Weird.

Dont most games poll close to 60Hz?

And is the mouse polled differently somehow?
Title: Re: Joystick turning lag
Post by: z64555 on August 19, 2015, 02:41:15 pm
Doesn't seem many folk had noticed the issue until recently, and whats weird is that the observed lag is twice that of what it's expected to be (200ms vs 100ms from the 10Hz polling).

FSO isn't limiting the mouse polling rate at all, it's whatever the OS decides to do.
Title: Re: Joystick turning lag
Post by: Avder on August 19, 2015, 03:44:50 pm
So what are you shooting for as far as polling?  Can it be dynamic and sync with framerate?  Or just go straight up 60hz?

Also I will happily tinker with the test build when it's ready.

And are joystick buttons polled differently?  I see it's labeled for axes.
Title: Re: Joystick turning lag
Post by: z64555 on August 19, 2015, 06:23:52 pm
Yes, the lag seems to be more noticeable as the framerate increases.

So what are you shooting for as far as polling?  Can it be dynamic and sync with framerate?  Or just go straight up 60hz?

Also I will happily tinker with the test build when it's ready.

And are joystick buttons polled differently?  I see it's labeled for axes.

FSO has a timing system that is largely independent of the framerate, so its best poll rate would be no faster than the framerate (which is good). MageKing and I have run some tests at different poll rates, with 18Hz significantly helping and 60 and 75 being smooth. I'm concerned that the higher poll rates may actually bring down the framerate on older machines, which is why I haven't completely abolished the limit and let it be governed by the framerate.

Since you've stated that you have an older machine, I'd like you to run a test build (https://dl.dropboxusercontent.com/u/97612992/FreeSpace2%20Open/SCP/fs2_open_3_7_3_joypoll-DEBUG.exe) that I've made.

This build removes the poll rate, and thereby has the joystick polling limited solely by the framerate. If you can, try to compare the frame rate of this one to another debug build to see if there's any major differences.
Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 19, 2015, 08:13:35 pm
Ok, z64555, I know you didn't want to hear from me specifically, but with this test build the delay seems to have improved from about .5 to .75 seconds to about .25 seconds without a drop in framerate (which normally runs at 75hz on my system).
.5 to .75 seconds? How is that even playable?

And you still have a delay of a quarter-second with this build? .25 seconds is a bigger delay than I have without polling every frame. Are these measurements exact, or your "gut feeling" of how long it takes?
Title: Re: Joystick turning lag
Post by: Avder on August 19, 2015, 08:32:57 pm
The polling change works beautifully, but I'm having some kind of weird axis problem with the test build:

For some reason while in game, whenever my throttle is at zero,  my ship will be at full bank right as well. Throttle at max results in no banking.  Twist axis doesn't do anything.

I have no idea how this is possible, because they bind correctly in the menus.

And yes I've verified they both work (input lagged) in the non-test versions.
Title: Re: Joystick turning lag
Post by: Avder on August 19, 2015, 08:52:37 pm
I can also confirm that the joypoll change has no effect on framerates.

Did testing by playing fsport/media vp's 2014 and playing the mission "paving the way" in the simulator.  In the joypoll debug build I get ~30fps while looking at the asteroid field.  In the current antipodes 9 debug build I also get ~30fps when looking at the asteroid field.  In the non-debug version of antipode 9, I get 60fps, so I assume I would also get 60 in a non-debug joypoll build. 

Any chance of getting that, with or without the roll/throttle axis stuff fixed?  The X/Y axis action is considerably smoother and more responsive than my makeshift joy2mouse workaround that I've been playing with up until now.
Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 19, 2015, 09:09:16 pm
.5 to .75 seconds? How is that even playable?

And you still have a delay of a quarter-second with this build? .25 seconds is a bigger delay than I have without polling every frame. Are these measurements exact, or your "gut feeling" of how long it takes?

Did you see the video Avder posted? The game is still playable, just deficient in timely response with a joystick.
Yes, I did, and it's a much shorter delay than .5 to .75 seconds. The video shows a maximum delay of approximately .2 seconds (the Subach HL-7 fires 5 times per second).
Title: Re: Joystick turning lag
Post by: Avder on August 19, 2015, 09:58:27 pm
I concur with the throttle anomaly. I had to set throttle at full on the keyboard to stop turning.

Throttle on keyboard had no strange effect for me at all.  It was some kind of weird axis play where my joystick throttle controlled both absolute throttle and roll. 0% throttle meant 100% Roll Right, and 100% Throttle meant roll neutral (no roll).

I debound both axes and have re-profiled my joystick back to having the twist activate my KB roll keys as a workaround.  Roll is considerably less important than yaw or pitch, but it would sure be nice to have it on my twist as analog controls  :)

Of course I guess I should mention that I've relocated my keyboard throttle keys to the 1-4 keys instead of the []\backspace keys.  Maybe that had something to do with keyboard throttle not doing anything weird for me?

And also am I correct in assuming that the joystick lag we're pinning down here will also be present in Diaspora?

And I'd just like to re-iterate my request for a non-debug build of this, roll/throttle fixed or not.
Title: Re: Joystick turning lag
Post by: Mongoose on August 19, 2015, 11:34:11 pm
Random thought: did you make absolutely sure that your throttle was exactly at 50% before trying to set the twist axis?  I remember being frustrated several times because my throttle was positioned a bit north or south of its mid setting, so every time I tried to tweak another axis, the throttle would be detected as active and immediately overwrite it.
Title: Re: Joystick turning lag
Post by: z64555 on August 20, 2015, 01:12:03 am
Avder, AV8R: Try disconnecting the joystick and then reconnect it. I had a similar issue where it seemed like all of my mappings went haywire, but after reconnecting I couldn't repro it again. Also, is this bank smoothly interpolated from 0% throttle to 100% throttle?

AV8R: Keep in mind that ship inertia still applies to your deflection acceleration. We're looking for a tiny initial movement that quickly grows to max rotvel here. Also, what is the framerate that FSO is reporting (use the -fps cmdline option)?


[EDIT] AV8R: I apologize if I seem like I'm ignoring you. There still is a definite lag between changes on the stick and what's applied to the craft, and it's a bit frustrating trying to track it down.
Title: Re: Joystick turning lag
Post by: zookeeper on August 20, 2015, 04:38:25 am
The polling change works beautifully, but I'm having some kind of weird axis problem with the test build:

For some reason while in game, whenever my throttle is at zero,  my ship will be at full bank right as well. Throttle at max results in no banking.  Twist axis doesn't do anything.

I have no idea how this is possible, because they bind correctly in the menus.

And yes I've verified they both work (input lagged) in the non-test versions.

Sounds like probably the same problem as here (http://www.hard-light.net/forums/index.php?topic=90143.0).  I guess that particular bugfix needs to be reverted if it also has this kind of effect.
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 06:33:02 am
Here's a video I just made that illustrates the roll/throttle weirdness:

https://www.youtube.com/watch?v=0RNEHjGkL9I

At the very start you'll see my FPS ramping down to 30.0.  That's just my capture card limiting my FPS to 30 for capture purposes.

As you can see, as I manipulate the throttle upwards, I slowly stop rolling.  As I manipulate it downwards, I start rolling to the right faster and faster.

When I fire I'm twisting my joystick to the left and the right.  No response.

I then go into the menu and show that both axes bind properly, but then back in game again it does the exact same thing as before.

Unplugging the joystick and plugging it back in during play had no effect btw.  That part was not shown in the video.
Title: Re: Joystick turning lag
Post by: z64555 on August 20, 2015, 08:12:06 am
Ok, try re-binding the control axes from within FSO.
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 08:32:37 am
Ok, try re-binding the control axes from within FSO.

....I did.  You can watch me do it in that video.  They bind perfectly, but don't function correctly.
Title: Re: Joystick turning lag
Post by: z64555 on August 20, 2015, 08:44:48 am
Doh. right.

I've known about some issues with the Rx and Z axes, but I haven't seen that one in quite some time. I'll see if I can track down where its confusing/combining those two.

In the mean time, see if you can try remapping one of those axes to a different one from like Rx to Rz or whatever. I'll be busy most of the day, but this is definitely on my priority list.
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 08:46:49 am
Right-o.  Let me just load up UJR and vjoy and see if different axes do anything.
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 10:24:31 am
Okay, I've got vJoy and UJR set up to create an 8-axis virtual joystick.

Axis 1: X
Axis 2: Y
Axis 3: Z
Axis 4: Rotation X
Axis 5: Rotation Y
Axis 6: Rotation Z
Axis 7: Slider 0
Axis 8: Slider 1

X and Y on my stick were continually bound to the virtual joysticks X and Y axes.

I use my twist axis for roll, obviously, and throttle for absolute throttle axis.

Did a few tests, these are the results:

Test 1. Throttle mapped to Slider 0, Twist mapped to Z axis.  Game sees Z axis as Z axis and Slider 0 as rY axis.  Roll works perfeclty with no cross talk, throttle has no effect and no crosstalk.  throttle appears to be permanently set to 100% here.

Test 2.  Throttle mapped to Slider 1 and Twist mapped to Z.   Aborted.  Game does not even see Slider 1.

Test 3.  Throttle mapped to Rotation Z, Twist mapped to Z.  Game sees Z as Z and Rotation Z as rX.  Both axes work perfectly with no crosstalk.

Test 4.  Throttle mapped to Z, Twist mapped to Rotation X.  This axis order matches the physical joysticks natural axis numbering.  Game sees roll as rZ, throttle as Z.  Roll in game appears permanently set to 100% roll right, twisting the axis has no effect whatsoever.  Throttle functions perfectly with no crosstalk.

Test 5.  Throttle remains mapped to Z, Roll now mapped to Rotation Y.  Aborted.  Game does not see Rotation Y.

Test 6.  Throttle remains mapped to Z, Roll now mapped to Rotation Z.   Behavior as seen in the video.  Throttle controls both axes, twist has no effect, and throttle at 0 results in full roll right and throttle at 100 results in roll neutral.

Test 7.  Throttle mapped to Slider 0, Roll continues to be mapped to Rotation Z.  Roll continues to do nothing and as in test 1, throttle has no effect, no crosstalk, and appears permanently set to 100%.

Test 8.  Throttle mapped to Rotation Z, Roll mapped to Slider 0. Game sees Rotation Z as rX, sees Slider 0 as rY.  Throttle works perfectly with no crosstalk.  Roll is stuck at neutral, twisting the stick does nothing.

Some conclusions so far:

The game only sees 6 axes.  it completely ignores axis 5 (rotation Y), and axis 8 (Slider 1).

Axis 7 (slider 1) is broken in this build.  When it was my throttle it was stuck at 100%, when it was bound to my twist it simply did nothing.

Other axes similarly malfunction.  The only roll/throttle combination that worked was having the sticks throttle bound to axis 6 (Rotation Z) and the twist bound to axis 3 (Z).

If you want any other axis combinations tested just let me know.

Also running my physical stick through this virtual one seems to add some lag.  This is bad news for me, as I was planning on adding a CH Products Pro Throttle next month and using UJR to combine it with my stick into one device.  The lag it adds however still leaves it better than in a non-test build.  Makes it play about equivalent to my joy to mouse script.

Edit:  I'm not sure if running it through UJR adds lag or not.  One moment my brain will perceive it, then it won't.  Which is odd.
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 10:56:57 am
Another unscientific test confirms that a tiny bit of lag is added by playing through UJR.

One of the nice things about the throttle axis is it's the only axis that gives a visual indicator of exactly where it is whenever the joystick is polled.

Since the throttle axis works when using the physical joystick but roll goes wonky, I just unbound roll.

Basically what I did was slam the throttle from 0 to 100 as fast as I could and watched for where the indicator was when I felt and heard the throttle reach its maximum.

Using the physical stick, it would usually appear to be at 65 or so when I felt and heard the throttle at maximum.
using UJR it would be at or just above 50%. So, like not much.

For comparison I tried to do this test in the antipodes build and the joystick is simply not polled fast enough for this test to even be performed.  The throttle indicator would just snap from 0 to 100%

Also does the joypoll test build do something different with video?  I noticed that it changes the gamma on my 2nd monitor, and the 2nd monitor gamma changes with adjustments to the in game gamma adjuster.  By contrast the antipodes build leaves my 2nd monitor alone and changes gamma only on the monitor the game is running on.

I should have tried to be a games tester for a living.
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 11:17:11 am
And likely completely unrelated to the joystick, but I decided to play the shivan gauntlet in the 2014 media VPS mod of Freespace 2 (Extracted the multiplayer mission from the retail VP's and re-flagged it for single player), and the test build crashed twice in a row.  The first time it dropped gracefully to the desktop.  The second time it was a full blown crash with "the program... has stopped working" and the usual MS gobbledygook.

Can't post all three at once due to character limit, so indulge my double (or triple) post:

Graceful crash to desktop:
Code: [Select]
==========================================================================
DEBUG SPEW: No debug_filter.cfg found, so only general, error, and warning
categories can be shown and no debug_filter.cfg info will be saved.
==========================================================================
FreeSpace 2 Open version: 3.7.3
Passed cmdline options:
  -spec_exp 11
  -ogl_spec 60
  -spec_static 0.8
  -spec_point 0.6
  -spec_tube 0.4
  -ambient_factor 75
  -soft_particles
  -post_process
  -fxaa
  -cache_bitmaps
  -warp_flash
  -snd_preload
  -mod MediaVPs_2014
  -no_glsl
  -fps
Building file index...
Found root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_A-Glows.vp' with a checksum of 0xd8f529e2
Found root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Advanced.vp' with a checksum of 0x337ffc37
Found root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Assets.vp' with a checksum of 0x23b7997e
Found root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_CB_ANI_1.vp' with a checksum of 0xa69eade8
Found root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_CB_ANI_2.vp' with a checksum of 0x070ae320
Found root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Effects.vp' with a checksum of 0x6fbd3357
Found root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Music.vp' with a checksum of 0x6c8f665e
Found root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_RadarIcons.vp' with a checksum of 0x04a9e65a
Found root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Root.vp' with a checksum of 0x107a739e
Found root pack 'C:\Games\FreeSpace2\multi-mission-pack.vp' with a checksum of 0x377695e0
Found root pack 'C:\Games\FreeSpace2\multi-voice-pack.vp' with a checksum of 0xd50e7442
Found root pack 'C:\Games\FreeSpace2\root_fs2.vp' with a checksum of 0xce10d76c
Found root pack 'C:\Games\FreeSpace2\smarty_fs2.vp' with a checksum of 0xddeb3b1e
Found root pack 'C:\Games\FreeSpace2\sparky_fs2.vp' with a checksum of 0x164fe65a
Found root pack 'C:\Games\FreeSpace2\sparky_hi_fs2.vp' with a checksum of 0xa11d56f1
Found root pack 'C:\Games\FreeSpace2\stu_fs2.vp' with a checksum of 0xd77da83a
Found root pack 'C:\Games\FreeSpace2\tango1_fs2.vp' with a checksum of 0x4c25221e
Found root pack 'C:\Games\FreeSpace2\tango2_fs2.vp' with a checksum of 0x86920b82
Found root pack 'C:\Games\FreeSpace2\tango3_fs2.vp' with a checksum of 0x705e8d71
Found root pack 'C:\Games\FreeSpace2\warble_fs2.vp' with a checksum of 0xd85c305d
Searching root 'C:\Games\FreeSpace2\MediaVPs_2014\' ... 0 files
Searching root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_A-Glows.vp' ... 1735 files
Searching root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Advanced.vp' ... 1654 files
Searching root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Assets.vp' ... 2015 files
Searching root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_CB_ANI_1.vp' ... 32 files
Searching root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_CB_ANI_2.vp' ... 57 files
Searching root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Effects.vp' ... 2063 files
Searching root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Music.vp' ... 32 files
Searching root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_RadarIcons.vp' ... 24 files
Searching root pack 'C:\Games\FreeSpace2\MediaVPs_2014\MV_Root.vp' ... 848 files
Searching root 'C:\Games\FreeSpace2\' ... 63 files
Searching root pack 'C:\Games\FreeSpace2\multi-mission-pack.vp' ... 110 files
Searching root pack 'C:\Games\FreeSpace2\multi-voice-pack.vp' ... 307 files
Searching root pack 'C:\Games\FreeSpace2\root_fs2.vp' ... 157 files
Searching root pack 'C:\Games\FreeSpace2\smarty_fs2.vp' ... 10 files
Searching root pack 'C:\Games\FreeSpace2\sparky_fs2.vp' ... 3027 files
Searching root pack 'C:\Games\FreeSpace2\sparky_hi_fs2.vp' ... 1337 files
Searching root pack 'C:\Games\FreeSpace2\stu_fs2.vp' ... 2355 files
Searching root pack 'C:\Games\FreeSpace2\tango1_fs2.vp' ... 32 files
Searching root pack 'C:\Games\FreeSpace2\tango2_fs2.vp' ... 15 files
Searching root pack 'C:\Games\FreeSpace2\tango3_fs2.vp' ... 10 files
Searching root pack 'C:\Games\FreeSpace2\warble_fs2.vp' ... 52 files
Searching root 'd:\' ... 0 files
Found 23 roots and 15935 files.
TBM  =>  Starting parse of 'mv_root-lcl.tbm' ...
Setting language to English
TBM  =>  Starting parse of 'mv_root-lcl.tbm' ...
Game Settings Table: Using Standard Loops For SEXP Arguments
Game Settings Table: Using standard event chaining behavior
Game Settings Table: External shaders are DISABLED
Initializing OpenAL...
  OpenAL Vendor     : Creative Labs Inc.
  OpenAL Renderer   : Software
  OpenAL Version    : 1.1

  Found extension "ALC_EXT_EFX".
You are not using OpenAL Soft. Disabling enhanced sound.

  Sample rate: 44100 (44100)
  EFX enabled: NO
  Playback device: Generic Software on Speakers (Realtek High Definition Audio)
  Capture device: Line in at rear panel (Blue) (R
... OpenAL successfully initialized!
Initializing OpenGL graphics device at 1920x1080 with 32-bit color...
  Initializing WGL...
  Requested WGL Video values = R: 8, G: 8, B: 8, depth: 24, stencil: 8, double-buffer: 1
  Actual WGL Video values    = R: 8, G: 8, B: 8, depth: 24, stencil: 8, double-buffer: 1
  OpenGL Vendor    : ATI Technologies Inc.
  OpenGL Renderer  : ATI Radeon HD 4800 Series
  OpenGL Version   : 3.3.11672 Compatibility Profile Context

  Using extension "GL_EXT_fog_coord".
  Using extension "GL_ARB_multitexture".
  Using extension "GL_ARB_texture_env_add".
  Using extension "GL_ARB_texture_compression".
  Using extension "GL_EXT_texture_compression_s3tc".
  Using extension "GL_EXT_texture_filter_anisotropic".
  Using extension "GL_ARB_texture_env_combine".
  Using extension "GL_EXT_compiled_vertex_array".
  Using extension "GL_EXT_draw_range_elements".
  Using extension "GL_ARB_texture_mirrored_repeat".
  Using extension "GL_ARB_texture_non_power_of_two".
  Using extension "GL_ARB_vertex_buffer_object".
  Using extension "GL_ARB_pixel_buffer_object".
  Using extension "GL_SGIS_generate_mipmap".
  Using extension "GL_EXT_framebuffer_object".
  Using extension "GL_ARB_texture_rectangle".
  Using extension "GL_EXT_bgra".
  Using extension "GL_ARB_texture_cube_map".
  Using extension "GL_EXT_texture_lod_bias".
  Using extension "GL_ARB_point_sprite".
  Using extension "GL_ARB_shading_language_100".
  Using extension "GL_ARB_shader_objects".
  Using extension "GL_ARB_vertex_shader".
  Using extension "GL_ARB_fragment_shader".
  Using extension "GL_ARB_shader_texture_lod".
  Using extension "GL_ARB_texture_float".
  Using extension "GL_ARB_draw_elements_base_vertex".
  Using extension "GL_EXT_framebuffer_blit".
  Using extension "GL_EXT_geometry_shader4".
  Using extension "GL_EXT_texture_array".
  Using extension "GL_ARB_uniform_buffer_object".
  Using extension "GL_EXT_transform_feedback".
  Using extension "GL_ARB_draw_instanced".
  Using extension "GL_ARB_texture_buffer_object".
  Found special extension function "wglSwapIntervalEXT".

  No hardware support for deferred lighting. Deferred lighting will be disabled.
  Max texture units: 8 (2)
  Max client texture states: 8 (16)
  Max elements vertices: 2147483647
  Max elements indices: 16777215
  Max texture size: 8192x8192
  Max render buffer size: 8192x8192
  Can use compressed textures: YES
  Texture compression available: YES
  Post-processing enabled: NO
  Using trilinear texture filter.
... OpenGL init is complete!
Size of bitmap info = 797 KB
Size of bitmap extra info = 52 bytes
ANI cursorweb with size 24x24 (25.0% wasted)
GRAPHICS: Initializing default colors...
SCRIPTING: Beginning initialization sequence...
SCRIPTING: Beginning Lua initialization...
LUA: Opening LUA state...
LUA: Initializing base Lua libraries...
LUA: Beginning ADE initialization
ADE: Initializing enumeration constants...
ADE: Assigning Lua session...
SCRIPTING: Beginning main hook parse sequence....
Wokka!  Error opening file (scripting.tbl)!
TABLES: Unable to parse 'scripting.tbl'!  Error message = Failed to open file.
TBM  =>  Starting parse of 'mv_flak-sct.tbm' ...
TBM  =>  Starting parse of 'mv_exp-sct.tbm' ...
TBM  =>  Starting parse of 'mv_dbrs-sct.tbm' ...
SCRIPTING: Inititialization complete.
SCRIPTING: Splash screen overrides checked
SCRIPTING: Splash hook has been run
SCRIPTING: Splash screen conditional hook has been run
Using high memory settings...
Wokka!  Error opening file (interface.tbl)!
WMCGUI: Unable to parse 'interface.tbl'!  Error message = Failed to open file.
TBM  =>  Starting parse of 'mv_effects-sdf.tbm' ...
Dutifully ignoring the extra sound values for retail sound 36, 'l_hit.wav'...
Dutifully ignoring the extra sound values for retail sound 37, 'm_hit.wav'...
Windows reported 16 joysticks, we found 1
Current soundtrack set to -1 in event_music_reset_choices
TBM  =>  Starting parse of 'mv_music-mus.tbm' ...
TBM  =>  Starting parse of 'mv_effects-mfl.tbm' ...
Wokka!  Error opening file (armor.tbl)!
TABLES: Unable to parse 'armor.tbl'!  Error message = Failed to open file.
TBM  =>  Starting parse of 'mv_effects-amr.tbm' ...
TBM  =>  Starting parse of 'mv_assets-aip.tbm' ...
TBM  =>  Starting parse of 'mv_root-wxp.tbm' ...
TBM  =>  Starting parse of 'mv_effects-wxp.tbm' ...
BMPMAN: Found EFF (exp20.eff) with 75 frames at 20 fps.
BMPMAN: Found EFF (ExpMissileHit1.eff) with 92 frames at 30 fps.
BMPMAN: Found EFF (exp04.eff) with 49 frames at 22 fps.
BMPMAN: Found EFF (noeffect.eff) with 1 frames at 1 fps.
BMPMAN: Found EFF (exp05.eff) with 93 frames at 20 fps.
BMPMAN: Found EFF (exp06.eff) with 92 frames at 22 fps.
BMPMAN: Found EFF (capflash.eff) with 40 frames at 10 fps.
BMPMAN: Found EFF (Maxim_Impact.eff) with 23 frames at 30 fps.
ANI Lamprey_Impact with size 80x80 (37.5% wasted)
TBM  =>  Starting parse of 'mv_root-wep.tbm' ...
TBM  =>  Starting parse of 'mv_effects-wep.tbm' ...
TBM  =>  Starting parse of 'mv_assets-wep.tbm' ...
TBM  =>  Starting parse of 'mv_effects-obt.tbm' ...
TBM  =>  Starting parse of 'mv_root-shp.tbm' ...
TBM  =>  Starting parse of 'radar-shp.tbm' ...
TBM  =>  Starting parse of 'mv_effects-shp.tbm' ...
TBM  =>  Starting parse of 'mv_assets-shp.tbm' ...
TBM  =>  Starting parse of 'mv_root-hdg.tbm' ...
ANI support1 with size 108x24 (25.0% wasted)
ANI damage1 with size 148x25 (21.9% wasted)
ANI wingman1 with size 71x53 (17.2% wasted)
ANI wingman2 with size 35x53 (17.2% wasted)
ANI wingman3 with size 14x53 (17.2% wasted)
ANI toggle1 with size 57x20 (37.5% wasted)
ANI head1 with size 164x132 (48.4% wasted)
ANI weapons1 with size 126x20 (37.5% wasted)
ANI weapons1_b with size 150x20 (37.5% wasted)
ANI objective1 with size 149x21 (34.4% wasted)
ANI netlag1 with size 29x30 (6.3% wasted)
ANI targhit1 with size 31x21 (34.4% wasted)
ANI time1 with size 47x23 (28.1% wasted)
ANI targetview1 with size 137x156 (39.1% wasted)
ANI targetview2 with size 4x96 (25.0% wasted)
ANI targetview3 with size 7x20 (37.5% wasted)
ANI 2_energy2 with size 86x96 (25.0% wasted)
ANI 2_reticle1 with size 40x24 (25.0% wasted)
ANI 2_leftarc with size 103x252 (1.6% wasted)
ANI 2_rightarc1 with size 103x252 (1.6% wasted)
ANI 2_toparc2 with size 35x24 (25.0% wasted)
ANI 2_toparc3 with size 41x29 (9.4% wasted)
ANI 2_lead1 with size 26x26 (18.8% wasted)
ANI 2_lock1 with size 56x53 (17.2% wasted)
ANI 2_lockspin with size 100x100 (21.9% wasted)
ANI energy1 with size 12x41 (35.9% wasted)
ANI 2_radar1 with size 209x170 (33.6% wasted)
TBM  =>  Starting parse of 'mv_effects-str.tbm' ...
TABLES => Starting parse of 'ssm.tbl'...
loading animated cursor "cursor"
ANI cursor with size 24x24 (25.0% wasted)
MediaVPs: Explosions script loaded!
MediaVPs: Flaming debris script loaded!
Ships.tbl is : VALID
Weapons.tbl is : VALID
cfile_init() took 571
TrackIR Init Failed - 1
Got event GS_EVENT_GAME_INIT (49) in state NOT A VALID STATE (0)
PLR => Loading 'Avder.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Parsing:  Scoring...
PLR => Parsing:  ScoringMulti...
PLR => Parsing:  HUD...
PLR => Parsing:  Variables...
PLR => Parsing:  Multiplayer...
PLR => Parsing:  Controls...
PLR => Parsing:  Settings...
PLR => Loading complete!
PLR => Verifying 'Avder.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Verifying complete!
PLR => Verifying 'Avidius.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Verifying complete!
ANI cursor.ani with size 24x24 (25.0% wasted)
PLR => Verifying 'Avder.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Verifying complete!
Got event GS_EVENT_MAIN_MENU (0) in state GS_STATE_INITIAL_PLAYER_SELECT (37)
PLR => Loading 'Avder.plr' with version 2...
PLR => Parsing:  Flags...
PLR => Parsing:  Info...
PLR => Parsing:  Scoring...
PLR => Parsing:  ScoringMulti...
PLR => Parsing:  HUD...
PLR => Parsing:  Variables...
PLR => Parsing:  Multiplayer...
PLR => Parsing:  Controls...
PLR => Parsing:  Settings...
PLR => Loading complete!
CSG => Loading 'Avder.FreeSpace2.csg' with version 5...
CSG => Parsing:  Flags...
CSG => Parsing:  Info...
CSG => Parsing:  Missions...
CSG => Parsing:  Techroom...
CSG => Parsing:  Loadout...
CSG => Parsing:  Scoring...
CSG => Parsing:  RedAlert...
CSG => Parsing:  HUD...
CSG => Parsing:  Variables...
CSG => Parsing:  Settings...
CSG => Parsing:  Controls...
CSG => Parsing:  Cutscenes...
CSG => Parsing:  Last Missions...
CSG => Loading complete!
CSG => Loading 'Avder.FreeSpace2.csg' with version 5...
CSG => Parsing:  Flags...
CSG => Parsing:  Info...
CSG => Parsing:  Missions...
CSG => Parsing:  Techroom...
CSG => Parsing:  Loadout...
CSG => Parsing:  Scoring...
CSG => Parsing:  RedAlert...
CSG => Parsing:  HUD...
CSG => Parsing:  Variables...
CSG => Parsing:  Settings...
CSG => Parsing:  Controls...
CSG => Parsing:  Cutscenes...
CSG => Parsing:  Last Missions...
CSG => Loading complete!
ANI 2_mainwalk.ani with size 209x477 (6.8% wasted)
ANI 2_mainflyby.ani with size 509x189 (26.2% wasted)
ANI 2_maincrane.ani with size 192x116 (9.4% wasted)
ANI 2_mainexit.ani with size 319x174 (32.0% wasted)
ANI 2_mainbarracks.ani with size 273x158 (38.3% wasted)
ANI 2_mainreadyroom.ani with size 231x145 (43.4% wasted)
ANI 2_maintechroom.ani with size 69x119 (7.0% wasted)
ANI 2_mainoptions.ani with size 337x206 (19.5% wasted)
ANI 2_maincampaign.ani with size 308x190 (25.8% wasted)
Frame  0 too long!!: frametime = 0.258 (0.258)
Got event GS_EVENT_OPTIONS_MENU (8) in state GS_STATE_MAIN_MENU (1)
Frame  0 too long!!: frametime = 1.075 (1.075)
Got event GS_EVENT_PREVIOUS_STATE (7) in state GS_STATE_OPTIONS_MENU (5)
PLR => Saving 'Avder.plr' with version 2...
PLR => Saving:  Flags...
PLR => Saving:  Info...
PLR => Saving:  Scoring...
PLR => Saving:  ScoringMulti...
PLR => Saving:  HUD...
PLR => Saving:  Variables...
PLR => Saving:  Multiplayer...
PLR => Saving:  Controls...
PLR => Saving:  Settings...
PLR => Saving complete!
CSG => Saving 'Avder.FreeSpace2.csg' with version 5...
CSG => Saving:  Flags...
CSG => Saving:  Info...
CSG => Saving:  Missions...
CSG => Saving:  Techroom...
CSG => Saving:  Loadout...
CSG => Saving:  Scoring...
CSG => Saving:  RedAlert...
CSG => Saving:  HUD...
CSG => Saving:  Variables...
CSG => Saving:  Settings...
CSG => Saving:  Controls...
CSG => Saving:  Cutscenes...
CSG => Saving:  Last Missions...
CSG => Saving complete!
CSG => Loading 'Avder.FreeSpace2.csg' with version 5...
CSG => Parsing:  Flags...
CSG => Parsing:  Info...
CSG => Parsing:  Missions...
CSG => Parsing:  Techroom...
CSG => Parsing:  Loadout...
CSG => Parsing:  Scoring...
CSG => Parsing:  RedAlert...
CSG => Parsing:  HUD...
CSG => Parsing:  Variables...
CSG => Parsing:  Settings...
CSG => Parsing:  Controls...
CSG => Parsing:  Cutscenes...
CSG => Parsing:  Last Missions...
CSG => Loading complete!
Got event GS_EVENT_TECH_MENU (11) in state GS_STATE_MAIN_MENU (1)
Techroom successfully initialized, now changing tab...
Loading model 'fighter01.pof'
Submodel 'detail2' is detail level 1 of 'detail1'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail1' is detail level 1 of 'detail0'
Frame  0 too long!!: frametime = 1.515 (1.515)
Got event GS_EVENT_SIMULATOR_ROOM (58) in state GS_STATE_TECH_MENU (7)
Freeing all existing models...
CSG => Loading 'Avder.FreeSpace2.csg' with version 5...
CSG => Parsing:  Flags...
CSG => Parsing:  Info...
CSG => Parsing:  Missions...
CSG => Parsing:  Techroom...
CSG => Parsing:  Loadout...
CSG => Parsing:  Scoring...
CSG => Parsing:  RedAlert...
CSG => Parsing:  HUD...
CSG => Parsing:  Variables...
CSG => Parsing:  Settings...
CSG => Parsing:  Controls...
CSG => Parsing:  Cutscenes...
CSG => Parsing:  Last Missions...
CSG => Loading complete!
Frame  0 too long!!: frametime = 1.692 (1.692)
Got event GS_EVENT_START_GAME (1) in state GS_STATE_SIMULATOR_ROOM (20)
PLR => Saving 'Avder.plr' with version 2...
PLR => Saving:  Flags...
PLR => Saving:  Info...
PLR => Saving:  Scoring...
PLR => Saving:  ScoringMulti...
PLR => Saving:  HUD...
PLR => Saving:  Variables...
PLR => Saving:  Multiplayer...
PLR => Saving:  Controls...
PLR => Saving:  Settings...
PLR => Saving complete!
=================== STARTING LEVEL LOAD ==================
ANI 2_Loading with size 824x43 (32.8% wasted)
ANI 2_Loading.ani with size 824x43 (32.8% wasted)
Starting model page in...
Beginning level bitmap paging...
BMPMAN: Found EFF (particleexp01.eff) with 10 frames at 8 fps.
BMPMAN: Found EFF (particlesmoke01.eff) with 54 frames at 30 fps.
BMPMAN: Found EFF (particlesmoke02.eff) with 39 frames at 24 fps.
TBM  =>  Starting parse of 'mv_effects-fbl.tbm' ...
BMPMAN: Found EFF (WarpMap01.eff) with 30 frames at 30 fps.
BMPMAN: Found EFF (WarpMap02.eff) with 30 frames at 30 fps.
BMPMAN: Found EFF (Rock_Exp.eff) with 55 frames at 30 fps.
Loading warp model
Loading model 'warp.pof'
 600
BMPMAN: Found EFF (shieldhit01a.eff) with 23 frames at 21 fps.
BMPMAN: Found EFF (shieldhit02a.eff) with 45 frames at 30 fps.
BMPMAN: Found EFF (shieldhit03a.eff) with 22 frames at 30 fps.
SHOCKWAVE =>  Loading default shockwave animation...
BMPMAN: Found EFF (shockwave01.eff) with 94 frames at 30 fps.
SHOCKWAVE =>  Default animation load: SUCCEEDED!!
MISSION LOAD: 'G-Shi-Sp'
Starting mission message count : 205
Ending mission message count : 208
Current soundtrack set to -1 in event_music_reset_choices
Loading model 'fighter01.pof'
Submodel 'detail2' is detail level 1 of 'detail1'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail1' is detail level 1 of 'detail0'
Loading model 'Manticore.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Loading model 'Basilisk.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail3' is detail level 3 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Submodel 'detail3' is detail level 2 of 'detail1'
Submodel 'detail3' is detail level 1 of 'detail2'
Loading model 'Astaroth.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail3' is detail level 3 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Submodel 'detail3' is detail level 2 of 'detail1'
Submodel 'detail3' is detail level 1 of 'detail2'
Loading model 'Aeshma.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail3' is detail level 3 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Submodel 'detail3' is detail level 2 of 'detail1'
Submodel 'detail3' is detail level 1 of 'detail2'
Loading model 'Mara.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail3' is detail level 3 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Submodel 'detail3' is detail level 2 of 'detail1'
Submodel 'detail3' is detail level 1 of 'detail2'
Loading model 'cruiser03x.pof'
Submodel 'detail3' is detail level 1 of 'detail2'
Submodel 'detail3' is detail level 2 of 'detail1'
Submodel 'detail2' is detail level 1 of 'detail1'
Submodel 'detail3' is detail level 3 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail1' is detail level 1 of 'detail0'
Loading model 'Rakshasa.pof'
Potential problem found: Unrecognized subsystem type 'reactor', believed to be in ship Rakshasa.pof
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail3' is detail level 3 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Submodel 'detail3' is detail level 2 of 'detail1'
Submodel 'detail3' is detail level 1 of 'detail2'
Allocating space for at least 5 new ship subsystems ...  a total of 200 is now available (5 in-use).
OpenGL: Created 512x512 FBO!
ANI debris01 with size 51x38 (40.6% wasted)
ANI debris02 with size 26x19 (40.6% wasted)
ANI debris04 with size 36x27 (15.6% wasted)
=================== STARTING LEVEL DATA LOAD ==================
Loading model 'support2t-01.pof'
Submodel 'bodyb' is detail level 1 of 'bodya'
Submodel 'bodyc' is detail level 2 of 'bodya'
Submodel 'bodyd' is detail level 3 of 'bodya'
Submodel 'bodyc' is detail level 1 of 'bodyb'
Submodel 'bodyd' is detail level 2 of 'bodyb'
Submodel 'bodyd' is detail level 1 of 'bodyc'
Loading model 'Nephthys.pof'
Submodel 'Detail1' is detail level 1 of 'Detail0'
Submodel 'Detail2' is detail level 2 of 'Detail0'
Submodel 'Detail3' is detail level 3 of 'Detail0'
Submodel 'Detail2' is detail level 1 of 'Detail1'
Submodel 'Detail3' is detail level 2 of 'Detail1'
Submodel 'Detail3' is detail level 1 of 'Detail2'
Allocating space for at least 247 new ship subsystems ...  a total of 400 is now available (20 in-use).
About to page in ships!
ANI shield-f01 with size 112x93 (27.3% wasted)
ANI shield-f10 with size 112x93 (27.3% wasted)
ANI shield-f11 with size 112x93 (27.3% wasted)
ANI shieldfs-01 with size 112x93 (27.3% wasted)
ANI shieldfs-02 with size 112x93 (27.3% wasted)
ANI shieldfs-03 with size 112x93 (27.3% wasted)
BMPMAN: Found EFF (Subach_AniBitmap.eff) with 6 frames at 5 fps.
BMPMAN: Found EFF (PrometheusR_AniBitmap.eff) with 12 frames at 5 fps.
BMPMAN: Found EFF (Prometheus_AniBitmap.eff) with 12 frames at 5 fps.
BMPMAN: Found EFF (Kayser_AniBitmap.eff) with 4 frames at 5 fps.
ANI Kayser_Particle with size 80x80 (37.5% wasted)
ANI Lamprey_Particle with size 92x86 (32.8% wasted)
BMPMAN: Found EFF (particle_red.eff) with 11 frames at 22 fps.
BMPMAN: Found EFF (SbeamAglow.eff) with 24 frames at 60 fps.
BMPMAN: Found EFF (SbeamAC.eff) with 30 frames at 40 fps.
Loading model 'rockeye.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Loading model 'Tempest.pof'
Submodel 'detail2' is detail level 1 of 'detail1'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail1' is detail level 1 of 'detail0'
Loading model 'NewHornet.pof'
Submodel 'detail-2' is detail level 2 of 'detail-0'
Submodel 'detail-1' is detail level 1 of 'detail-0'
Submodel 'detail-2' is detail level 1 of 'detail-1'
Loading model 'bombardier.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Loading model 'crossbow.pof'
No subsystems found for model "crossbow.pof".
Submodel 'detail-1' is detail level 1 of 'detail-0'
Submodel 'detail-2' is detail level 2 of 'detail-0'
Submodel 'detail-2' is detail level 1 of 'detail-1'
Loading model 'trebuchet.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Loading model 'tag-a.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Loading model 'tag-b.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Loading model 'tag-c.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
Loading model 'piranha.pof'
Submodel 'detail-1' is detail level 1 of 'detail-0'
Submodel 'detail-2' is detail level 2 of 'detail-0'
Submodel 'detail-2' is detail level 1 of 'detail-1'
Loading model 'stilettoII.pof'
Submodel 'detail-1' is detail level 1 of 'detail-0'
Submodel 'detail-2' is detail level 2 of 'detail-0'
Submodel 'detail-2' is detail level 1 of 'detail-1'
Loading model 'infyrno.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Submodel 'detail2' is detail level 2 of 'detail0'
Submodel 'detail2' is detail level 1 of 'detail1'
BMPMAN: Found EFF (missilespew04.eff) with 20 frames at 10 fps.
Loading model 'cyclops.pof'
BMPMAN: Found EFF (missilespew02.eff) with 20 frames at 10 fps.
Loading model 'helios.pof'
Submodel 'detail-3' is detail level 3 of 'detail-0'
Submodel 'detail-1' is detail level 1 of 'detail-0'
Submodel 'detail-2' is detail level 2 of 'detail-0'
Submodel 'detail-3' is detail level 2 of 'detail-1'
Submodel 'detail-2' is detail level 1 of 'detail-1'
Submodel 'detail-3' is detail level 1 of 'detail-2'
Loading model 'EMPulse2.pof'
Loading model 'cmeasure01.pof'
Loading model 'ShivanCM.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Loading model 'VasudanCM.pof'
Submodel 'detail1' is detail level 1 of 'detail0'
Loading model 'S_Rockeye.pof'
BMPMAN: Found EFF (smissile1-glow.eff) with 20 frames at 20 fps.
Submodel 'rockeyelod2' is detail level 1 of 'rockeyelod1'
Loading model 'S_Hornet.pof'
Submodel 'hornetlod2' is detail level 1 of 'hornetlod1'
Loading model 'S_Harpoon.pof'
Submodel 'harpoonlod2' is detail level 1 of 'harpoonlod1'
Loading model 'S_Trebuchet.pof'
Submodel 'trebuchetlod2' is detail level 1 of 'trebuchetlod1'
Loading model 'ShivanCluster.pof'
Submodel 'shivanclusterlod2' is detail level 1 of 'shivanclusterlod1'
Loading model 'hornet.pof'
Submodel 'detail-3' is detail level 1 of 'detail-2'
Submodel 'detail-2' is detail level 2 of 'detail-0'
Submodel 'detail-3' is detail level 3 of 'detail-0'
Submodel 'detail-1' is detail level 1 of 'detail-0'
Submodel 'detail-2' is detail level 1 of 'detail-1'
Submodel 'detail-3' is detail level 2 of 'detail-1'
Loading model 'mx-50.pof'
Submodel 'detail-1' is detail level 1 of 'detail-0'
Submodel 'detail-2' is detail level 2 of 'detail-0'
Submodel 'detail-2' is detail level 1 of 'detail-1'
Loading model 'debris01.pof'
Loading model 'debris02.pof'
BMPMAN: Found EFF (PWmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Gmuzzle.eff) with 5 frames at 30 fps.
BMPMAN: Found EFF (Bmuzzle.eff) with 5 frames at 30 fps.
BMPMAN: Found EFF (Rmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Cmuzzle.eff) with 4 frames at 30 fps.
Paging in mission messages
Stopping model page in...
ANI Lamprey_Impact.ani with size 80x80 (37.5% wasted)
ANI support1.ani with size 108x24 (25.0% wasted)
ANI damage1.ani with size 148x25 (21.9% wasted)
ANI wingman1.ani with size 71x53 (17.2% wasted)
ANI wingman2.ani with size 35x53 (17.2% wasted)
ANI wingman3.ani with size 14x53 (17.2% wasted)
ANI toggle1.ani with size 57x20 (37.5% wasted)
ANI head1.ani with size 164x132 (48.4% wasted)
ANI weapons1.ani with size 126x20 (37.5% wasted)
ANI weapons1_b.ani with size 150x20 (37.5% wasted)
ANI objective1.ani with size 149x21 (34.4% wasted)
ANI netlag1.ani with size 29x30 (6.3% wasted)
ANI targhit1.ani with size 31x21 (34.4% wasted)
ANI time1.ani with size 47x23 (28.1% wasted)
ANI targetview1.ani with size 137x156 (39.1% wasted)
ANI targetview2.ani with size 4x96 (25.0% wasted)
ANI targetview3.ani with size 7x20 (37.5% wasted)
ANI 2_energy2.ani with size 86x96 (25.0% wasted)
ANI 2_reticle1.ani with size 40x24 (25.0% wasted)
ANI 2_leftarc.ani with size 103x252 (1.6% wasted)
ANI 2_rightarc1.ani with size 103x252 (1.6% wasted)
ANI 2_toparc2.ani with size 35x24 (25.0% wasted)
ANI 2_toparc3.ani with size 41x29 (9.4% wasted)
ANI 2_lead1.ani with size 26x26 (18.8% wasted)
ANI 2_lock1.ani with size 56x53 (17.2% wasted)
ANI 2_lockspin.ani with size 100x100 (21.9% wasted)
ANI energy1.ani with size 12x41 (35.9% wasted)
ANI 2_radar1.ani with size 209x170 (33.6% wasted)
ANI 2_Loading.ani with size 824x43 (32.8% wasted)
ANI debris01.ani with size 51x38 (40.6% wasted)
ANI debris02.ani with size 26x19 (40.6% wasted)
ANI debris04.ani with size 36x27 (15.6% wasted)
ANI shield-f01.ani with size 112x93 (27.3% wasted)
ANI shield-f10.ani with size 112x93 (27.3% wasted)
ANI shield-f11.ani with size 112x93 (27.3% wasted)
ANI shieldfs-01.ani with size 112x93 (27.3% wasted)
ANI shieldfs-02.ani with size 112x93 (27.3% wasted)
ANI shieldfs-03.ani with size 112x93 (27.3% wasted)
ANI Kayser_Particle.ani with size 80x80 (37.5% wasted)
ANI Lamprey_Particle.ani with size 92x86 (32.8% wasted)
User bitmap 'TMP512x512+8'
User bitmap 'TMP512x512+8'
User bitmap 'TMP256x256+8'
Bmpman: 1933/4750 bitmap slots in use.
Ending level bitmap paging...
=================== ENDING LOAD ================
Real count = 514,  Estimated count = 425
================================================
SCRIPTING: Starting flashy deaths script loading

Class: gtf ulysses
DRM: 0.25
DE: 3
DM: 1

Class: gtf hercules
DRM: 0.25
DE: 3
DM: 1

Class: gtf hercules mark ii
DRM: 0.25
DE: 3
DM: 1

Class: gtf ares
DRM: 0.25
DE: 3
DM: 1

Class: gtf erinyes
DRM: 0.25
DE: 3
DM: 1

Class: gtf loki
DRM: 0.25
DE: 3
DM: 1

Class: gtf pegasus
DRM: 0.25
DE: 3
DM: 1

Class: gtf perseus
DRM: 0.25
DE: 3
DM: 1

Class: gtf myrmidon
DRM: 0.25
DE: 3
DM: 1

Class: sf mara (terrans)
DRM: 0.25
DE: 3
DM: 1

Class: gtb artemis
DRM: 0.25
DE: 3
DM: 1

Class: gtb artemis d.h.
DRM: 0.25
DE: 3
DM: 1

Class: gtb medusa
DRM: 0.25
DE: 3
DM: 1

Class: gtb ursa
DRM: 0.25
DE: 3
DM: 1

Class: gtb zeus
DRM: 0.25
DE: 3
DM: 1

Class: gtb boanerges
DRM: 0.25
DE: 3
DM: 1

Class: gtdr amazon
DRM: 0.25
DE: 3
DM: 1

Class: gtdr amazon advanced
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.45
BEDu: 5000
BEDM: 2.5

Class: gts hygeia
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6

Class: gtfr triton
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.45
BEDu: 5000
BEDM: 2.5

Class: tc-tri
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.4
BEDu: 4000
BEDM: 2.5

Class: gtfr poseidon
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6

Class: tc 2
DRM: 0.25
DE: 3
DM: 1

Class: tsc 2
DRM: 0.25
DE: 3
DM: 1

Class: tac 1
DRM: 0.25
DE: 3
DM: 1

Class: ttc 1
DRM: 0.25
DE: 3
DM: 1

Class: gtc fenris
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: gtm hippocrates
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: gtc leviathan
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: gtsc faustus
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: gtg zephyrus
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.55
BEDu: 7000
BEDM: 2.5

Class: gta charybdis
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.5
BEDu: 6000
BEDM: 2.5

Class: gtd orion
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: gtd hecate
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: gtd orion#2 (bastion)
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: gtd hades
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: gti arcadia
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: gtva colossus
DRM: 0.25
DE: 3
DM: 1
FRM: 5
FE: 6
BE: 0.75
BEDu: 11000
BEDM: 2.5

Class: gtcv deimos
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.65
BEDu: 9000
BEDM: 2.5

Class: gtc aeolus
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: ntf iceni
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.65
BEDu: 9000
BEDM: 2.5

Class: ntf boadicea
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: gtt elysium
DRM: 0.25
DE: 3
DM: 1

Class: gtt argo
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.4
BEDu: 4000
BEDM: 2.5

Class: gti ganymede
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: knossos
DRM: 0.25
DE: 3
DM: 1
FRM: 5
FE: 6
BE: 0.8
BEDu: 12000
BEDM: 2.5

Class: gtsg watchdog
DRM: 0.25
DE: 3
DM: 1

Class: gtsg cerberus
DRM: 0.25
DE: 3
DM: 1

Class: gtsg alastor
DRM: 0.25
DE: 3
DM: 1

Class: gtep hermes
DRM: 0.25
DE: 3
DM: 1

Class: tc-meson bomb
FRM: 4
FE: 6
BE: 0.8
BEDu: 10000
BEDM: 10

Class: gtsg mjolnir
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: gtsg mjolnir#home
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: gvf seth
DRM: 0.25
DE: 3
DM: 1

Class: gvf horus
DRM: 0.25
DE: 3
DM: 1

Class: gvf thoth
DRM: 0.25
DE: 3
DM: 1

Class: gvf serapis
DRM: 0.25
DE: 3
DM: 1

Class: gvf tauret
DRM: 0.25
DE: 3
DM: 1

Class: gvb sekhmet
DRM: 0.25
DE: 3
DM: 1

Class: gvb osiris
DRM: 0.25
DE: 3
DM: 1

Class: gvb bakha
DRM: 0.25
DE: 3
DM: 1

Class: gvf ptah
DRM: 0.25
DE: 3
DM: 1

Class: gvs nephthys
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6

Class: gvt isis
DRM: 0.25
DE: 3
DM: 1

Class: pvfr ma'at
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6

Class: gvfr bes
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6

Class: vac 5
DRM: 0.25
DE: 3
DM: 1

Class: vac 4
DRM: 0.25
DE: 3
DM: 1

Class: gvfr satis
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.45
BEDu: 5000
BEDM: 2.5

Class: gvg anuket
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.55
BEDu: 7000
BEDM: 2.5

Class: gvc aten
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: gvc mentu
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: gvcv sobek
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.65
BEDu: 9000
BEDM: 2.5

Class: gvd typhon
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: gvsg ankh
DRM: 0.25
DE: 3
DM: 1

Class: gvsg edjo
DRM: 0.25
DE: 3
DM: 1

Class: gvep ra
DRM: 0.25
DE: 3
DM: 1

Class: gva setekh
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.5
BEDu: 6000
BEDM: 2.5

Class: gvd hatshepsut
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: sf dragon
DRM: 0.25
DE: 3
DM: 1

Class: sf basilisk
DRM: 0.25
DE: 3
DM: 1

Class: sf manticore
DRM: 0.25
DE: 3
DM: 1

Class: sf aeshma
DRM: 0.25
DE: 3
DM: 1

Class: sf mara
DRM: 0.25
DE: 3
DM: 1

Class: sf astaroth
DRM: 0.25
DE: 3
DM: 1

Class: sb nephilim
DRM: 0.25
DE: 3
DM: 1

Class: sb taurvi
DRM: 0.25
DE: 3
DM: 1

Class: sb nahema
DRM: 0.25
DE: 3
DM: 1

Class: sb seraphim
DRM: 0.25
DE: 3
DM: 1

Class: st azrael
DRM: 0.25
DE: 3
DM: 1

Class: sfr dis
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.45
BEDu: 5000
BEDM: 2.5

Class: sac 3
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.4
BEDu: 4000
BEDM: 2.5

Class: sfr mephisto
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6

Class: sc 5
DRM: 0.25
DE: 3
DM: 1

Class: sfr asmodeus
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.45
BEDu: 5000
BEDM: 2.5

Class: sac 2
DRM: 0.25
DE: 3
DM: 1

Class: sc lilith
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: sc rakshasa
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.6
BEDu: 8000
BEDM: 2.5

Class: sd demon
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: sd ravana
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: sd lucifer
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.7
BEDu: 10000
BEDM: 2.5

Class: ssg trident
DRM: 0.25
DE: 3
DM: 1

Class: ssg belial
DRM: 0.25
DE: 3
DM: 1

Class: ssg rahu
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.55
BEDu: 7000
BEDM: 2.5

Class: scv moloch
DRM: 0.25
DE: 3
DM: 1
FRM: 2
FE: 6
BE: 0.65
BEDu: 9000
BEDM: 2.5

Class: sj sathanas
DRM: 0.25
DE: 3
DM: 1
FRM: 5
FE: 6
BE: 0.75
BEDu: 11000
BEDM: 2.5

Class: shivan comm node
DRM: 0.25
DE: 3
DM: 1
FRM: 1
FE: 6
BE: 0.65
BEDu: 9000
BEDM: 2.5

Class: sred
BEI: 0.2
BEDu: 200
BEDi: 100

Class: lred
BEI: 0.2
BEDu: 600
BEDi: 300

Class: bfred
BEI: 0.2
BEDu: 2100
BEDi: 1050

Class: terslash
BEI: 0.2
BEDu: 350
BEDi: 175

Class: lterslash
BEI: 0.2
BEDu: 150
BEDi: 75

Class: bfgreen
BEI: 0.2
BEDu: 1900
BEDi: 950

Class: lrbgreen
BEI: 0.2
BEDu: 1900
BEDi: 950

Class: bgreen
BEI: 0.2
BEDu: 1200
BEDi: 650

Class: sgreen
BEI: 0.2
BEDu: 210
BEDi: 105

Class: svas
BEI: 0.2
BEDu: 350
BEDi: 175

Class: bvas
BEI: 0.2
BEDu: 1100
BEDi: 550

Class: vslash
BEI: 0.2
BEDu: 750
BEDi: 375

Class: green beam
BEI: 0.2
BEDu: 200
BEDi: 100

Class: mjolnirbeam
BEI: 0.2
BEDu: 750
BEDi: 375

Class: mjolnirbeam#home
BEI: 0.2
BEDu: 400
BEDi: 200

Class: cyclops
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: cyclops#short
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: rebel bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 400
BEDi: 200

Class: helios
FR: 100
FE: 6
BEI: 0.6
BEDu: 6800
BEDi: 3400

Class: unknown bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 1500
BEDi: 750

Class: unknown megabomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 3200
BEDi: 1600

Class: shivan bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: shivan bomb#short
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: shivan weak bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 400
BEDi: 200

Class: shivan megabomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 6800
BEDi: 3400

Class: fusion mortar
FR: 20
FE: 6
BEI: 0.2
BEDu: 80
BEDi: 40

Class: vasudan flux cannon
FR: 20
FE: 6
BEI: 0.4
BEDu: 500
BEDi: 250
MediaVPs: Flaming debris script ACTIVE!
Level load took 32.308998 seconds.
Received post for event GS_EVENT_START_BRIEFING during state transtition. Find Allender if you are unsure if this is bad.
Got event GS_EVENT_START_BRIEFING (15) in state GS_STATE_START_GAME (51)
ANI 2_BriefMap with size 918x400 (21.9% wasted)
ANI iconwing01 with size 32x28 (12.5% wasted)
ANI iconfighter01 with size 32x28 (12.5% wasted)
ANI iconfighter2t-02 with size 32x28 (12.5% wasted)
ANI iconfighter2t-04 with size 32x28 (12.5% wasted)
ANI iconfighter13 with size 32x28 (12.5% wasted)
ANI iconfighter2t-03 with size 32x28 (12.5% wasted)
ANI iconfighter2t-05 with size 32x28 (12.5% wasted)
ANI iconbomber2t-03 with size 32x28 (12.5% wasted)
ANI iconbomber04 with size 32x28 (12.5% wasted)
ANI iconbomber05 with size 32x28 (12.5% wasted)
ANI iconbomber09 with size 32x28 (12.5% wasted)
ANI iconbomber2t-01 with size 32x28 (12.5% wasted)
ANI iconSD4 with size 56x24 (25.0% wasted)
ANI iconScalpel with size 56x24 (25.0% wasted)
ANI iconflail with size 56x24 (25.0% wasted)
ANI iconPromR with size 56x24 (25.0% wasted)
ANI iconPromS with size 56x24 (25.0% wasted)
ANI iconNewton with size 56x24 (25.0% wasted)
ANI iconKayser with size 56x24 (25.0% wasted)
ANI iconCirce with size 56x24 (25.0% wasted)
ANI iconLich with size 56x24 (25.0% wasted)
ANI iconMX-64 with size 56x24 (25.0% wasted)
ANI iconTempest with size 56x24 (25.0% wasted)
ANI iconHornet with size 56x24 (25.0% wasted)
ANI iconBombardier with size 56x24 (25.0% wasted)
ANI iconCrossbow with size 56x24 (25.0% wasted)
ANI iconTrebuchet with size 56x24 (25.0% wasted)
ANI iconTagA with size 56x24 (25.0% wasted)
ANI iconTagB with size 56x24 (25.0% wasted)
ANI iconTagC with size 56x24 (25.0% wasted)
ANI iconPiranha with size 56x24 (25.0% wasted)
ANI iconStilettoII with size 56x24 (25.0% wasted)
ANI iconInfyrno with size 56x24 (25.0% wasted)
ANI iconbelial with size 56x24 (25.0% wasted)
ANI iconHelios with size 56x24 (25.0% wasted)
ANI iconEMPulse with size 56x24 (25.0% wasted)
ANI icont-fightW with size 51x54 (15.6% wasted)
ANI FadeiconT-FighterW with size 51x54 (15.6% wasted)
ANI FadeiconT-FighterW.ani with size 51x54 (15.6% wasted)
Frame  0 too long!!: frametime = 39.173 (39.173)
ANI icont-fightW.ani with size 51x54 (15.6% wasted)
Got event GS_EVENT_SHIP_SELECTION (13) in state GS_STATE_BRIEFING (10)
ANI 2_ssfighter01.ani with size 560x368 (28.1% wasted)
ANI iconfighter2t-02.ani with size 32x28 (12.5% wasted)
ANI iconfighter2t-04.ani with size 32x28 (12.5% wasted)
ANI iconfighter13.ani with size 32x28 (12.5% wasted)
ANI iconfighter2t-03.ani with size 32x28 (12.5% wasted)
ANI iconfighter01.ani with size 32x28 (12.5% wasted)
ANI iconwing01.ani with size 32x28 (12.5% wasted)
ANI 2_ssfighter13.ani with size 560x368 (28.1% wasted)
ANI 2_ssfighter2t-04.ani with size 560x368 (28.1% wasted)
Got event GS_EVENT_WEAPON_SELECTION (21) in state GS_STATE_SHIP_SELECT (11)
ANI iconSD4.ani with size 56x24 (25.0% wasted)
ANI iconScalpel.ani with size 56x24 (25.0% wasted)
ANI iconflail.ani with size 56x24 (25.0% wasted)
ANI iconPromR.ani with size 56x24 (25.0% wasted)
ANI iconMX-64.ani with size 56x24 (25.0% wasted)
ANI iconTempest.ani with size 56x24 (25.0% wasted)
ANI iconHornet.ani with size 56x24 (25.0% wasted)
ANI iconBombardier.ani with size 56x24 (25.0% wasted)
ANI iconCrossbow.ani with size 56x24 (25.0% wasted)
ANI 2_SD4.ani with size 332x304 (40.6% wasted)
ANI iconPromS.ani with size 56x24 (25.0% wasted)
ANI iconNewton.ani with size 56x24 (25.0% wasted)
ANI iconKayser.ani with size 56x24 (25.0% wasted)
ANI iconCirce.ani with size 56x24 (25.0% wasted)
ANI iconLich.ani with size 56x24 (25.0% wasted)
ANI 2_Kayser.ani with size 332x304 (40.6% wasted)
ANI 2_Circe.ani with size 332x304 (40.6% wasted)
ANI 2_Newton.ani with size 332x304 (40.6% wasted)
ANI 2_tornado.ani with size 332x304 (40.6% wasted)
ANI iconTrebuchet.ani with size 56x24 (25.0% wasted)
ANI iconTagA.ani with size 56x24 (25.0% wasted)
ANI 2_trebuchet.ani with size 332x304 (40.6% wasted)
ANI 2_cross.ani with size 332x304 (40.6% wasted)
Loading model 'fighter2t-04.pof'
Submodel 'detail-1' is detail level 1 of 'detail-0'
Submodel 'detail-2' is detail level 2 of 'detail-0'
Submodel 'detail-3' is detail level 3 of 'detail-0'
Submodel 'detail-2' is detail level 1 of 'detail-1'
Submodel 'detail-3' is detail level 2 of 'detail-1'
Submodel 'detail-3' is detail level 1 of 'detail-2'
CSG => Saving 'Avder.FreeSpace2.csg' with version 5...
CSG => Saving:  Flags...
CSG => Saving:  Info...
CSG => Saving:  Missions...
CSG => Saving:  Techroom...
CSG => Saving:  Loadout...
CSG => Saving:  Scoring...
CSG => Saving:  RedAlert...
CSG => Saving:  HUD...
CSG => Saving:  Variables...
CSG => Saving:  Settings...
CSG => Saving:  Controls...
CSG => Saving:  Cutscenes...
CSG => Saving:  Last Missions...
CSG => Saving complete!
Got event GS_EVENT_ENTER_GAME (2) in state GS_STATE_WEAPON_SELECT (16)
Entering game at time = 166.065
ANI shieldft-04 with size 112x93 (27.3% wasted)
ANI shieldft-04.ani with size 112x93 (27.3% wasted)
Got event GS_EVENT_OPTIONS_MENU (8) in state GS_STATE_GAME_PLAY (2)
Got event GS_EVENT_CONTROL_CONFIG (19) in state GS_STATE_OPTIONS_MENU (5)
PLR => Saving 'Avder.plr' with version 2...
PLR => Saving:  Flags...
PLR => Saving:  Info...
PLR => Saving:  Scoring...
PLR => Saving:  ScoringMulti...
PLR => Saving:  HUD...
PLR => Saving:  Variables...
PLR => Saving:  Multiplayer...
PLR => Saving:  Controls...
PLR => Saving:  Settings...
PLR => Saving complete!
CSG => Saving 'Avder.FreeSpace2.csg' with version 5...
CSG => Saving:  Flags...
CSG => Saving:  Info...
CSG => Saving:  Missions...
CSG => Saving:  Techroom...
CSG => Saving:  Loadout...
CSG => Saving:  Scoring...
CSG => Saving:  RedAlert...
CSG => Saving:  HUD...
CSG => Saving:  Variables...
CSG => Saving:  Settings...
CSG => Saving:  Controls...
CSG => Saving:  Cutscenes...
CSG => Saving:  Last Missions...
CSG => Saving complete!
Frame 60 too long!!: frametime = 0.531 (0.531)
Got event GS_EVENT_PREVIOUS_STATE (7) in state GS_STATE_CONTROL_CONFIG (15)
CSG => Saving 'Avder.FreeSpace2.csg' with version 5...
CSG => Saving:  Flags...
CSG => Saving:  Info...
CSG => Saving:  Missions...
CSG => Saving:  Techroom...
CSG => Saving:  Loadout...
CSG => Saving:  Scoring...
CSG => Saving:  RedAlert...
CSG => Saving:  HUD...
CSG => Saving:  Variables...
CSG => Saving:  Settings...
CSG => Saving:  Controls...
CSG => Saving:  Cutscenes...
CSG => Saving:  Last Missions...
CSG => Saving complete!
Got event GS_EVENT_PREVIOUS_STATE (7) in state GS_STATE_OPTIONS_MENU (5)
PLR => Saving 'Avder.plr' with version 2...
PLR => Saving:  Flags...
PLR => Saving:  Info...
PLR => Saving:  Scoring...
PLR => Saving:  ScoringMulti...
PLR => Saving:  HUD...
PLR => Saving:  Variables...
PLR => Saving:  Multiplayer...
PLR => Saving:  Controls...
PLR => Saving:  Settings...
PLR => Saving complete!
CSG => Saving 'Avder.FreeSpace2.csg' with version 5...
CSG => Saving:  Flags...
CSG => Saving:  Info...
CSG => Saving:  Missions...
CSG => Saving:  Techroom...
CSG => Saving:  Loadout...
CSG => Saving:  Scoring...
CSG => Saving:  RedAlert...
CSG => Saving:  HUD...
CSG => Saving:  Variables...
CSG => Saving:  Settings...
CSG => Saving:  Controls...
CSG => Saving:  Cutscenes...
CSG => Saving:  Last Missions...
CSG => Saving complete!
ANI Head-CM2a.ani with size 160x120 (6.3% wasted)
997 frames executed in  30.001 seconds,  33.232 frames per second.
Title: Re: Joystick turning lag
Post by: jr2 on August 20, 2015, 11:17:20 am
At the very start you'll see my FPS ramping down to 30.0.  That's just my capture card limiting my FPS to 30 for capture purposes.

There's a watermark and a 10-minute limit, but this one doesn't lock your FPS at all (even FRAPS will lock at 30, 60, 90 etc):  http://www.bandicam.com/downloads/  $39 gets rid of the time limit and watermark if you wanted to do that. 

Also, if you want, I'll try to find another non-FPS locked software.  Maybe I can find a free open source one or something.  This one (http://exkode.com/dxtory-downloads-en.html) seems to work like WinRAR (just asking to purchase on exit).  Full version ~$30 (3800¥)
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 11:21:05 am
Fullblown crash to desktop:

Well, this one seems to be just too big for the character limit, so let's try adding it as an attachment....

And the MS Crash window goobledygook...

Code: [Select]
Problem Event Name: APPCRASH
  Application Name: fs2_open_3_7_3_joypoll-DEBUG.exe
  Application Version: 3.7.3.0
  Application Timestamp: 55d50490
  Fault Module Name: fs2_open_3_7_3_joypoll-DEBUG.exe
  Fault Module Version: 3.7.3.0
  Fault Module Timestamp: 55d50490
  Exception Code: c0000005
  Exception Offset: 00c3a3c6
  OS Version: 6.0.6002.2.2.0.256.6
  Locale ID: 1033
  Additional Information 1: fd00
  Additional Information 2: ea6f5fe8924aaa756324d57f87834160
  Additional Information 3: fd00
  Additional Information 4: ea6f5fe8924aaa756324d57f87834160

[attachment deleted by nobody]
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 11:22:32 am
At the very start you'll see my FPS ramping down to 30.0.  That's just my capture card limiting my FPS to 30 for capture purposes.

There's a watermark and a 10-minute limit, but this one doesn't lock your FPS at all (even FRAPS will lock at 30, 60, 90 etc):  http://www.bandicam.com/downloads/  $39 gets rid of the time limit and watermark if you wanted to do that. 

Also, if you want, I'll try to find another non-FPS locked software.  Maybe I can find a free open source one or something.  This one (http://exkode.com/dxtory-downloads-en.html) seems to work like WinRAR (just asking to purchase on exit).  Full version ~$30 (3800¥)

Eh, don't worry about it.  My computer is too old and powerless to do any super smooth capturing anyway.  Once I build a new system and get a card that has some kind of capture ability built in I'll worry about getting good software.  Thanks anyway though!
Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 20, 2015, 01:40:41 pm
And likely completely unrelated to the joystick, but I decided to play the shivan gauntlet in the 2014 media VPS mod of Freespace 2 (Extracted the multiplayer mission from the retail VP's and re-flagged it for single player), and the test build crashed twice in a row.  The first time it dropped gracefully to the desktop.  The second time it was a full blown crash with "the program... has stopped working" and the usual MS gobbledygook.
Unfortunately, neither log contains any useful information (as far as FSO was concerned, everything was going fine when it suddenly stopped). The APPCRASH message with an exception code of c0000005 ("access violation") is odd (it's usually caused by accessing invalid memory, which a debug build should theoretically detect and report). When exactly is it crashing? The log seems to indicate it was mid-mission. Is it at a specific point in the mission?
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 01:50:37 pm
And likely completely unrelated to the joystick, but I decided to play the shivan gauntlet in the 2014 media VPS mod of Freespace 2 (Extracted the multiplayer mission from the retail VP's and re-flagged it for single player), and the test build crashed twice in a row.  The first time it dropped gracefully to the desktop.  The second time it was a full blown crash with "the program... has stopped working" and the usual MS gobbledygook.
Unfortunately, neither log contains any useful information (as far as FSO was concerned, everything was going fine when it suddenly stopped). The APPCRASH message with an exception code of c0000005 ("access violation") is odd (it's usually caused by accessing invalid memory, which a debug build should theoretically detect and report). When exactly is it crashing? The log seems to indicate it was mid-mission. Is it at a specific point in the mission?

Both times it was after I had destroyed a single ship.  The first time it happened a few seconds after the kill, the second time it happened as the Shivan fighter was exploding

The way I was playing was in an Erinyes with Kaiser and Maxim primaries and Harpoon and Trebuchet Secondaries. Also no wingmates.  Just drag their ships back to the ship pool.

To play the mission as single player, just extract it from the retail vp, open fred, and switch the flag from multiplayer to singleplayer and save with a different file name.

Also after deselecting the mod and running FS2 unmodded, the joypoll build gave me this error as the mission was loading:
Code: [Select]
Weapon type "TAG-C" found in loadout of mission file. This class is not marked as a player allowed weapon...skipping
ntdll.dll! ZwWaitForSingleObject + 21 bytes
kernel32.dll! WaitForSingleObject + 18 bytes
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
fs2_open_3_7_3_joypoll-DEBUG.exe! <no symbol>
kernel32.dll! BaseThreadInitThunk + 14 bytes
ntdll.dll! RtlCreateUserProcess + 140 bytes
ntdll.dll! RtlCreateProcessParameters + 78 bytes

No idea if that's relevant, but there it is.

I had to alt-tab back to desktop to get at the window this had popped up in.  After I told it to continue, it all ran fine, and I happily racked up 89 kills over my lunch break.
Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 20, 2015, 04:32:36 pm
No idea if that's relevant, but there it is.
It is not.

Also after deselecting the mod and running FS2 unmodded[...]
I had to alt-tab back to desktop to get at the window this had popped up in.  After I told it to continue, it all ran fine, and I happily racked up 89 kills over my lunch break.
So, wait, you deselected the MediaVPs and then FSO ran the mission just fine, no crashes?
Title: Re: Joystick turning lag
Post by: z64555 on August 20, 2015, 05:14:01 pm
We've got two discussions going on here in this thread, could a moderator perhaps move the posts re: the crashes to a different one?


Avder: I'd like to thank you for being a thorough tester! We don't find too many folks that are willing to go through this level of detail without having somebody asking for every little thing. Again, thank you for your diligence. :)

Yes, FSO is still limited to 6 axis joysticks. One of my goals once antipodes gets pulled into mainstream is to upgrade to to accept any conceiable number of axes from a controller (since programs such as vJoy can combine controllers into one virtual controller).

There's still an issue with the Rx and Rz(?) axis not being reported properly in FSO, this can cause problems when referring between what the OS reports and what FSO reports.

MageKing was able to find the culprit, I made a test build off of it. But, I have a concern that I'd like to address first. If you have the time, I'd like you to test two builds for us so we can determine if polling is still necessary.

First, try this build: fs2_open_3_7_3_m2436_2-DEBUG (https://dl.dropboxusercontent.com/u/97612992/FreeSpace2%20Open/SCP/fs2_open_3_7_3_m2436_2-DEBUG.exe)

Next, try this build: fs2_open_3_7_3_m2436_2_nopoll-DEBUG (https://www.dropbox.com/s/bhmhly1cvp9xhxc/fs2_open_3_7_3_m2436_2_nopoll-DEBUG.exe?dl=0)

See if either one gives you crashes through the Shivan Gauntlet, or any other mission you think that would be a good test run. :)
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 05:56:48 pm
No idea if that's relevant, but there it is.
It is not.

Also after deselecting the mod and running FS2 unmodded[...]
I had to alt-tab back to desktop to get at the window this had popped up in.  After I told it to continue, it all ran fine, and I happily racked up 89 kills over my lunch break.
So, wait, you deselected the MediaVPs and then FSO ran the mission just fine, no crashes?

Correct.  Ran fine, just with that pop under window I had to click okay with.   Only crashed while running the 2014 Media vp's.
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 05:58:28 pm
We've got two discussions going on here in this thread, could a moderator perhaps move the posts re: the crashes to a different one?


Avder: I'd like to thank you for being a thorough tester! We don't find too many folks that are willing to go through this level of detail without having somebody asking for every little thing. Again, thank you for your diligence. :)

Yes, FSO is still limited to 6 axis joysticks. One of my goals once antipodes gets pulled into mainstream is to upgrade to to accept any conceiable number of axes from a controller (since programs such as vJoy can combine controllers into one virtual controller).

There's still an issue with the Rx and Rz(?) axis not being reported properly in FSO, this can cause problems when referring between what the OS reports and what FSO reports.

MageKing was able to find the culprit, I made a test build off of it. But, I have a concern that I'd like to address first. If you have the time, I'd like you to test two builds for us so we can determine if polling is still necessary.

First, try this build: fs2_open_3_7_3_m2436_2-DEBUG (https://dl.dropboxusercontent.com/u/97612992/FreeSpace2%20Open/SCP/fs2_open_3_7_3_m2436_2-DEBUG.exe)

Next, try this build: fs2_open_3_7_3_m2436_2_nopoll-DEBUG (https://www.dropbox.com/s/bhmhly1cvp9xhxc/fs2_open_3_7_3_m2436_2_nopoll-DEBUG.exe?dl=0)

See if either one gives you crashes through the Shivan Gauntlet, or any other mission you think that would be a good test run. :)

I'll download both of them now and waste some Shivans.  I had a bad day.  I need to watch stuff explode.  :mad:
Title: Re: Joystick turning lag
Post by: Avder on August 20, 2015, 06:18:12 pm
Both of them crashed on the shivan gauntlet with the 2014 VP's running, and at the exact same time: the moment my first kill started to explode.  Have not ran it unmodded yet.  Will probably do that in a minute.

I can tell you the "nopoll" version is a lot more responsive.  The other one has response lag and the throttle movement is jerky.  In the nopoll version the ship is a lot more responsive and the throttle movement follows exactly where it is.  Whatever you're doing in that one, keep doing it, it's almost perfect.

Also the Roll/Throttle mixup is fixed.
Title: Re: Joystick turning lag
Post by: jr2 on August 21, 2015, 01:10:40 pm
Can you post the debug logs from those?  -DEBUG versions create fs2_open.log in the \Data folder.

EDIT: Oh, probably they will over-write any log created before, so post the log, then run the other version and post that log.
Title: Re: Joystick turning lag
Post by: z64555 on August 21, 2015, 01:20:50 pm
Ok. so it's not likely that the no-poll was the cause of the crashes. Expect to see the changes in 3.7.4.  :)
Title: Re: Joystick turning lag
Post by: Avder on August 21, 2015, 01:41:59 pm
Can you post the debug logs from those?  -DEBUG versions create fs2_open.log in the \Data folder.

EDIT: Oh, probably they will over-write any log created before, so post the log, then run the other version and post that log.

Did you want the log to go until I load the hangar, or until the game actually crashes?
Title: Re: Joystick turning lag
Post by: Avder on August 21, 2015, 01:45:20 pm
Ok. so it's not likely that the no-poll was the cause of the crashes. Expect to see the changes in 3.7.4.  :)

Any chance I could get the joystick change in either the current final release or the current antipodes release?  I would love to be able to play with almost no joystick lag in either so I could play FS1 and 2 with the 2014 Media VP's in a non-debug executable.  Antipodes would actually be better because I noticed that there is just ever so slightly less lag when it's reading from SDL vs DirectInput.  like, just a tiny fraction, I could barely even notice it.
Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 21, 2015, 02:20:23 pm
Did you want the log to go until I load the hangar, or until the game actually crashes?
Until the game actually crashes.
Title: Re: Joystick turning lag
Post by: z64555 on August 21, 2015, 02:35:32 pm
Ok. so it's not likely that the no-poll was the cause of the crashes. Expect to see the changes in 3.7.4.  :)

Any chance I could get the joystick change in either the current final release or the current antipodes release?  I would love to be able to play with almost no joystick lag in either so I could play FS1 and 2 with the 2014 Media VP's in a non-debug executable.  Antipodes would actually be better because I noticed that there is just ever so slightly less lag when it's reading from SDL vs DirectInput.  like, just a tiny fraction, I could barely even notice it.

This will be in 3.7.4, the next release build, and will be carried over into Antipodes. If anything at all, this will be additional motivation to get our (the SCP's) butts focused on antipodes.  :p
Title: Re: Joystick turning lag
Post by: Avder on August 21, 2015, 02:38:18 pm
Did you want the log to go until I load the hangar, or until the game actually crashes?
Until the game actually crashes.

Give me a few minutes.
Title: Re: Joystick turning lag
Post by: Avder on August 21, 2015, 02:39:16 pm
Ok. so it's not likely that the no-poll was the cause of the crashes. Expect to see the changes in 3.7.4.  :)

Any chance I could get the joystick change in either the current final release or the current antipodes release?  I would love to be able to play with almost no joystick lag in either so I could play FS1 and 2 with the 2014 Media VP's in a non-debug executable.  Antipodes would actually be better because I noticed that there is just ever so slightly less lag when it's reading from SDL vs DirectInput.  like, just a tiny fraction, I could barely even notice it.

This will be in 3.7.4, the next release build, and will be carried over into Antipodes. If anything at all, this will be additional motivation to get our (the SCP's) butts focused on antipodes.  :p

When's the next release going to be?

And will the joystick change show up in the nightly builds soon?  I don't want to wait months and months to play the game more :(
Title: Re: Joystick turning lag
Post by: z64555 on August 21, 2015, 02:46:06 pm
This will be in 3.7.4, the next release build, and will be carried over into Antipodes. If anything at all, this will be additional motivation to get our (the SCP's) butts focused on antipodes.  :p

When's the next release going to be?

And will the joystick change show up in the nightly builds soon?  I don't want to wait months and months to play the game more :(

The 3.7.4 release will be Soon (TM). At the very least, the changes will show up in the next nightly as the fix just got merged into the codebase.
Title: Re: Joystick turning lag
Post by: Avder on August 21, 2015, 02:46:29 pm
Here are the logs.

[attachment deleted by nobody]
Title: Re: Joystick turning lag
Post by: Avder on August 21, 2015, 02:49:39 pm
This will be in 3.7.4, the next release build, and will be carried over into Antipodes. If anything at all, this will be additional motivation to get our (the SCP's) butts focused on antipodes.  :p

When's the next release going to be?

And will the joystick change show up in the nightly builds soon?  I don't want to wait months and months to play the game more :(

The 3.7.4 release will be Soon (TM). At the very least, the changes will show up in the next nightly as the fix just got merged into the codebase.

I hope it's soon. I bet the community will as well once they know this change is in there.  And I will be downloading the next nightly build, which will hopefully let me really make some headway against the shivans  :nod:

Question, given that Diaspora is a heavy mod of FS2 Open, I assume this joystick lag will be present in that game as well?
Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 21, 2015, 03:34:45 pm
Question, given that Diaspora is a heavy mod of FS2 Open, I assume this joystick lag will be present in that game as well?
Yes, but the good news is that when the Nightly build containing the fix gets posted, you can copy that to your Diaspora folder and play with it instead.
Title: Re: Joystick turning lag
Post by: Avder on August 21, 2015, 03:56:34 pm
Question, given that Diaspora is a heavy mod of FS2 Open, I assume this joystick lag will be present in that game as well?
Yes, but the good news is that when the Nightly build containing the fix gets posted, you can copy that to your Diaspora folder and play with it instead.

Really?  Neat.  I would have figured Diaspora would have been a source mod rather than just a content mod.

Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 21, 2015, 04:27:52 pm
Question, given that Diaspora is a heavy mod of FS2 Open, I assume this joystick lag will be present in that game as well?
Yes, but the good news is that when the Nightly build containing the fix gets posted, you can copy that to your Diaspora folder and play with it instead.

Really?  Neat.  I would have figured Diaspora would have been a source mod rather than just a content mod.
Every feature written for Diaspora was since merged back into mainline FSO some time ago.
Title: Re: Joystick turning lag
Post by: Avder on August 22, 2015, 11:41:37 am
Just out of curiosity, what exactly are the differences between how the joystick was read before I reported this issue, how it was read in the first joypoll test build, and how it's now read in the final no-polling version?
Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 22, 2015, 12:34:34 pm
AFAIK, there should be effectively no difference (on the user experience side, anyway) between the first joypoll test build and the final version of the patch as it got merged with master. The change was simply to get rid of the restriction that the joystick's status would only be updated ten times per second.
Title: Re: Joystick turning lag
Post by: z64555 on August 22, 2015, 02:58:09 pm
To further ellaborate, the second no-poll build featured a more trimmed down version of the first one. As AdmiralRalwood noted, there is no difference on the user's side between the two builds, but there is a difference on the code side.

Joystick polling is still done, but it is now done every frame vs. some arbitrarily set frequency. When the SDL_Everywhere changes, which are currently in the antipodes builds, finally get rolled into the main codebase, we'll switch to using an asynchronous method that SDL supports which will ultimately give us the fastest/smoothest response from joysticks.
Title: Re: Joystick turning lag
Post by: Avder on August 22, 2015, 03:41:49 pm
So then, what was the difference between the two m2436 builds?

Also would it be possible to roll the new joystick axis code into the current antipodes build manually?  It seemed like the current antipodes build was a little more responsive than the present final release, so I think that would result in an even greater gain as far as responsiveness goes.

As you can tell I'm really hyper vigilant about input lag.  I'm a nightmare for any friend of mine who's bought a TV and put it into game mode.  And I also spent hours tinkering with me NES emulator because I noticed a few frames of lag between when I hit the B button and when Megaman actually fires, hehe.
Title: Re: Joystick turning lag
Post by: AdmiralRalwood on August 22, 2015, 03:52:36 pm
So then, what was the difference between the two m2436 builds?
It was just a build with and without the polling timer removed to make absolutely sure that was the only difference being tested (to make sure it wasn't somehow responsible for your crash, which it wasn't).

It should be fairly trivial to apply the patch to Antipodes, since that specific piece of code looks identical. That being said, Antipodes is a fair ways behind master right now (178 commits), so it's probably just a matter of somebody finding the time to handle a merge.