Brodeur30

HOW TO : Make Puck Hit Boards Instead of Invisible Barrier

Recommended Posts

I found a very interesting code that I'd like to share. I converted it to a ROM code to make it easy to apply to your NHL 94 Genesis roms. What this code does is that it adjusts the physical barrier that exists between the puck and the boards all the way around the rink. So if you apply this code, when the puck hits the boards, now it'll actually appear to hit the boards flush instead of bouncing off that invisible barrier. This is particularly noticeable when the puck collides with the side boards, as the puck just didn't come close to actually hitting the yellow line. The collision just wasn't accurate, pucks were bouncing off the edge of that grey shadow of the side board which is several pixels off the yellow line. Now with this code adjustment, pucks will actually hit the side board in line with the artwork and it looks fantastic. I hope you test this so you can experience it for yourself. It may seem like a small detail, but it greatly enhances NHL 94 Genesis visually and it affects gameplay, you'll see.

Without this code, when the puck hit or wrapped around the boards behind each goal. . . well, at the top of the rink, it looked OK but the puck didn't appear to fully collide with the yellow line. And when the puck hit the bottom edge of the rink, it clearly was hitting an invisible barrier well off the board.

But now, with this code, all those invisible barriers are gone and the puck will actually appear to hit the board, which gives the puck more space to travel along the ice before colliding with the barrier. So with this extra space for the puck to travel, you get new angles when you send the puck off the boards. Note that this code doesn't affect the collision of the players with the boards, only the collision between the puck and the boards.

This code essentially allows you to have a bigger rink as far as the puck is concerned. Finding this code has me now looking for a code to adjust the barrier between the players and the boards, which I haven't been able to locate yet. But as it stands, if we were to edit the artwork of the boards to move them back a few pixels, we now have a code that would allow us to adjust the physical barrier of the puck to be inline with that.

To apply this, you need to hex edit a rom at the following offsets :

Change 017012:0005 to 017012:0000

Change 017014:0005 to 017014:0000

The default value of 05 is what causes the puck to bounce off that invisible barrier when it gets close to the boards. Lowering the value to 00, well it gives the puck more space to travel before colliding with the barrier. Please provide your feedback if you test this for yourself.

 

Bonus :

In case you were wondering, you can adjust this code further and increase the barrier of the puck and the boards to go well beyond the artwork of the boards. If you want the puck to travel even farther like into the crowd before hitting the barrier, here's what you do :

Change 017012:0000 to 017012:FFxx

Change 017014:0000 to 017014:FFxx

with xx starting with FF and reducing the value further to allow the puck to travel farther beyond the boards before hitting the barrier.

So like 017012:FFFC and 017014:FFFC allows the puck to travel further before hitting the boards, 017012:FFF8 / 017014:FFF8 allows the puck to travel even further, and by 017012:FFF0 and 017014:FFF0 the puck travels all the way to the feet of the spectators before colliding with the barrier, and the puck is barely still reachable by players. If you go beyond that like into FFEx the puck is hitting the spectators and at that point is too far away for players to retrieve the puck at that point, due to the player / boards barrier.

With normal artwork it's best to just leave the codes at 0000 but the fact that you can adjust it further is very encouraging. In finding this code, it really has me thinking about editing some of the artwork to make the NHL 94 Genesis rink bigger.

  • Like 2

Share this post


Link to post
Share on other sites

That's really cool! I never noticed that.

Just double-checking: the address 017012, that's an offset in hexadecimal, or decimal/base-ten?

Do the player animations have a similar issue? EDIT: oh you mentioned this already :) 

Share this post


Link to post
Share on other sites

This allows the creation of an international-size rink ROM for Olympics ROMs, European leagues..

Share this post


Link to post
Share on other sites
2 minutes ago, smozoma said:

That's really cool! I never noticed that.

Just double-checking: the address 017012, that's an offset in hexadecimal, or decimal/base-ten?

Do the player animations have a similar issue?

Oh yeah, it's awesome. I was thrilled when I found this code, I pretty much just stumbled across it in RAM when searching for other codes, then I found it in the ROM.

The address 017012, that's a hexadecimal offset. It's 017012 and 017014. If you search a rom for "00 05 00 05" in hex (00050005) it's the first result that comes up. Just change those two 05's to 00 and you're good to go, fire up that rom and start lobbing pucks into the boards. It's a huge improvement !

Share this post


Link to post
Share on other sites
2 minutes ago, smozoma said:

This allows the creation of an international-size rink ROM for Olympics ROMs, European leagues..

Exactly ! This is why I am so excited about it because it opens up a lot of possibilities. I mean editing the artwork is one thing but having found the collision barrier in code for the puck is huge. As it stands, we can now move the board artwork several pixels back to make it slightly bigger, and adjust this code, but this code only affects the barrier that the puck meets the boards, not the players. So there still is the barrier of the players and the boards that we need to try to find a code for. If you test this code you'll start to notice how when free skating players can only really touch the boards with the end of their stick, not with their bodies. But this code is a great first step to the creation of an international-size rink, or at least a slightly bigger / wider rink.

  • Thanks 1

Share this post


Link to post
Share on other sites

I'm testing it a bunch trying to find the best value. I am using a horizontal puck I made for NHL 94 Genesis and with the rom I'm liking values of 017012:FFFE and 017014:FFFE. With "FF FE FF FE" the collision looks good especially when the puck hits higher up on the boards and bounces off. On ice level FF FE FF FE cuts into the boards slightly before bouncing off but I like the extra space and the new angles it creates.

So I suggest try 00 00 00 00 and FF FE FF FE and see which one you like best. It depends I think on the shape / size of your puck and the rom you are using which may have different board art placement. I'm having a lot of fun with this !

Share this post


Link to post
Share on other sites

If it helps, I believe the home team centre's X position is stored in FFB14A (2 bytes?). Could maybe put a RAM trace on there and then also do a code trace. Shouldn't be too hard to find the comparison code that prevents the game from increasing the player's X position (when skating to the right)

Y position is  00FFB15E

X speed 00FFB172
Y speed 00FFB174

Share this post


Link to post
Share on other sites
1 hour ago, smozoma said:

If it helps, I believe the home team centre's X position is stored in FFB14A (2 bytes?). Could maybe put a RAM trace on there and then also do a code trace. Shouldn't be too hard to find the comparison code that prevents the game from increasing the player's X position (when skating to the right)

Y position is  00FFB15E

X speed 00FFB172
Y speed 00FFB174

Those are very useful. Thank You. I was trying to find those earlier but was unsuccessful in my code searches. I plugged those into RAM Watch in Gens and moved around the player to see all the values.

Now that I can see the values, it looks like the left most X point is FF80 and the right most X point is 0080.

I had a look in memory editor. I can get the player on the other side of the boards by editing the value of FFB14A, i.e. changing FF80 to FF60. or changing 0080 to 00A0. If I do that, the player warps to the location beyond the boards, but then you try to move him from there and he starts sliding back towards the ice. There may be a value somewhere near there that removes or extends the barrier, so you can freely skate from FF80 to FF60 for example, but that X position code may need to be traced to find that. Generally the methods I use to find codes are by searching.

I attempted to edit those X and Y speed addresses but I haven't been able to edit the player's speed like I was able to move the player with the position codes.

Edited by Brodeur30

Share this post


Link to post
Share on other sites

I wonder if there's a way to prevent the puck from going out of play at all? Just for fun...

  • Like 1

Share this post


Link to post
Share on other sites

Good stuff bud!!

Share this post


Link to post
Share on other sites
On 4/10/2019 at 1:17 PM, Brodeur30 said:

Those are very useful. Thank You. I was trying to find those earlier but was unsuccessful in my code searches. I plugged those into RAM Watch in Gens and moved around the player to see all the values.

Now that I can see the values, it looks like the left most X point is FF80 and the right most X point is 0080.

I had a look in memory editor. I can get the player on the other side of the boards by editing the value of FFB14A, i.e. changing FF80 to FF60. or changing 0080 to 00A0. If I do that, the player warps to the location beyond the boards, but then you try to move him from there and he starts sliding back towards the ice. There may be a value somewhere near there that removes or extends the barrier, so you can freely skate from FF80 to FF60 for example, but that X position code may need to be traced to find that. Generally the methods I use to find codes are by searching.

I attempted to edit those X and Y speed addresses but I haven't been able to edit the player's speed like I was able to move the player with the position codes.

If you have any luck with extending the barriers I volunteer to redo the rink graphics.

Share this post


Link to post
Share on other sites

Adjusting the code seems to affect the collision / barrier between the puck and the goal / net as well as the boards.

At first I changed:

017012:0005 to 017012:0000  AND  017014:0005 to 017014:0000

Then I changed it to 017012:FFFF and 017014:FFFF.

With the values at FFFF it seems to me that the collision with the goal / net is much improved. The goal / net boundaries seem to be affected by each adjustment, with the values at FFFF the goal / back of net barrier seems much more aligned with default goal / net artwork. Like when you go behind the net and shoot the puck into the back of the net, with the value at FFFF it appears to really hit off the actual net instead of an invisible barrier a few pixels before it hits the net. It may slightly even go through the back of the net a pixel or two before bouncing off now, but with FFFF / FFFF it bounces off way closer to the actual net artwork than at the default values of 0005 and 0005 where there was a invisible barrier.

If you test this code and try new values, pay attention to this when the puck or even players collide with the goal / net. It 's like every adjustment of these codes moves the barrier of the goal / net in relation to the artwork. With the values set at FFFF, there seems to more space to move between the back of the goal / net and the boards behind the net, so when skating with your player behind the net, it seems that you can cut the angle better when skating around the back of the net so you don't collide with the goal as much, like you can sort of skate through the back / side of the goal, without bumping off it. And with FFFF I notice sometimes the puck appears to go through the edge of the net sometimes without it being a goal. It's as if the area to score a goal becomes slightly smaller as you decrease the values (from 0005 to 0000, then from 0000 to FFFF). But in doing so it fixes some of the problems that existed before like pucks warping through posts and being counted as goals. Now you sometimes get a warp through a post but unlike before now it won't be a goal, which is an improvement as it'll just skate through.

With the values at 0000 I noticed that the placement of the puck in relation to the goal varied depending on if it was the top goal on the bottom goal. (or whether you looked at a replay with the reverse angle or not) However you don't seem the same disparity with the values at FFFF, with FFFF / FFFF the puck placement is more accurate. Maybe that has to do with the new value being an even or odd number away from the default value of 0005. I would suggest you try 017012:FFFF and 017014:FFFF and observe the puck bouncing off the back of the goal, to see if you notice a difference in the how the puck hits the goal and back of the net.

Share this post


Link to post
Share on other sites
On 4/14/2019 at 11:11 AM, Jkline3 said:

If you have any luck with extending the barriers I volunteer to redo the rink graphics.

We have enough now to extend the board artwork several pixels to match the code being decreased into the FFFx / FFFx range. The only limitation to that is the barrier between the players and the boards limits how far players can reach and retrieve the puck when you increase the puck / board barrier too far. It maxes out at about FFF0 (lower than that players won't be able to retrieve the puck when the puck moves along the boards due to the default player / boards barrier). If you want to make new rink graphics for a slightly larger rink, that should be doable in tile layer pro by finding all the tiles related to the boards and moving the boards "back" a few pixels. The smaller the adjustment to the edge of the boards, the less you will have to worry about adjusting the artwork for the bench / crowd etc. I think you would need to decide on a value in the FFFx / FFFx range, test it in game to see how far the puck goes into the side board artwork, then remember that barrier and go into tile layer pro and move each tile that comprises a piece of the board artwork to match the new puck barrier in code.

But to make a much larger rink we will really need to find a code to extend the players / board barrier so players can skate freely to the extended puck / boards barrier. I have not yet been able to find a code that allows players to skate freely beyond the default location of the boards, I've been having difficulty tracing the player position code to find a code to extend that barrier. That may be the only real limitation to making a much bigger rink, but until a code is found that allows players to stake freely beyond the default boards barrier, I would suggest only testing codes within the FFFx / FFFx range so that players can still retrieve pucks along the adjusted further out boards.

It's important to keep in mind that you only have so many pixels to extend current artwork within a single tile. And you only have so many pixels before the edge of the board reaches the bench / penalty box area. So making a slightly bigger rink to match a slightly increased puck / board barrier I think would be less work than making a much bigger rink where you may have to extend the penalty boxes and benches out too. (and there are animations involved with the bench and skating in and out of the penalty boxes so a much wider rink could be more challenging but still theoretically doable) Until we find a code to extend the players / board barrier though I don't think thee's much use in testing extreme values like those beyond the FFFx / FFFx range, but as of now we can adjust the boards artwork for a slightly bigger rink to match code values of FFFD / FFFD, FFFB / FFFB, FFF9 / FFF9, FFF7 / FFF7, FFF5 / FFF5, FFF3 / FFF3. If you want to take a look at it, I suggest testing these values in-game to see how far the puck goes into the boards. Then you can edit the art to match the new location that the puck meets the boards. It would be a great mod, you'd have to find a rom worthy of the tile layer pro edits if that's how you plan on editing the art.

Share this post


Link to post
Share on other sites

Here's a video showing how the goal / net collision is affected by changing this code. When you increase the puck / boards barrier by "decreasing" this code, it seems to make the goal smaller and the back of the net barrier farther away from the boards. As you can see from these clips, with values set at FFFF / FFFF, with the goal / net artwork still at default you can see in the first example a puck clanging off the post from "inside the goal" and in the other examples you see pucks missing the physical barrier of the goal but going through the edges of the goal / net artwork and not registering a goal.

It turns out that a smaller goal and tighter collision with the back of the net is a lot of fun, and makes scoring goals more satisfying and rewarding. It makes you have to pinpoint your shots or else you will miss scoring a goal, even when there's a wide open net. So it seems that this code not only affects the puck / boards barrier but also the puck / goal / net barrier as setting it to FFFF / FFFF makes the "goal" target area smaller.

https://forum.nhl94.com/uploads/monthly_2019_05/FFFFnetcollision.mp4.82a230672c1f09ec1c2ff9a7dd6b3993.mp4

  • Like 2

Share this post


Link to post
Share on other sites

Not to go on and on about this, but after doing more extensive testing I now have a better idea on how this code works. Testing this code was a little confusing for me and it took a little while to test the limits of it to find out how it works. So for the benefit of anyone testing this code or interested in what all this code does, here's what I learned so far :

The 2-byte value at offset 17012 is your vertical barriers

The 2-byte value at offset 17014 is your horizontal barriers

(the barriers are between the puck and the boards, between the puck and the goal posts, and between the puck and the back of the net)

I've discovered that adjusting the 2-byte value at rom offset 17012 (00xx or FFxx) (the vertical barriers) affects both the barrier of the puck with the side boards and adjusts the location of the side posts of the goal. (anotherwords where the posts are located on the ice, where pucks actually clang off the posts in gameplay independent of the goal / goal-post artwork) If you lower the value of 17012 from the default 0005 to 0001, it will make the side boards wider when pucks hit it but it will also make the side posts of the goal be narrower. (resulting in a smaller goal width)

If you lower 17012 even more to FFFF or FFFD, it makes the side boards even wider, so a bigger ice surface width in relation to the puck but the side posts on the goal become even narrower (so an even smaller goal, a smaller area to score between the two side posts) It seems that if you go lower than FFFD on your vertical barriers you will have to edit the boards artwork and the goal artwork for it to line up. (since the further you decrease this value, the closer and closer the side posts will be to the center of the goal, and the further inward they will be from the side post artwork)

If you increase the value at offset 17012 from the default 0005 to 000D, then the side boards become narrower and the puck will collide "on the ice" about two puck lengths from the yellow line when the puck hits the side boards. At the same time, the goal itself will become much wider and pucks collide with side posts that are well outside the side post artwork. (creating a wider goal and a larger area to score)

So anotherwords you can push the side boards out as far out as you want by lowering 17012 (from 0005 down to 0000, then down to FFFF, then down to FFF0, etc) but it will simultaneously move the location of the two side goal posts further inward making the goal target area smaller. If you lower 17012 beyond like FFFB or something it may become impossible to score goals with the side posts being too close to each other but this needs further testing.

As for your horizontal barriers, adjusting the 2-byte value at rom offset 17014 affects both the barrier of the puck with the boards behind each goal and is the location of the collision of the back net of the goal posts of the goal with the puck. (it may also be the location of the horizontal cross bar) If you lower the value of 17014 from the default 0005 to 0001, this will make the rink deeper behind it goal, the boards behind the goal pushed back (so the puck can travel further behind each goal) and it will also make the location of where pucks hit the back of the goal closer and closer to the goal-line and further and further from the behind-the-goal boards. (get it?)

If you lower this value below FFFF then when you go behind your own goal and take a slap shot it will no longer ricochet off the back of your goal net, instead it'll go right through the back of the goal without hitting it. (and won't trigger an own goal either) FFFF seems to be the lowest value before you lose that back-of-the-net collision so I would stick with FFFF as your horizontal barrier, that's what I'm using now and I think it's an improvement to the default horizontal barriers of 0005. 17014:FFFF makes the behind-the-goal collision tighter, it makes the rink a few pixels deeper behind each goal and it may even affect the position of the horizontal crossbar on the goal. (a win-win, and a huge improvement from default, test it and you'll find out)

If you increase 17014 from the default 0005 to 000D it will make pucks going behind the goal hit an invisible barrier on the ice before it hits the behind-the-goal boards artwork and at the same time will push out the collision of the back of each goal net to be closer to the boards. Anotherwords with 17014:000D you have no room to work the puck behind the goal, whereas with 17014:FFFF you have more room than default and you don't get stuck maneuvering around the back net as much which is a huge improvement. (and pucks still ricochet and bounce off the back of the net)

So for 17014, your horizontal barriers I suggest FFFF. Anything lower than that you will run into problems and anything higher than FFFF (0000, 0001, etc) decreases the depth and space that you have to work behind each goal while staying in line with default board and goal / net artwork.

But for 17012, your vertical barriers, I am still testing values trying to find a sweet spot and to see how wide we can make the rink while still having a functional goal with side posts. Some of the values that produce good collision with default artwork that also give you slightly wider boards with only slightly narrower goal post are : 0001, FFFF, and FFFC. (FFFC has wider side boards and narrower side goal posts compared to 0001, whereas 0001 has wider side boards and narrower side goal posts compared to the default 0005, but you have a little more room to score between the side posts on 0001 than you do with FFFC, get it ?)

So what this code does to the goal dimensions may limit how big we can make the rink while still maintaining a big enough goal, but this needs to be tested further. We are also limited by the player / boards barrier which we don't have a code for yet. However the good news is that right now without making any changes to the art we can use values like [17012:0001, 17014:FFFF] , [17012:FFFF, 17014:FFFF] or [17012:FFFC, 17014:FFFF] and have a slightly wider rink with improved goal / side posts / back of net collision with the puck.

It's a fantastic code here but a confusing one with how it also affects the goal / post / net collision so I had to explain it. Maybe someone with good code tracing skills can see if they can get around some of the limits to making a much bigger rink, but as of now I'm very happy with my smaller goals, better post / net collision with more room to work behind each goal, and with a slightly wider and deeper rink.

I am just thrilled that I found a way to both make the rink slightly wider and improve the goal post collision with just a single 4-byte code which are really two 2-byte codes one for vertical one for horizontal. Honestly pucks warping through goal posts and scoring goals was a big problem I had with NHL 94 on Genesis and this code seems solve that problem by adjusting the goal / net / post barriers as you increase the width of the boards. If you lower offset 17012 your vertical barriers to like FFFD you could edit the goal art at that point to make the side posts a pixel or two narrower but it's still close enough to default artwork. When deciding on a value, it seems to come down to how small of a goal width you can tolerate, how close together you want the side posts to be vs how much wider the rink gets. Oddly enough how the code affects the side goal posts seems to be a limitation to making the rink even wider, but more testing is needed and perhaps through a code trace we can find even more codes that allow us to get around these limits. (I may try hex editing some values near rom offsets 17012 & 17014 and see if I stumble upon any other barrier related codes)

This is a code that truly has improved my NHL 94 Genesis experience, it's amazing how in trying to make the rink bigger I stumbled upon a code that not only did that but also allow us to improve the goal / net / post puck collision issues. If you test out these values I think you'll find that pucks warping through posts and side netting aren't as frustrating when they don't count as goals, because you can always adjust the goal artwork to make the goal smaller, but up until now we had no way to actually adjust the goal dimensions itself independent of the artwork. This is a big breakthrough guys, just in terms of what it does to the goal / post barriers. Finding this code and figuring out how this works is a great motivator for me to continue to chip away at modding NHL 94 on Genesis. I mean with every mod like this that makes the game better and more fun to play it only motivates me more to continue down this road of making improvements to NHL 94 on Genesis.

  • Like 3

Share this post


Link to post
Share on other sites

This has been a fun one... I set the values to 00FF and now there are basically no boards... the downside is that everything is out of play, the camera locks, and the net is now so dang big that the players shoot it over the side boards when you try to shoot on net. Yikes.

  • Haha 1

Share this post


Link to post
Share on other sites
On 5/6/2019 at 7:28 PM, KTup710 said:

This has been a fun one... I set the values to 00FF and now there are basically no boards... the downside is that everything is out of play, the camera locks, and the net is now so dang big that the players shoot it over the side boards when you try to shoot on net. Yikes.

The farther you get away from the default 0005 the more extreme it all gets. You reach a point somewhere between 0005 and 00FF where the boards converge on each other at the center of the rink and thus disappear in relation to the puck, so any time you hit the puck with the values at 00FF it's already beyond the "boards" and treated as out of play.

It's best to keep both codes pretty close to 0005 keeping in mind that every adjustment makes the goals bigger or smaller as well as making the boards wider or narrower. The first code 17012 has much more of an effect on the actual scoring of goals than 17014 does because 17012 adjusts the position of the goal side posts / width of the goal which greatly influences how easy or hard it is to score goals.

But if you lower the 2nd one (17014, the horizontal barrier) too far below 0000 ("lowering" 0000, meaning changing it to FFFF, FFFE, FFFD, etc) you will bit by bit lose back of the net collision, and at some point all the goal dimensions disappear completely, making it impossible to score at all or even hit any part of the goal. So similarly to how the boards disappear and everything becomes out of play by increasing 0005 towards 00FF, when you lower either code from 0005 far enough the goal dimensions will just disappear. (it seems to be at around FFF3 where this occurs) So you have a very small useful window / range of codes to test that move the boards and the goal dimensions pixel by pixel.

I've edited rom artwork to make a smaller goal visually (for both top and bottom goals) to match the new goal "width" dimensions of 017012:0002. It's an amazing mod to combine and match the value of the codes with the goal / post artwork. What this code does is a dream come true for me, not so much for what it does to the boards (since it's limited due to its effect on the dimensions of the goal) but what it does to the goal dimensions, you really need to experience it with adjusted narrower goal post artwork. Playing NHL 94 with smaller goals and more accurate collision, it solves the problem the Genesis version had of sometimes pucks warping through the posts and counting as goals. Lowering 017012 to 0002 also seems to increase the probability of pucks actually hitting the post, which was one of the things that the SNES version had over the Genesis version, more pucks hitting the post right. I've seen a lot more pucks hitting the post on Genesis with these lower values.

I've settled on 017012:0002 & 017014:0000 for a number of reasons. These values do wonders for making one-timers far less automatic. I read a topic a while back where there was a desire to make one-timers less accurate, well making the goal smaller through this code accomplishes this. So just by editing 017012 from the default 0005 to 0002 it inherently makes one-timers less accurate. You will be hitting the post and missing the net completely now on one-timers with 017012 set to 0002 that were goals at 0005. I think 017012:0002 is a good balance of the goal being significantly smaller while not being too small and still big enough for the narrower side posts to fit within the default top goal side post tile.

By this I mean, on the top goal, there's a limit within the default goal artwork tiles to how narrow you can make the side posts. Essentially to make a goal smaller than 017012:0002 and accurate with the goal artwork, I would have to locate the tiles for the area inside the goal of top goal. (the tiles in between the "side post tile") For the top goal, the area inside the goal beyond the limit of the side post tile do not seem to be located near the rest of the goal artwork. Maybe some of the tile layer pro experts who worked on editing the crease know where these mystery tiles are for the area inside the top goal. I may be interested in trying to find these other tiles to make the goal even smaller and make the side posts even narrower than 017012:0002 but for now I'm very happy with 017012:0002 and the new goal artwork I've made based on that, and I don't think it really needs to be any lower than that to experience a major improvement. It's enough of an adjustment without it becoming too difficult to score goals, and without needing to find the additional tiles to make the goal width any smaller visually. At 017012:0002 the puck hits the yellow line of the side boards flush where as 017012:0000/FFFF the puck goes a couple of pixels through the yellow line making the rink that much wider.

This is something that anyone who plays NHL 94 on Genesis deserves to experience, both using these codes and having smaller goal artwork to match it.

Share this post


Link to post
Share on other sites

I made a lot of progress this morning learning how to make the top goal even smaller visually to accommodate a wider range of values, as there is a limit on how small you can make the top goal by editing the goal art tiles. There appears to be no such limit on the bottom goal, but on the top goal, you are (apparently) not able to edit the area inside the top goal to make the goal any smaller than will work with the goal dimensions of 017012:0002. So if you wanted to use 017012:0000, or 017012:FFFF, for example, to make the top goal artwork match these smaller goal dimensions you would need to edit this area inside the top goal for which there was no apparent goal tiles for. I hqe moved my top goal side posts to the edge of the top goal side post tiles in tile layer pro and that matches the goal dimensions at 017012:0002, but you can go no further, that's the smallest you can make the top goal width visually through those tiles.

To make the top goal even smaller, I found the tile that edits the area inside the top goal by using the topic:

I was a little confused at first as to how to actually edit this area. On the grid the area I was trying to edit was in the vicinity of 59DF2 - 59DFC & 59E52 - 59E5C. (though it was really more like 59DF4 - 59DFA & 59E54 - 59E5A since the edges of this in-goal / crease area can be edited by the goal tile artwork) Well when I looked at these offsets in tile layer pro, the entire area I was looking to edit seemed be contained in a single tile. I had no idea how to edit this single tile since the tile looked nothing like the area I was trying to edit. (it just looked like a bunch of random single pixels so I was confused)

I'm guessing this is what wboy meant when he said "NOTE THIS IS STILL NOT EASY!!! Have an open mind.. don't get frustrated... you'll get there... but it will take time. A lot of people give up trying this!"

I still am not sure if there is some way to actually edit these tiles like you edit the other tiles, that I am just not understanding, however in any event I didn't give up and I decided to go into the bin and I started to hex edit some of these offsets to see what happened. Well I edited a bunch of those 00 8F 's at those offsets and when I did this, I observed that the artwork did in fact change in this area in the form of squares like the grid depicts, and I checked the edit to this single tile in tile layer pro, a couple pixels changed in this single tile each time. So I see how this works but I was of course trying to edit it more fully, and that topic seemed to suggest that there's a way to edit this area more fully, though it wasn't clear and I was never able to figure out how to do it. I wanted to edit this area to make new narrower goal posts, so I came up with an idea. I was going to scroll through the pre-determined artwork in these tiles until I found something that resembled side posts. (since it seemed like the only way to accomplish my goal of making the top goal even smaller so I can use a wider range of values and have the goal / posts artwork match up) So I was able to scroll through these hex addresses and tried to find pre-determined artwork in these squares that resembled goal posts, in this area inside the top goal, and beyond the limit of the normal side post tiles, so I could then erase the normal goal posts so I can have an even narrower top goal so I can use lower values of my vertical barrier code. Well after a long process I found some pre-determined artwork that looks like goal posts in this area. Although I can't seem to change the color of these new goal posts, it does accomplish what I set out to do, to get even narrower goal posts in the top goal so I can have a smaller goal so I can make the boards a little bit wider and have even narrower goal dimensions that matchup to the goal / post artwork.

This has been quite an adventure for me but a very satisfying one, and now that I have these narrower top goal posts I can now start the processes of editing my already smaller goals to be even smaller by erasing the normal top goal side post tiles completely and using these new narrower goal posts.

What I want to do now is to show you guys some screenshots of my smaller goal artwork so you can get a sense of what I'm talking about and how this relates to the codes in this topic.

The first 2 screenshots are the goal that I have been using for the last week or two. It's the smallest you can make the top goal without resorting to this other "rink layout" tile. This goal artwork lines up wonderfully with the codes 17012:0002 & 17014:0000.

Pucks hit off these narrower posts right at this location of this artwork and it's absolutely phenomenal to experience it in a match.

topgoal0200,0000.jpegbottomgoal0200,0000.jpeg

So that's my goal artwork for 17012:0002 & 17014:0000.

 

Now these 3 screenshots below are a result of what I did today, by editing the other rink layout tile, so I can have even smaller goals.

This is the predetermined artwork I found that resembled goal posts, so I can get around the limit of the top goal, so I can lower 17012 below 0002 and try to match it up. Note that there is a bit of a bug in instant replay when you reverse angle with this method that I am looking into. (these new narrower posts disappear when you reverse angle, but still it's pretty cool nonetheless)

topgoal_evensmaller1.jpegtopgoal_evensmaller2.jpeg

This is another piece of predetermined artwork that I found that sort of looks like I can merge with the back of the net artwork to make a smaller goal that's a little curved.

topgoal_evensmaller3.jpeg

Anyway I thought you guys would find this really cool ! Now I just gotta edit the rest of the goal (and the bottom goal) so I can test lower values !

 

  • Like 2

Share this post


Link to post
Share on other sites

Very cool.

In theory, would it be possible to shrink-the-rink  and adjust the play-field? I'm talking about removing the neutral zone, basically.

Share this post


Link to post
Share on other sites
On 5/19/2019 at 11:53 AM, clockwise said:

Very cool.

In theory, would it be possible to shrink-the-rink  and adjust the play-field? I'm talking about removing the neutral zone, basically.

You can adjust the barrier between the puck and the boards by using these 2-byte codes at bin hex offsets 017012 & 017014. 017012 makes the rink wider / narrower (side boards) and 017014 affects how deep the rink is behind each goal. The caveat is it only affects the play-field as it relates to the puck (not to the players). So the players barrier with the boards doesn't change. The other caveat is that these two codes also affect the goal dimensions. (i.e. how narrow / wide the side posts are, where they are physically located regardless of the goal artwork, & how deep into the goal pucks hit the back of the net)

So these codes certainly affect the play-field only what they do to the goal dimensions limit the extent that you can make the rink bigger of smaller. For example if you increase these codes pucks will hit the boards before pucks reach the board artwork, however at the same time it will make the goal bigger / wider. Anotherwords you'll be scoring goals even if you shoot wide of the goal post art.

On the contrary if you lower these codes enough, pucks will go right through the boards artwork and will only hit the "boards" when it reaches the deep into the crowd. So in that sense these codes definitely make the play-field bigger or smaller as it relates to the puck, only it also affects how big the goal is.

To address you question, after doing some testing these codes don't appear to have any affect on where the blue line is. Even at extreme values of 017014, the blue lines location doesn't appear to change at all.

What I'm hopeful of is finding more codes in the bin or in RAM that can make additional adjustments to the play-field, maybe there's a code somewhere nearby these codes in the bin that adjust where the blue line. And like we were discussing maybe there's a way to adjust the players barrier with the boards as well.

I am very happy with the code though, given that it allows you to control the dimensions of the goal, something that I didn't realize initially. So I've been working on making the goal artwork smaller since when you increase the rink size by a few pixels with by lowering the value of these codes it makes the goal physically smaller, which is fantastic, but at the same time limiting to how big or small you can make the rink while maintaining normal gameplay.

I would encourage anybody to see if you can find other codes by tracing these codes or trying to find a code that adjust the player / boards barrier, maybe we can find more codes that control other aspects of the play-field, like maybe there's a code that controls goal dimensions independent of 017012 / 017014.

I am motivated to try searching for other codes that control more aspects of the size of the play-field. I may need some help but my goal is to create a bigger play-field while maintaining reasonable goal dimensions. So this is definitely a work in progress but just the ability to make the play-field a couple of pixels wider and making the goal slightly smaller is a very useful enhancement to NHL 94 Genesis ! When I shared this code I had no idea it made the goal smaller and only discovered that after some testing, and now I'm enjoying the game so much more with smaller goals. (it makes one timers less accurate so to speak, and just makes scoring goals harder in general, but at the same time it's more fun and goals are more satisfying since goals actually hit the posts and don't warp through posts resulting in cheap goals anymore, and smaller goals are also another reason to keep goalie speed at 0 since with smaller goal dimensions goalies have less area to cover) Once I am finished with this new goal artwork I will be happy to share my smaller goal artwork so you can experience this fully. But there's got to be more codes that will allow us to adjust the play-field to a greater extent while keeping goal dimensions reasonable.

Share this post


Link to post
Share on other sites
On 5/18/2019 at 8:14 AM, Brodeur30 said:

The farther you get away from the default 0005 the more extreme it all gets. You reach a point somewhere between 0005 and 00FF where the boards converge on each other at the center of the rink and thus disappear in relation to the puck, so any time you hit the puck with the values at 00FF it's already beyond the "boards" and treated as out of play.

It's best to keep both codes pretty close to 0005 keeping in mind that every adjustment makes the goals bigger or smaller as well as making the boards wider or narrower. The first code 17012 has much more of an effect on the actual scoring of goals than 17014 does because 17012 adjusts the position of the goal side posts / width of the goal which greatly influences how easy or hard it is to score goals.

But if you lower the 2nd one (17014, the horizontal barrier) too far below 0000 ("lowering" 0000, meaning changing it to FFFF, FFFE, FFFD, etc) you will bit by bit lose back of the net collision, and at some point all the goal dimensions disappear completely, making it impossible to score at all or even hit any part of the goal. So similarly to how the boards disappear and everything becomes out of play by increasing 0005 towards 00FF, when you lower either code from 0005 far enough the goal dimensions will just disappear. (it seems to be at around FFF3 where this occurs) So you have a very small useful window / range of codes to test that move the boards and the goal dimensions pixel by pixel.

I've edited rom artwork to make a smaller goal visually (for both top and bottom goals) to match the new goal "width" dimensions of 017012:0002. It's an amazing mod to combine and match the value of the codes with the goal / post artwork. What this code does is a dream come true for me, not so much for what it does to the boards (since it's limited due to its effect on the dimensions of the goal) but what it does to the goal dimensions, you really need to experience it with adjusted narrower goal post artwork. Playing NHL 94 with smaller goals and more accurate collision, it solves the problem the Genesis version had of sometimes pucks warping through the posts and counting as goals. Lowering 017012 to 0002 also seems to increase the probability of pucks actually hitting the post, which was one of the things that the SNES version had over the Genesis version, more pucks hitting the post right. I've seen a lot more pucks hitting the post on Genesis with these lower values.

I've settled on 017012:0002 & 017014:0000 for a number of reasons. These values do wonders for making one-timers far less automatic. I read a topic a while back where there was a desire to make one-timers less accurate, well making the goal smaller through this code accomplishes this. So just by editing 017012 from the default 0005 to 0002 it inherently makes one-timers less accurate. You will be hitting the post and missing the net completely now on one-timers with 017012 set to 0002 that were goals at 0005. I think 017012:0002 is a good balance of the goal being significantly smaller while not being too small and still big enough for the narrower side posts to fit within the default top goal side post tile.

By this I mean, on the top goal, there's a limit within the default goal artwork tiles to how narrow you can make the side posts. Essentially to make a goal smaller than 017012:0002 and accurate with the goal artwork, I would have to locate the tiles for the area inside the goal of top goal. (the tiles in between the "side post tile") For the top goal, the area inside the goal beyond the limit of the side post tile do not seem to be located near the rest of the goal artwork. Maybe some of the tile layer pro experts who worked on editing the crease know where these mystery tiles are for the area inside the top goal. I may be interested in trying to find these other tiles to make the goal even smaller and make the side posts even narrower than 017012:0002 but for now I'm very happy with 017012:0002 and the new goal artwork I've made based on that, and I don't think it really needs to be any lower than that to experience a major improvement. It's enough of an adjustment without it becoming too difficult to score goals, and without needing to find the additional tiles to make the goal width any smaller visually. At 017012:0002 the puck hits the yellow line of the side boards flush where as 017012:0000/FFFF the puck goes a couple of pixels through the yellow line making the rink that much wider.

This is something that anyone who plays NHL 94 on Genesis deserves to experience, both using these codes and having smaller goal artwork to match it.

Wow... incredible work, I'll have to experiment with it. Seems like you put a lot of effort into this. Well done!

  • Thanks 1

Share this post


Link to post
Share on other sites
5 hours ago, KTup710 said:

Wow... incredible work, I'll have to experiment with it. Seems like you put a lot of effort into this. Well done!

Thank you! Ever since I discovered what this code does to the goal dimensions, I've been editing the goal art in tile layer pro for use with lower values, with it making the goal smaller. Playing on smaller goals in NHL 94 is simply spectacular, only with these smaller goals am I able to play with one-timers on again. With bigger goals, one-timers were just too easy to score goals. But with smaller goals one-timers are no longer as effective and I'm having an absolute blast. But it wasn't until I completed the artwork modifications to the goals to really experience the full greatness of this code and how it improves your NHL 94 Genesis experience. Another benefit of editing the artwork for smaller goals is that goals look better. Not only do pucks hit off the post more accurately, but the warping effect on the puck that occurs when a goal is scored is much less pronounced. With the super small goals that I have been working on, it has eliminated much of that puck warping to the center of the goal problem. It all just looks and feels better. I encourage you to test lower values, but to get the full experience you need the smaller goal artwork, which I am happy to provide you with.

I have new goal artwork for the smaller goals of 017012:0002 / 017014:0000 and after figuring out how to make the top goal even smaller I now also have accurate goal artwork for 017012:FFFD / 017014:0000 as well ! This second step was huge for me because I want to make the rink as big as possible and 017012:FFFD is pushing the limit on the default boards artwork. But if you play on these settings without adjusting other areas of gameplay expect to get a lot of low scoring matches. But rest assured that there are ways to adjust the game to make it possible to score on smaller goals. This is where the real-time clock mod (and real-time power play clock mod) is so beneficial. With smaller goals it takes more time to score and I am finding ways to implement slower build-up. Step by step I am making NHL 94 on Genesis more realistic and more fun.

I mean I'm still finding ways to score goals with 017012:FFFD but it's much harder and I've lowered several goalie attributes across the board in NOSE to make goalies more beatable, since they have a much smaller area to defend now. I may be able to make even smaller goals, although with the predetermined art I'm using for the top goal you can't exactly freely fine-tune where the posts are. This has been a true adventure but it's breathed new life into NHL 94 on Genesis. It was a lot of work to fine tune the goal to make the goals smaller for use with this code, but it's been well worth it. Now I'm experiencing NHL 94 at an extremely high level and it is so satisfying. The coolness factor of playing NHL 94 with functional smaller goals and a wider rink is just off the charts.

With these lower values, the extra width and depth on pucks hitting the boards is a satisfying improvement to your NHL 94 experience. When testing these lower values, look closely when pucks hit the boards and especially when the puck hits off the glass. Slo-mo it in replay and you'll notice it improves the accuracy a lot. (though it's exact location may vary on the reverse angle) I've learned to study the 16-bit graphics on a pixel by pixel level which you have to do if you're working tile layer pro, but even when playing the game and fine turning replays to check the effect of editing values of this code. You'll notice that the default values were actually a couple of pixels off when pucks collided with anything, including the back of the net. 017014:0000 it's just about perfect if you ask me as it relates to pucks hitting off the back of the net. Pucks on the ice appear may through the back of the net by a few pixels but I don't mind that, and pucks hitting the back of the net higher up seem to hit right off the actual net which is cool to see. (like if you go behind your own goal and do an A button or C button shot into the back of the net, slo-mo that in replay too) I think I'll be sticking with that setting. The developers way back in the early 90s may have adjusted these barriers at the last minute to allow you to see the puck when it slides around the boards behind the bottom goal. When you use these lower values you will no longer be able to see the puck when it's sliding around the boards behind the bottom goal due to the added width, but the camera follows the puck so it's not really a problem finding the puck when it's there even though you can't see it. But what it does to the rest of the barriers visually is a huge improvement to most of the default graphics. Like I said 017012:FFFD is pushing the limits of the default artwork of the boards, because the barrier was so off to begin with at the default 017012:0005, but I will need to test even lower values to see when it becomes impossible to score due to how much smaller the goal gets. But there's a lot of fun to be had here when consider what you can do in tile layer pro.

Share this post


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.


  • Who's Online   0 Members, 0 Anonymous, 12 Guests (See full list)

    There are no registered users currently online