星际争霸1游戏崩溃原因列表

2025-02-04
Terms: Extended unit: A unit with a type ID that is out of bounds. Extended player: A unit owned by a player ID that is out of bounds. Most commonly used by some maps to induce an exploit that increases the speed of the game. Notes: All of these can be reproduced, with the possible exception of extended units and players (IDs were not recorded, sorry). This is for the 1.16.1 version of Starcraft: Broodwar 0x00401D44 Caused by: Mass of 1700 units all splash-damaging each other? Crashes when: Retrieving the Unit Type for an invalid Unit Class. 0x0040449B Caused by: Placing extended unit. 0x00404500 Caused by: Placing extended unit, or giving a unit that is hatching to another player. 0x0040452B Caused by: Placing extended unit. 0x00409188 Caused by: Unit's hit box is partially outside of the map boundry. Crashes when: memcpy reads/writes to an invalid memory location. 0x0040ABCA (pal0_0) Caused by: Using overflow/invalid drawing function (images.dat) 0x0040BD1D Caused by: Placing extended unit. 0x0040B68C (pal9_0) Caused by: Using overflow/invalid remapping data (images.dat) 0x0040B6B7 (pal9_0) Caused by: Set doodad state on protoss buildings under construction. 1.18.1: Confirmed issue. 0x0040C119 (imageRender10_1) Caused by: Possibly extended unit or doodad state. Crashes when: Unknown, invalid pointer. 0x0040E622 Caused by: Showing an invalid portrait (flag portrait, show portrait trigger). Crashes when: Unknown. Located somewhere in __vsnprintf's __output function. Something to do with getting the string for the smk file? 1.18.1: Confirmed issue. 0x00419DF2 Caused by: Non-standard sized maps. Fault address usually 0x00000000. Crashes when: Minimap update function is NULL. Fix: When the minimap is initialized, set the default case to a 256-size map, or give it a special case. 1.18.1: Confirmed issue. 0x0041D800 Caused by: Scrolling vertically off the edge of the minimap (in a map smaller than the screen size). 0x0042BD4D Caused by: Small-sized map. Crashes when: Unknown. AI Path Creation. 0x00430B93 Caused by: Storming a mass of ~1600 protoss units in one space. 0x004344A3 Crashes when: Unknown. Retrieving a sprite pointer from a unit pointer. Related to purchasing something (Ore/Gas referenced). Same comments as below. 0x004344B4 Crashes when: Unknown. Retrieving a unit pointer from an unknown structure (For building or upgrading). Strong possibility of being AI related. Same comments as above. 0x0043AE98 Caused by: Plaguing a mass of ~1600 protoss units in one space. 0x0045925C Caused by: Selecting an extended unit (using flingy #255). Crashes when: Attempt to retrieve invalid/NULL sprite pointer. 0x00460071 Caused by: Score(Custom) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x0046007C Caused by: Score(Units) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x00460087 Caused by: Score(Buildings) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x00460092 Caused by: Score(Units And Buildings) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x004600A4 Caused by: Score(Kills) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x004600AF Caused by: Score(Razings) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x004600BA Caused by: Score(Kills And Razings) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x004600CC Caused by: Score(Total) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x00460417 Caused by: Deaths(Any Unit) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x00460428 Caused by: Deaths(Men) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x00460432 Caused by: Deaths(Buildings) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x0046043C Caused by: Deaths(Factories) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x0046044C Caused by: Deaths(Specific Unit) condition with extended player/unit ID. (reading invalid block of memory) Fix: Limit possible values. 0x00460537 Caused by: Kills(Any Unit) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x00460548 Caused by: Kills(Men) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x00460552 Caused by: Kills(Buildings) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x0046055C Caused by: Kills(Factories) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x0046056C Caused by: Kills(Specific Unit) condition with extended player/unit ID. (reading invalid block of memory) Fix: Limit possible values. 0x004605E7 Caused by: Accumulate(Ore and Gas) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x00460662 Caused by: Accumulate(Gas) condition with extended player ID. (reading invalid block of memory) Fix: Limit possible values. 0x0046066B Caused by: Accumulate(Ore) condition with extended player ID. (Reading invalid block of memory) Fix: Limit possible values. 0x00460768 Caused by: Bring/Command(Any Unit) condition with extended player ID. (Reading invalid block of memory) Fix: Limit possible values. 0x0046077A Caused by: Bring/Command(Men) condition with extended player ID. (Reading invalid block of memory) Fix: Limit possible values. 0x00460785 Caused by: Bring/Command(Buildings) condition with extended player ID. (Reading invalid block of memory) Fix: Limit possible values. 0x00460790 Caused by: Bring/Command(Factories) condition with extended player ID. (Reading invalid block of memory) Fix: Limit possible values. 0x004607A1 Caused by: Bring/Command(Specific Unit) condition with extended player/unit ID. (Reading invalid block of memory) Fix: Limit possible values. 0x004629DC Caused by: Extended player 1.18.1: Confirmed FIXED. Can't place extended players on maps. 0x00466A2A Caused by: Selecting a unit with an active production bar with a build time of 0. Crashes when: Divided by 0. Fix: Create a case for when the denominator value is 0. 1.18.1: Confirmed FIXED. 0x00468F31 Caused by: Placing extended unit. Crashes when: Unknown. Subunit Guard order. 0x00468F44 Caused by: Placing extended unit. 0x0046A8EE Caused by: Placing extended unit. Crashes when: Unit references a sprite that doesn't exist. 0x0046CFA0 Caused by: Briefing action referencing an invalid portrait number. 0x00472EE6 Caused by: Placing extended unit. Crashes when: Unknown. Something with the mask(fog) handle. 0x00477438 Caused by: Subunit parameter set on a non-subunit. 0x004777F3 Caused by: Placing a subunit with no main unit. Crashes when: "Turret Guard" attempts to retrieve the parent unit. Fix: Create a case for parent units that are NULL. 0x004796F7 Caused by: Loading a game with stacked ~1600 corsairs next to 100 valkyrie. Crashes when: A bad reference to a Unit in "getAllUnitsInBounds"/"unitFinder" is created. 0x0047A834 (pal11_0) Caused by: Images drawing properties set to Unknown11 0x0047A8C6 (pal11_0) Caused by: Selecting a unit with a positive hp over a negative hp (default/-1000). 1.18.1: Confirmed FIXED. Either fixed or unable to reproduce. 0x0047B0D1 Caused by: Minimap preview when a unit is placed in the no-build zone on a map (under HUD at the bottom). Crashes when: Map attempts to retrieve the unit name string for unit placement error. Strings are not loaded. Fix: Ignore all unit placement errors until after map starts. 0x0047DCCF Caused by: Unknown; creep related on non-standard map with extremely tiny dimension (5 x 64) 0x00480133 Caused by: Unit sight range > 11 (Ground unit, map edge) Note: Unit sight ranges have a fixed array with additional allocated values. A callback exists each for ground, air, inside map, and edge of map. Crashes when: The pointer reference was out of bounds and had no allocated data. Fix: Ignore sight ranges > 11 0x00480166 Caused by: Extended unit ID. Crashes when: A buffer overflow involving a reference to the Fog Mask array. Origin of the index corruption is unknown. 0x00480220 Caused by: Unit sight range > 11 (Ground unit, inside) Note: Unit sight ranges have a fixed array with additional allocated values. A callback exists each for ground, air, inside map, and edge of map. Crashes when: The pointer reference was out of bounds and had no allocated data. Fix: Ignore sight ranges > 11 // Expecting an extended unit crash here (same function as the above) 0x004802D0 Caused by: Unit sight range > 11 (Air unit, map edge) Note: Unit sight ranges have a fixed array with additional allocated values. A callback exists each for ground, air, inside map, and edge of map. Crashes when: The pointer reference was out of bounds and had no allocated data. Fix: Ignore sight ranges > 11 0x004802F6 Caused by: Extended unit ID. Crashes when: A buffer overflow involving a reference to the Fog Mask array. Origin of the index corruption is unknown. 0x00480329 Caused by: Unit sight range > 11 (Air unit, inside) Note: Unit sight ranges have a fixed array with additional allocated values. A callback exists each for ground, air, inside map, and edge of map. Crashes when: The pointer reference was out of bounds and had no allocated data. Fix: Ignore sight ranges > 11 // Expecting an extended unit crash here (same function as the above) 0x00483190 Caused by: Unknown in AI path creation. Terrain-related. Crashes when: A bad pointer is generated from a region's list of neighbors. 0x00484538 Caused by: Using the middle mouse button (move the screen) on a map with a width of 20 (exactly one screen). Crashes when: Divide by 0. Fix: Create a case for when the denominator value is 0. 1.18.1: Confirmed FIXED. Unable to reproduce. 0x004865F2 Caused by: Corrupted replay. Crashes when: Retrieving the first byte of a frame buffer that doesn't exist. 0x00488633 Caused by: A 0x0 map. Fix: Just don't use it. 0x00488C35 Caused by: Placement of High index Extended unit. (increments unit scores) Crashes when: Adding to the unit count overflows beyond the Starcraft module's memory bounds. Fix: Create a special/default case. 0x00497A10 Caused by: SCV weapon behaviour made to fly to target. Crashes when: Attempts to set the target for a subunit that doesn't exist. (Really? Looks like a bad sprite reference to me) 0x00498277 Caused by: 2 units in 1 egg property set for non-standard unit. Crashes when: References invalid "imagesLandingDustOverlay" graphic pointer. Fix: Check for NULL graphic pointers. 0x004A05BF Caused by: Extended player 1.18.1: Confirmed FIXED. Extended players can no longer be placed on maps. 0x004A4294 Caused by: Unknown extended player (Terrain palette modification). 1.18.1: Confirmed FIXED. Extended players can no longer be placed on maps. 0x004A4B23 Crashes when: Using an invalid sprite pointer from a unit. (Note that the unit is NOT a subunit, a trap, a disruption web, or a dark swarm) 0x004BBB2B Caused by: Invalid SFX id for unit. 0x004BCD1D Caused by: Setting a human player's race to invalid. Fix: Create a default case for player's race. 1.18.1: Confirmed issue. Interestingly, player's race listed as "Unknown" in game lobby. 0x004BCEF8 Caused by: Loading an invalid map tile. Fix: Create a default case for map tiles. 0x004BDB81 Caused by: Unknown, minimap related (possibly reported as wrong version) 0x004CD125 Caused by: A map height of 1. 0x004CD1A5 Caused by: Larger MTXM section for smaller map. 0x004CE1C4 Caused by: A corrupted section that is only invalid after the map start. For example: MRGN section size is 64 locations in a Broodwar scenario, or map is larger than 256x256 0x004D4DB3 Caused by: Extended unit/animation. Deals with GRP display. Protoss overlay related? 0x004D57D3 Caused by: Placing extended unitID. Crashes when: Attempting to access a missing GRP file. 0x004D57DD Caused by: Yet another extended unit + weird order combo. 0x004D57EE Caused by: Carrier/Reaver using "Train Unit" for an interceptor/scarab instead of "Train Fighter", or invalid unit running Spider Mine script. Crashes when: Invalid anim is executed, iscript. 0x004D5A57 Caused by: Placing extended unitID, or bad image script. Common if orders array is maxed out. Crashes when: order executed? Some iscript opcode case. 0x004D5A67 Caused by: Placing extended unitID, or bad image script. Common if orders array is maxed out. Crashes when: order executed? Some iscript opcode case. 0x004D7B39 Caused By: ??? Crashes when: iscript's creategasoverlays uses a bad unit pointer to determine which overlay to use. Fix: Ignore the opcode when the unit pointer is NULL. 0x004D7DF5 Caused by: Placing sprites that crash (White Circle, Psionic Storm, etc). Crashes when: iscript's sigorder opcode attempts to signal a main unit. However, the sprite is independant. Fix: When graphic has no unit attached, then ignore this op. 1.18.1: Confirmed issue. 0x004D7E8A Caused by: Extended unit (again). Crashes when: Something about iscript's turncwise opcode (0x20). 0x004D7F84 Caused by: Placing sprites that crash (Battlecruiser bullet, missiles, etc). Crashes when: iscript's trgtrangecondjmp opcode attempts to retrieve the weapon target. However, the sprite is independant. Fix: When sprite has no weapon data, then ignore this op. 1.18.1: Confirmed issue. 0x004DD66E Caused by: Missing object for a BIN Dialog. 0x004D933E Caused by: Replay speed crash hack. Crashes when: Game speed modifier is 0. Divide by 0. Fix: Create a case for when denominator value is 0. 0x004E60CB Caused by: Building fire/blood overlay graphic when building HP is 0. Crashes when: Divided by 0. Fix: Create a case for when the denominator value is 0. 1.18.1: Confirmed issue. Set max HP to 0 in an editor then construct a protoss structure. 0x004E6156 Caused by: Some extended units. Crashes when: Attempting to access an invalid shield overlay pointer. Fix: Create a Default for the index that grabs the shield overlay. 0x004EBA12 Caused by: Killing a worker holding a blank unit as a powerup. Crashes when: Null unit's sprite pointer is referenced. (Sprite pointer is 0.) Fix: Create conditions for sprite pointer of 0. 1.18.1: Confirmed issue. You can create/place a hallucinated powerup, or hallucinate one of the hidden powerups, then pick it up with a worker. 0x004EC32F Caused by: Placing an extended unit. Crashes when: Accessing a bad sprite pointer. Fix: Case for NULL sprite pointer. 0x004ECF85 Caused by: Unknown Extended player overflow Crashes when: Attempt to reference invalid sprite entry for a subunit. Fix: Create a case for bad Sprite pointer 1.18.1: Confirmed FIXED. Can't place extended players anymore.


分享