Complete GameStudio Bug List Last changed: Sep-15-2005 This is the list of all known GameStudio/A6 bugs since 2003, and of 3rd party software bugs as long as they affect GameStudio. If you think that you've found a bug, please check this list to determine whether it's already reported or fixed. The most recent bugs are listed at the top. 3rd party software bugs =============================================== Note: Most 3D card bugs can be fixed by downloading the latest driver version from the manufacturer's website. Here's a list of all known third party software issues, as long as they affect GameStudio. 3DFX VOODOO1..VOODOO3 - drivers don't support DirectX8 or DirectX9 properly, leading to rendering faults. Additionally, those first generation 3D cards can't display textures above 256x256. S3 / SAVAGE PRO - drivers don't support DirectX8 or DirectX9 properly, leading to rendering faults and error messages. No workaround known. ATI IGP / MOBILITY 7000..7500 - there's an ATI driver bug on some laptop systems manufactured in 2002 or earlier. The bug can cause very slow rendering of sky and particles in T&L mode, or produce rendering faults on level surfaces. This bug was fixed in 2002, however ATI does not offer the fixed drivers for laptops. For fixing this problem the easiest way, download a modified driver (ATI Omega) from http://www.omegadrivers.net. ATI RADEON / X800: When using a render target (view.bmap), sometimes model entities show up with a blue skin (or a skin colored in the sky texture that you are using). This is a random effect, i.e. on the same system it sometimes happens and sometimes not. It was reported to only occur when the skin has an incorrect size, i.e. not a power of two. Another user reported that installing the latest Omega drivers (http://www.omegadrivers.net) fixes that problem also. DIRECTX / MODEL ANIMATION - some drivers display a wrong model frame when many models with the same mesh, but different animation frames are visible. This bug occurs with several 3D cards, but was reported to be fixed in the latest nVidia drivers. Workaround: for version 6.31.4 or earlier, set the entities' u or v parameters to a small value, like 0.1. For versions later than 6.31.4, set the patch variable at 1. DIRECTX / VIDEO MEMORY - Some video drivers cause a loss of video memory after starting and exiting a managed memory 3D application - like the GameStudio engine - several times. This results in an error message at startup after about 100 engine starts when not enough video memory is left. We could not yet reproduce this problem on any of our test systems, so it's obviously specific to certain PC configurations. It is not a bug of GameStudio. If you encounter a similar problem, please report your operating system, 3D hardware, and driver version to the support - we'd like to collect information about that problem. Update your video drivers from the manufactorer's website, which is reported to solve the problem. WINDOWS XP / DIRECTX - the so-called '60 Hz bug' limits the fullscreen frame rate on some machines to integer fractions of the monitor refresh rate (mostly around 60 fps), regardeless of the setting of FPS_MAX or D3D_TRIPLEBUFFER. Often the monitor can not be set to a higher refresh rate than 60 Hz. There are many suggestions on the internet how to deal with the 60 Hz bug, like at http://www.d-silence.com/video/refresh2.shtml. IOMEGA ZIP / DIRECT X: The parallel port driver of the Iomega ZIP drive was reported to cause instabilities of the DirectShow filter that is also used by GameStudio for streaming video. EARTHLINK TOTAL ACCESS was reported to crash SED versions prior to 1.3 probably due to a faulty MSFC DLL call. Version 6.31 ========================================================== Entity->PARENT pointed to a different entity than assigned in WED (fixed in A6.34.4). The ENT_SENDNOW function didn't work under some circumstances, causing overshoot effects in multiplayer games when movement prediction was enabled and the update rate was low (fixed in A6.34.3). Workaround: disable movement prediction and increase the entity update rate. In the A6 plugin SDK, the mouse and joystick key variables in avars.h were shifted by 1, i.e. vars->mouse_right was assigned to the left mouse key and so on (fixed in A6.33.6). Collision detection by c_... instructions only works within a range of about 65,000 units from the level center (fixed in A6.32.1). SEND_VAR_TO and SEND_STRING_TO sent the vars and strings to all clients when all entity updates were disabled (fixed in A6.33.6). Workaround: have at least one entity with sending updates enabled. MOVIES played on an overlay bitmap - i.e. a sprite - that was not visible before movie start could lead to wrong movie colors (fixed in A6.33.1). Workaround: Make sure that the sprite is visible before the movie starts, or use a non-overlay model. D3D_TRIPLEBUFFER was set at 1 at game start on T&L cards (fixed in A6.32.7). Workaround: insert 'var d3d_triplebuffer = 0;' at the beginning of your script. PH_ITERATIONS must be set at 0 when using limit values for hinge and wheel constraints (fixed in A6.33.0). PHENT_ADDCENTRALVEL behaved unstable when the frame rate changed (fixed in A6.32.7). Workaround: Set time_smooth at zero when using phent_addcentralvel. BEAM and STREAK must not be set at the same time for particles (in A6.32.6 STREAK is ignored in that case). VIDEO_WINDOW only moved the window to another position if a window size was given at the same time (fixed in A6.32.4). Workaround: Give a size when moving the window. WMB entities created by ENT_CREATE could have 'gaps' in walls under some rare circumstances if their angles stay at zero (fixed in A6.32.3). Workaround: Set pan briefly at a small value like 0.01. The back side of DECAL sprites was visible (fixed in A6.32.2). When pressing [CTRL-S] in the MED Skin editor, MED 'hangs' (fixed in MED 6.574). ON_D3D_LOST crashed under some circumstances when exiting the engine (fixed in A6.32.1). Workaround: Set on_d3d_lost to NULL before executing exit(). PAN_REMOVE didn't remove the panel if it was created by pan_create (fixed in A6.32.1). STACKED PHYSICS objects could become 'stuck' in each other under certain circumstances (fixed in A6.33.0). MULTIPLAYER games require a level to be loaded. Without a level, send instructions don't work under some circumstances, and as a consequence, SESSION_CONNECT fails (fixed in A6.32.1). Workaround: Always load a level in multiplayer mode and use the -c command line option for connection to a session. C_TRACE returns passable blocks even if IGNORE_PASSABLE has been set. Workaround: For passable geometry, create a separate WMB entitiy and set its flag to PASSABLE. For invisible but not passable geometry, set the NONE flag for the block's surfaces. The material TANGENT flag had no effect on models that are rendered during FREEZE_MODE at 1 or above (fixed in A6.32.1). Workaround: Wait until the models are rendered for at least one frame before setting freeze_mode. C_ROTATE and PATH_NEXTNODE both only work with the MY entity (fixed in A6.32.1). Workaround: set MY to the entity parameter before calling the instruction. SND_STOPALL was missing in the DLL SDK (added in A6.32.1) C_TRACE set its return value at the traced distance when nothing was hit (in the next update it will then return 0 instead). Workaround: Use trace_hit to detect whether something was hit or not. DPLAY_MAXCLIENTS had no effect (fixed in A6.32.1) SED didn't display function names under some circumstances (fixed in SED 1.2.8a that is available on the download page). Multistring Truetype texts displayed one string less when INKEY was applied to one of the strings (fixed in A6.32.0) 'FUNCTION NOT AVAILABLE' warnings are issued when the warn_level is set at 2 or above and a DLL plugin is used (fixed in A6.32.0). Workaround: do not set warn_level at 2 or above when using DLL plugins. You can safely ignore the warnings. Version 6.22 ========================================================== When setting the UNLIT flag by script, the engine sometimes also changed its material to mat_unlit (fixed in A6.31.0). Workaround: manually set the material if desired, either to mat_model or to mat_unlit. PATH NODE POSITIONS were numbered in a different way in the engine than in WED (fixed in A6.30.5). INKEY sometimes didn't restore the old string content properly when ESC was pressed (fixed in A6.30.2). SED BETA VERSION EXPIRED - version 6.22 contained a SED that gave this message at startup. Update to 6.31 or download a new SED from the download page. VECSKILL13 wasn't passed correctly to shaders (fixed in A6.30.2). GAME_SAVE didn't work properly if no level was loaded before (fixed in A6.30.1). NEGATIVE TEXTURE SCALES in WORLDCRAFT MAPS weren't imported correctly (fixed in WED 6.264). VIDEO_WINDOW produced a wrong window size when the window border and size was changed at the same time and another window resize instruction was performed afterwards (fixed in A6.23.6). MDL5 files were exported with wrong vertex animation positions (fixed in MED 6.187). ACTIVATE_TRIGGER had a wrong value (fixed in A6.23.2). As a workaround, replace it by ACTIVATE_SONAR. SUB-ENTITIES of a map entity sometimes appeared in wrong positions and angles (fixed in A6.23.2). PROC_KILL(1) crashed when called by an entity that was assigned to the WATCHED pointer (fixed in A6.23.2). MOUSE_FORCE was not time compensated, resulting in a lower mouse force at higher frame rates (fixed in A6.23.2). MICKEY.X/Y/Z was set at -1 if the mouse pointer was outside the engine window and the window focus was lost (fixed in A6.23.2). STARTER CREATION doesn't work with some GameStudio versions because the WDFC.EXE file in the BIN folder was damaged. WDFC.EXE must have a file length of 81.920 bytes (Pro Edition only). If your BIN\WDFC.EXE file is shorter (like 56 bytes), download the correct version from http://server.conitec.net/gsa6p/wdfc.zip and unzip it into the BIN folder. MILKSHAPE EXPORT/IMPORT didn't work with the 6.22 Commercial and Pro Edition (fixed in A6.23.1). Until the next update release, please download the patch from http://server.conitec.net/gsa6/cpi01.zip and unzip it into the MS folder. PLUGINDIR = "." doesn't work for the work folder (fixed in A6.23.1). As a workaround, give the relative folder name, like "..\\work". PH_WHEELs used to bend at high rotational speed (fixed in A6.23.0 - wheels will now stay in place even at higher velocities). Depending on the MDL used, TERRAIN-SPHERE physics collisions might not have worked properly (fixed in A6.23.0). EVENT_BLOCK was not reported by ph_move (fixed in A6.23.0). When calling PHENT_SETTYPE() on the same entity multiple times, this could lead to memory leaks (fixed in A6.23.0). Setting ENTITY.FRAME to an invalid value, like 0, could lead to a crash under some circumstances (fixed in A6.23.0). Version 6.20.2 ======================================================== Early Gamestudio 6.22 beta version, circulating in the warez scene. Many functions are disabled or don't work in that version. Version 6.11 ========================================================== EVENT_BLOCK was not supported by c_move and c_trace (fixed in A6.22.2). ENABLE_RENDER material events affected shader and effect constants only after rendering under some circumstances (fixed in A6.22.2). The WED SUN LIGHT setting produced a too strong effect due to a wrong light factor (fixed in Map Compiler 6.21). NOTE: If your levels compile too dark after the fix, increase the sun light values. When leaving a fullscreen game with [ALT_TAB], non-changing dynamic lights were extinguished (fixed in A6.22.0). Some surfaces were not shaded correctly by SUNLIGHT in extremely large levels (fixed in map compiler 6.20). CD_PLAY() returned always 99 instead of the real number of tracks (fixed in A6.20.4). BUTTON_OFF was not always triggered when the mouse left not only the button, but the whole panel within one frame (fixed in A6.20.4). The precaclulated BOUNDING BOX of a model was dislocated if the model's origin was horizontally displaced (fixed in A6.20.4). Workaround: center the origin horizontally or set the bounding box manually. BUTTON CLICKS were wrongly registered when a button covered the upper left corner (0,0 position) and the mouse was clicked outside the engine window (fixed in A6.20.4). Workaround: Don't have a button at the 0,0 position. PIXEL_TO_VEC didn't read the correct alpha value from the pixel under some circumstances (fixed in A6.20.4). TXT_LOAD didn't read a string if it contained only one character (fixed in A6.20.3). Exceeding the CLIENT LIMIT (4 clients on Commercial Edition only) could produce a crash in multiplayer mode (fixed in A6.20.3). Playing a FULLSCREEN VIDEO through MEDIA_PLAY only displayed an empty canvas when a level was not yet loaded or there was no panel behind the media_layer (fixed in A6.20.3). Workaround: Display an arbitrary panel when playing a video before the level is loaded. The SENDPACKET DLL function produced an error on the receiving client when a packet was received just after a client connects to the server and the ReceivePacket pointer was not yet set (fixed in A6.20.3). BUILDING a small level with a HYPERTHREADED pentium 4 system does not work in multiprocessor mode (fixed in Map Compiler 6.13). Workaround: switch to single processor mode by setting "CPUs to be used" at 1. ENT_BONERESET resetted the whole branch (fixed in A6.20.3). Loading a level could cause the physics engine to crash under some rare circumstances (fixed in A6.20.3). Sometimes moving PHYSICS ENTITIES collided with other non-passable physics entities even if those were assigned to the same group. Since objects of the same group are usually attached to each other this resulted in erratic behavior (fixed in A6.20.3). Pressing the SPACE or RETURN key during gameplay could cause a following ERROR OR WARNING MESSAGE BOX to be acknowledged unintentionally (fixed in A6.20.1). Plugins from the ACKNEX_PLUGINS folder - including the debug.dll - were only automatically opened if the current work folder was located in the GStudio directory (fixed in A6.20.1). In standalone server mode (-sv) the EXIT instruction didn't close the server window automatically. A click on the close icon was required (fixed in A6.20.1). The -NC command line option of the Pro Edition caused the resource name and nexus value not to be taken over in a released version created with PUBLISH or RESOURCE (fixed in A6.20.1). Workaround: Give the resource name (without .wrs extension) and the -nx command line option additionally. WED didn't display terrains with 24 bit TGA skins (fixed in WED 6.11). DIGIT didn't clip the value at the maximum number of digits (fixed in A6.12.9). On fixed length strings the INKEY cursor didn't reach the last character (fixed in A6.12.9). INCLUDE crashed when including an empty file (fixed in A6.12.8). ENT_BONEMOVE and ENT_BONESCALE sometimes moved the affected bone to a wrong position (fixed in A6.12.8). ACKLOG.TXT contained lots of "time:" values due to a temporary diagnostics output mistakely left in the release version (fixed in A6.12.8). TRANSPARENT VIEWS produced rendering errors in some configurations (fixed in A6.12.6). Version 6.0 ========================================================== FOG had effect on SKY MODELS when another model was placed into the level (fixed in A6.11.1). MED MERGE didn't work properly (fixed in MED 6.01) AUTOTRANSPARENY SPRITES displayed a thin right and lower border line when they were not a power of 2 in size (fixed in A6.11.1). Workaround: always use power of 2 for texture sizes. INKEY() produced a wrong result when the right arrow key was pressed after calling inkey() with an empty string (fixed in A6.11.1). Workaround: Do not call inkey() with an empty sting. A CLIENT CRASH occurs when a global entity is created on the server, is displaced by a local function on a client, and collides with another entity sent by the server to the same location (fixed in A6.11.0). Workaround: Do not attempt to displace global entities by local client functions. SKY and SCENE entities sometimes weren't visible in the mirror (fixed in A6.11.0). UV TEXTURE SHIFT didn't work properly with map entities under some circumstances (fixed in A6.11.0). ENTITY REMOVAL was not properly transferred from server to client in some rare situations with many local entities created by proc_local (fixed in A6.11.0). MODELS DISAPPEARED in rare situations if Vec_for_vertex and vec_to_vertex were executed after changing the model's coordinates (fixed in A6.03). Various SED BUGS were fixed: - Vertical scrolling with the mouse wheel now works reliably - Refresh problem after changing colors removed - Function prototypes removed from the code jumper - Number of variables now displays correctly - Errors when not having any script open removed - Bug with refreshing when switching opened script files removed, this also made the switching slower than it should have been - Hang when selecting an item in the Code jumper and exit SED removed - Bug when renaming variable for example “logo” with “no_logo” corrected. The PSTRING function in the ackdll.cpp example file of the SDK was incomplete, resulting in error messages due to the new type checking of A6. Here's the correct function: // helper function for passing a string (79 chars max!) long PSTRING(char* chars) { static A4_STRING tempstring; static char tempname[80]; strcpy(tempname,chars); tempstring.chars = tempname; tempstring.link.index = 4<<24; // needed for string type checking return (long)&tempstring; } BMAP_LOCK returned a wrong pixel format in some cases when a 24-bit TGA texture was used. Many 3D cards store 24 bit textures internally in 8888 format (fixed in A6.02). FILE TYPE ASSOCIATIONS of wmp, mdl, and wdl files with their editors didn't work in all configurations. Open a folder, select Tools-> Folder Options->File Types, look for the desired file type, like WDL. Click Advanced, select Open, and click Edit. There you can edit the application for opening the file. A correct line looks like "C:\program files\gamestudio6\sed.exe" "%1" Important are the quotation marks around the "%1" that were missing in the original definition. Also make sure that the DDE box is not marked, and the DDE command lines are empty. The TECHDEMO SKY system had a script bug that could lead to a crash when entering a room if the level was saved before. Fix: in techdemo.wdl, replace var toggle_sky_map = sky_map; var toggle_cloud_map = cloud_map; var toggle_scene_map = scene_map; by bmap* toggle_sky_map; bmap* toggle_cloud_map; bmap* toggle_scene_map; (fixed in A6.02). TRUETYPE TEXTS were clipped too early at the right and lower screen border (fixed in A6.02). WDL scripts within an EXTERNAL RESOURCE weren't found when the game was created using PUBLISH (fixed in A6.02). DYNAMIC LIGHTS weren't visible under some circumstances when their ranges, positions, or colors were never changed (fixed in A6.02). STANDALONE SERVERS (-sv command line option) accessed the 3D card despite it wasn't initialized, which produced an error message in some configurations (fixed in A6.02). Workaround: Start with -sv -cl. TRUE TYPE texts that contained several strings displayed each string at the same vertical position (fixed in A6.01). Workaround: use several texts. If a sprite's ORIENTED and FACING flags are set at the same time and thus contradict each other, the facing flag wins in A5 mode and the oriented flag wins in A6 mode (changed in A6.01, now facing always wins). Workaround: dont' set ORIENTED and FACING at the same time. Black skin parts of MODELS with OVERLAY flag were intransparent (fixed in A6.01). MOUSE EVENTS weren't detected under certain angles when an object was close behind the camera or when a mirror was visible (fixed in A6.01). A6 TERRAIN had seams along the squares (fixed in A6.01). =======================================================================