HOW TO: let the goalie roam farther with and without the puck


Recommended Posts

Here is how to allow the goalie to move farther under manual goalie control, both with AND without the puck.

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)

Here's an example for letting the goalies go anywhere:

--------------------------------
Make the box as wide as the rink for both goalies:
--------------------------------

(right side)
OFFSET: @00B632
OLD VALUE: $0024 (+36)
NEW VALUE: $007C (+124)

(left side)
OFFSET: @00B650
OLD VALUE: $FFDC (-36)
NEW VALUE: $FF84 (-124)

--------------------------------
Let the goalies roam all the way down the ice, WITHOUT the puck:
--------------------------------

(upper end goalie)
OFFSET: @00B66A
OLD VALUE: $00E7 (+231)
NEW VALUE: $FE00 (uhh this is a guess.. my diagram has a mistake.  tell me if this doesnt work.)

(lower end goalie)
OFFSET: @00B674
OLD VALUE: $FF19 (-231)
NEW VALUE: $0200 (uhh this is a guess.. my diagram has a mistake.  tell me if this doesnt work.)

--------------------------------
Let the goalies roam all the way down the ice WITH the puck:
--------------------------------

(upper end goalie)
OFFSET: @00D3EA
OLD VALUE: $00AA
NEW VALUE: $FE00 (uhh this is a guess.. my diagram has a mistake.  tell me if this doesnt work.)

(lower end goalie)
OFFSET: @00D3F2
OLD VALUE: $FF56
NEW VALUE: $0200 (uhh this is a guess.. my diagram has a mistake.  tell me if this doesnt work.)

post-253-1265582897_thumb.png

-----

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.

Edited by smozoma
Link to post
Share on other sites

Another brilliant hack. :anger:

When you said you came across a few interesting things was just wondering if the following things are or could be possible?

1. Increasing or possibly reducing the goalie side-to-side movement making it harder to deke the goalie? (far too easy on Genesis but is certainly more difficult in the SNES 93 version)

2. Making the computer pull the goalie after just one goal rather than two

3. Further to this making the computer swap goalies if the starter is having a bad day.

Also any ideas if the scoring areas of the net work in a similar way?

Link to post
Share on other sites
Another brilliant hack. :anger:

When you said you came across a few interesting things was just wondering if the following things are or could be possible?

1. Increasing or possibly reducing the goalie side-to-side movement making it harder to deke the goalie? (far too easy on Genesis but is certainly more difficult in the SNES 93 version)

2. Making the computer pull the goalie after just one goal rather than two

3. Further to this making the computer swap goalies if the starter is having a bad day.

Also any ideas if the scoring areas of the net work in a similar way?

Sorry, I haven't seen anything like that.

What I meant was I found things like where the player's current speed is stored, and the location of the puck. I think the location of the puck will allow me to find a way to disable icing.

Link to post
Share on other sites
Sorry, I haven't seen anything like that.

What I meant was I found things like where the player's current speed is stored, and the location of the puck. I think the location of the puck will allow me to find a way to disable icing.

Well was just wondering if some of this could be done as would definitely improve the game. Had a bit of a go at this hacking without any real success (just some strange happenings) so not sure what is and isn't possible.

Link to post
Share on other sites
Well was just wondering if some of this could be done as would definitely improve the game. Had a bit of a go at this hacking without any real success (just some strange happenings) so not sure what is and isn't possible.

Those will be relatively difficult hacks, unfortunately.

1. (make it harder to deke)

No clue if this is possible. AI code is a mystery. Making them move less on dekes would probably have the side effect of making them really slow on onetimers. I'd be more interested in getting rid of the falling over save on the walk-across move. Anyway, it's not that easy to score on dekes in '94, I find.. even the best breakaway percentage in Blitz is just 26%, and only one other person even has 20%

2. Making the computer pull the goalie after just one goal rather than two

Actually, i think this one should be possible, but i'm not quite sure what you mean. the CPU will pull the goalie if they're down by 2 goals near the end, but you only want it to pull him when they're down by 1?

3. Further to this making the computer swap goalies if the starter is having a bad day.

This is maybe possible, but quite hard. It would involve adding entirely new code to the game, since the game never swaps goalies. I did something like this when improving the checking code and fixing the 2nd-assist bug. Someone would need to figure out how the goalie swapping works..

Link to post
Share on other sites
Those will be relatively difficult hacks, unfortunately.

1. (make it harder to deke)

No clue if this is possible. AI code is a mystery. Making them move less on dekes would probably have the side effect of making them really slow on onetimers. I'd be more interested in getting rid of the falling over save on the walk-across move. Anyway, it's not that easy to score on dekes in '94, I find.. even the best breakaway percentage in Blitz is just 26%, and only one other person even has 20%

2. Making the computer pull the goalie after just one goal rather than two

Actually, i think this one should be possible, but i'm not quite sure what you mean. the CPU will pull the goalie if they're down by 2 goals near the end, but you only want it to pull him when they're down by 1?

3. Further to this making the computer swap goalies if the starter is having a bad day.

This is maybe possible, but quite hard. It would involve adding entirely new code to the game, since the game never swaps goalies. I did something like this when improving the checking code and fixing the 2nd-assist bug. Someone would need to figure out how the goalie swapping works..

Regarding no2 - yeh I think it would be better if teams pulled their goalie when down 1 rather than 2 - more realistic. Ideally pulling the goalie when down by 1 or by 2. Weren't you talking about doing a hacking website before? Is that still on the horizon?

Link to post
Share on other sites

I think a better way to make the computer harder to play against is to "teach" them how to shoot more one-timers and try more cheese ramming. I'm not sure how we can code the brains of me, Frey, Bo, habs, Icestorm, etc. though...

Link to post
Share on other sites
Regarding no2 - yeh I think it would be better if teams pulled their goalie when down 1 rather than 2 - more realistic. Ideally pulling the goalie when down by 1 or by 2. Weren't you talking about doing a hacking website before? Is that still on the horizon?

I finally have my own linux/apache server going, so I may actually try this now..

Link to post
Share on other sites
  • 6 months later...

any ideas on similar codes for SNES ROMs?

Link to post
Share on other sites

let's do it, then! you start! hehe. seriously, if I thought I could translate this from Genesis to SNES, I would, but I am going to require major assistance. really, though... let's do this.

Link to post
Share on other sites
  • 9 months later...

not having any luck with simple endian conversion (duh), so I'm hoping somebody wants to try to tackle this stuff the hard way. this site could surely use some semipro SNES hackers.

Link to post
Share on other sites
  • 6 years later...

Whatever Blitz uses. I didn't change anything.

I didn't even know this hack existed (in Blitz) when Plablegs started. It just happened to be in the ROM by chance.

Edited by Premium
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.