Staredit Network > Forums > SC1 UMS Theory and Ideas > Topic: Chaotic Terrain
Chaotic Terrain
Dec 3 2011, 8:25 am
By: Cinolt  

Dec 3 2011, 8:25 am Cinolt Post #1



EDIT: There's a minor bug in that some tiles will be flipped horizontally.

Nothing new, just decided to map out what terrain looks like before and after the Player 20 Map Revealer/Interceptor/Scarab trick for each tileset.

Here's a sample:


http://www.mediafire.com/?0bq92f9p980xpw7

Here's the VR4's so you can set it up to appear even in the map editor.

http://www.mediafire.com/?okh3b1cco1bt9gg

Technical


Post has been edited 2 time(s), last time on Dec 26 2011, 1:12 am by yoonkwun.



None.

Dec 4 2011, 3:51 pm Heinermann Post #2

memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes

0x0059CCA8 is the beginning of the unit array.

Code
.data:0059CCA8 ; CUNIT units[1700]


Actually, as a matter of fact I have figured out this specific overflow entirely.

Code
.data:006283F8 ; CUNIT *playerUnitPointers[12]

If we create a unit for Player 20, then we are referencing playerUnitPointers[19] then it is pointing directly to 0x00628444.


Here is a chart of extended players and what is being modified (using only this specific overflow, this does not include several other overflows).
Code
Player: Name/description of address modified
13: CUNIT *LastHiddenUnitPointer
14: CUNIT *unknownPointer?
15: CUNIT *FirstUnitPointer
16: CUNIT *LastScannerSweepPointer
17: CUNIT *firstEmptyUnitPointer
18: CUNIT *lastEmptyUnitPointer
19: DWORD unused memory (safe)
20: void *vr4FileHandle
21: DWORD screenX (position)
22: DWORD unused memory (safe)
23: DWORD gwMapPixWidth (map width in pixels)
24: char *gameMapDataForBlit (not entirely known, but is a storage for blitting terrain info to the screen)
25: char *vx4FileHandle
26,27,28,29: DWORD unused memory (safe)
30: void *unknownStars1 (unknown pointer used for stars in the space tileset)
31: DWORD screenY (position)
32,33,34,35: DWORD unused memory (safe)
36: void *unknownStars2 (unknown pointer used for stars in the space tileset)
37: DWORD maxX (maximum x position in pixels for moving the screen)
38: DWORD moveToX (for moving the screen position)
39: DWORD parallaxSomethingWidth (should contain (640 + 8)*256)
40: WORD *mapTilesetHandle (don't remember)
41: DWORD unknownMoveX (something about screen moving)
42: DWORD parallaxSomethingHeight (should contain (480 + 8)*256)
43: rect fullMapPixelDimensions (x,y)
44: rect fullMapPixelDimensions (w,h)
45: DWORD moveToY
46: DWORD unknownMoveY
47: DWORD maxY
48: DWORD gwMapPixHeight
// CUNIT *CurrentUnitSelection[12]
49: CurrentUnitSelection[0]
50: CurrentUnitSelection[1]
51: CurrentUnitSelection[2]
52: CurrentUnitSelection[3]
53: CurrentUnitSelection[4]
54: CurrentUnitSelection[5]
55: CurrentUnitSelection[6]
56: CurrentUnitSelection[7]
57: CurrentUnitSelection[8]
58: CurrentUnitSelection[9]
59: CurrentUnitSelection[10]
60: CurrentUnitSelection[11]
// CUNIT *AllPlayerSelectionGroups[8][12]
61: AllPlayerSelectionGroups[0][0]
62: AllPlayerSelectionGroups[0][1]
63: AllPlayerSelectionGroups[0][2]
64: AllPlayerSelectionGroups[0][3]
65: AllPlayerSelectionGroups[0][4]
66: AllPlayerSelectionGroups[0][5]
67: AllPlayerSelectionGroups[0][6]
68: AllPlayerSelectionGroups[0][7]
69: AllPlayerSelectionGroups[0][8]
70: AllPlayerSelectionGroups[0][9]
71: AllPlayerSelectionGroups[0][10]
72: AllPlayerSelectionGroups[0][11]
73: AllPlayerSelectionGroups[1][0]
74: AllPlayerSelectionGroups[1][1]
75: AllPlayerSelectionGroups[1][2]
76: AllPlayerSelectionGroups[1][3]
77: AllPlayerSelectionGroups[1][4]
78: AllPlayerSelectionGroups[1][5]
79: AllPlayerSelectionGroups[1][6]
80: AllPlayerSelectionGroups[1][7]
81: AllPlayerSelectionGroups[1][8]
82: AllPlayerSelectionGroups[1][9]
83: AllPlayerSelectionGroups[1][10]
84: AllPlayerSelectionGroups[1][11]
85: AllPlayerSelectionGroups[2][0]
86: AllPlayerSelectionGroups[2][1]
87: AllPlayerSelectionGroups[2][2]
88: AllPlayerSelectionGroups[2][3]
89: AllPlayerSelectionGroups[2][4]
90: AllPlayerSelectionGroups[2][5]
91: AllPlayerSelectionGroups[2][6]
92: AllPlayerSelectionGroups[2][7]
93: AllPlayerSelectionGroups[2][8]
94: AllPlayerSelectionGroups[2][9]
95: AllPlayerSelectionGroups[2][10]
96: AllPlayerSelectionGroups[2][11]
97: AllPlayerSelectionGroups[3][0]
98: AllPlayerSelectionGroups[3][1]
99: AllPlayerSelectionGroups[3][2]
100: AllPlayerSelectionGroups[3][3]
101: AllPlayerSelectionGroups[3][4]
102: AllPlayerSelectionGroups[3][5]
103: AllPlayerSelectionGroups[3][6]
104: AllPlayerSelectionGroups[3][7]
105: AllPlayerSelectionGroups[3][8]
106: AllPlayerSelectionGroups[3][9]
107: AllPlayerSelectionGroups[3][10]
108: AllPlayerSelectionGroups[3][11]
109: AllPlayerSelectionGroups[4][0]
110: AllPlayerSelectionGroups[4][1]
111: AllPlayerSelectionGroups[4][2]
112: AllPlayerSelectionGroups[4][3]
113: AllPlayerSelectionGroups[4][4]
114: AllPlayerSelectionGroups[4][5]
115: AllPlayerSelectionGroups[4][6]
116: AllPlayerSelectionGroups[4][7]
117: AllPlayerSelectionGroups[4][8]
118: AllPlayerSelectionGroups[4][9]
119: AllPlayerSelectionGroups[4][10]
120: AllPlayerSelectionGroups[4][11]
121: AllPlayerSelectionGroups[5][0]
122: AllPlayerSelectionGroups[5][1]
123: AllPlayerSelectionGroups[5][2]
124: AllPlayerSelectionGroups[5][3]
125: AllPlayerSelectionGroups[5][4]
126: AllPlayerSelectionGroups[5][5]
127: AllPlayerSelectionGroups[5][6]
128: AllPlayerSelectionGroups[5][7]
129: AllPlayerSelectionGroups[5][8]
130: AllPlayerSelectionGroups[5][9]
131: AllPlayerSelectionGroups[5][10]
132: AllPlayerSelectionGroups[5][11]
133: AllPlayerSelectionGroups[6][0]
134: AllPlayerSelectionGroups[6][1]
135: AllPlayerSelectionGroups[6][2]
136: AllPlayerSelectionGroups[6][3]
137: AllPlayerSelectionGroups[6][4]
138: AllPlayerSelectionGroups[6][5]
139: AllPlayerSelectionGroups[6][6]
140: AllPlayerSelectionGroups[6][7]
141: AllPlayerSelectionGroups[6][8]
142: AllPlayerSelectionGroups[6][9]
143: AllPlayerSelectionGroups[6][10]
144: AllPlayerSelectionGroups[6][11]
145: AllPlayerSelectionGroups[7][0]
146: AllPlayerSelectionGroups[7][1]
147: AllPlayerSelectionGroups[7][2]
148: AllPlayerSelectionGroups[7][3]
149: AllPlayerSelectionGroups[7][4]
150: AllPlayerSelectionGroups[7][5]
151: AllPlayerSelectionGroups[7][6]
152: AllPlayerSelectionGroups[7][7]
153: AllPlayerSelectionGroups[7][8]
154: AllPlayerSelectionGroups[7][9]
155: AllPlayerSelectionGroups[7][10]
156: AllPlayerSelectionGroups[7][11]
Everything else: Spans char gameResultText[3072]  (safe, overwritten)





Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[04:56 am]
Ultraviolet -- I suppose we'll likely never know, but my guess would be that they already saw it operating successfully and there was no monetary incentive to finish the original work. And the dev cycle in old school Blizzard was so hectic, it's possible it just got forgotten about after the original game got released. Plus there's an element of existing MPQ files that were packaged with the original discs becoming outdated if they updated it. And it's not like they remade the original MPQs, they just made new ones for BW specifically
[04:26 am]
Oh_Man -- so that makes me think maybe the theory they are unfinished is not true and its a deliberate design decision, coz why not finish them wen ur making brood war?
[04:25 am]
Oh_Man -- the thing is thos buildings are from classic. that means they went ahead and made brood war without ever finishing the 'unfinished' buildings
[06:15 pm]
Ultraviolet -- Yeah he's talked about a lot of that stuff in his casts before. It seems plausible. Especially knowing how Blizzard of yesteryear operated.
[03:47 pm]
NudeRaider -- to clarify: couldn't recall the behavior for every single Protoss building but I was aware the disparity exists.
[03:43 pm]
NudeRaider -- Contained nothing new for me. Didn't know all building's behavior, but very much all unit's. Also Terran balance whine - also nothing new :lol:
[2026-6-19. : 9:57 am]
Oh_Man -- makes me wonder if SEN knows anything about the topic
[2026-6-19. : 9:57 am]
Oh_Man -- artosis dropped pretty interesting vid: https://youtu.be/EqZHB8Blra4
[2026-6-18. : 5:01 pm]
Ultraviolet -- :wob:
[2026-6-17. : 6:15 am]
RexyRex -- :wob:
Please log in to shout.


Members Online: jun3hong