Some background info:
- When I start a number with a '$', it's a hex value.
- When I start a number with '@', it's a hex offset.
- In hex, when a number's first digit is an 'F', that means it's a negative number (in this hack, anyway..). FFFF= -1, FFFE = -2...
- The position of the players is relative the centre ice dot (0,0).
- To the right and up is positive; to the left and down is negative.
- See the picture below for the locations of some lines
When the goalie doesn't have the puck, he is constrained to a small box around the crease, measured in pixels (although he actually can move outside this box, but his movement becomes extremely slow, about 1 pixel per second).
- Right side of box: $0024. The value is in the ROM at offset @00B632
- Left side of box: $FFDB @00B650
- Bottom of box for the upper-end goalie: $00E7 @00B66A
- Top of box for the lower-end goalie: $FF19 @00B674
When the goalie has the puck, the whistle is blown if he crosses a line near the top of the faceoff dots.
- The line for the upper-end goalie: $00AA @00D3EA
- The line for the lower-end goalie: $FF56 @00D3F2
Here is an example you might use:
-------------------------------- Make the box twice as wide for both goalies: -------------------------------- (right side) OFFSET: @00B632 OLD VALUE: $0024 (+36) NEW VALUE: $0048 (+72) (left side) OFFSET: @00B650 OLD VALUE: $FFDC (-36) NEW VALUE: $FFB8 (-72) -------------------------------- Let the goalies roam farther towards centre ice, WITHOUT the puck: -------------------------------- (upper end goalie) OFFSET: @00B66A OLD VALUE: $00E7 (+231) NEW VALUE: $00E0 (+224, a little bit closer to centre-ice) (lower end goalie) OFFSET: @00B674 OLD VALUE: $FF19 (-231) NEW VALUE: $FF20 (-224, a little bit closer to centre-ice) -------------------------------- Let the goalies roam farther towards centre ice WITH the puck: -------------------------------- (upper end goalie) OFFSET: @00D3EA OLD VALUE: $00AA NEW VALUE: $0090 (between the faceoff circles and the blueline) (lower end goalie) OFFSET: @00D3F2 OLD VALUE: $FF56 NEW VALUE: $FF70 (between the faceoff circles and the blueline)
rink_locations.PNG (116.21K)
Number of downloads: 44
-----
Notes:
Yes, it would be possible to add extra code to the game to get the play whistled down if the goalie violated the trapezoid rule (but without a penalty), but I won't do this. The AI goalie always rushes into the corner to get the puck, so this would cause a huge number of whistles without knowing how to disable that behaviour.
kind of funny: I spent sooo much time tracing backwards through code trying to find how to do this hack, without success ... then I got sick of it and just started looking at the very first trace point that used a certain memory location, and what do you know, that was it. Could have saved hours! I learned some stuff on the way, though, that might be useful some other time.
This post has been edited by smozoma: 10 February 2010 - 01:37 AM

Help















