Stadium Conversions/Edits for NCAA 06 PS2

Harry97
All-Pro
Posts: 415
Joined: Tue Oct 09, 2012 3:24 am

Re: Stadium Conversions/Edits for NCAA 06 PS2

Postby Harry97 » Sun Apr 06, 2025 5:56 am

JDHalfrack wrote:The offset that contains the coordinates for the team entrances are located at 0x40 in header:

53 4D 46 00 04 06 00 08 53 45 41 66 2E 73 6D 66
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 68 00 00 00 D0 C9 03 00 B0 12 04 00
10 46 0D 00 AC D0 03 00 00 00 00 00 60 ED 03 00
38 04 04 00 AC 04 04 00 00 00 00 00 00 00 00 00
57 80 82 3B C8 62 E0 3B 5A 21 2B 3B 00 00 00 00
5C FD 03 00

At that offset, you'll find 4 sets of "locations". The first two are for the home entrance and away entrance respectively. They are a little wonky to get a hang of. There's an (x,y) component for sure, and also an angle. There's a 3rd coordinate that doesn't seem to change anything. You best bet is to experiment in memory, and then transfer over to the file. Here's the updated Seattle stadium with better entrance coordinates if you want to test it.

Your file definitely fixed the problem for the Seahawks stadium and the team entrances now look great. However what you did there doesn't seem to correspond with your offset above. The area after 0x40 in both your file and the file previously are identical to what you posted above.

So now I'm just trying to find where in the file I can adjust the entrances. Yes my plan was to take into memory and adjust.

Re: Stadium Conversions/Edits for NCAA 06 PS2

Sponsor

Sponsor
 

JDHalfrack
All-Pro
Posts: 172
Joined: Mon Jul 25, 2011 7:16 am

Re: Stadium Conversions/Edits for NCAA 06 PS2

Postby JDHalfrack » Sun Apr 06, 2025 12:07 pm

Harry97 wrote:
JDHalfrack wrote:The offset that contains the coordinates for the team entrances are located at 0x40 in header:

53 4D 46 00 04 06 00 08 53 45 41 66 2E 73 6D 66
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 68 00 00 00 D0 C9 03 00 B0 12 04 00
10 46 0D 00 AC D0 03 00 00 00 00 00 60 ED 03 00
38 04 04 00 AC 04 04 00 00 00 00 00 00 00 00 00
57 80 82 3B C8 62 E0 3B 5A 21 2B 3B 00 00 00 00
5C FD 03 00

At that offset, you'll find 4 sets of "locations". The first two are for the home entrance and away entrance respectively. They are a little wonky to get a hang of. There's an (x,y) component for sure, and also an angle. There's a 3rd coordinate that doesn't seem to change anything. You best bet is to experiment in memory, and then transfer over to the file. Here's the updated Seattle stadium with better entrance coordinates if you want to test it.

Your file definitely fixed the problem for the Seahawks stadium and the team entrances now look great. However what you did there doesn't seem to correspond with your offset above. The area after 0x40 in both your file and the file previously are identical to what you posted above.

So now I'm just trying to find where in the file I can adjust the entrances. Yes my plan was to take into memory and adjust.


No, you dork... :lol: That is the offset within the file! So, what I posted there is just the header. that part of the header (and position 0x40) is the offset where the entrance locations are found. so, you need to go to 0x040438 in the file (remember, it's all stored as little endian). If you go to 0x040438, you get this section of data:

04 00 00 00 18 21 19 42 3F EC 92 40 5D AA 58 42 00 00 00 00 15 00 B4 C2 00 00 00 00 00 00 00 00 69 CC 91 41 3F EC 92 40 A0 20 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 01 00 00 00 1D 6C 8F C1 3F EC 92 40 6A 02 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 02 00 00 00 83 5B 1E C2 3F EC 92 40 4E 28 4F 42 00 00 00 00 15 00 B4 42 00 00 00 00 03 00 00 00.

The first 4 bytes are a counter. There are 4 coordinate locations stored here. Each section is 24 bytes long corresponding to a different "part" of the coordinates, and the last 4 bytes just a counter.

18 21 19 42 3F EC 92 40 5D AA 58 42 00 00 00 00 15 00 B4 C2 00 00 00 00 00 00 00 00
69 CC 91 41 3F EC 92 40 A0 20 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 01 00 00 00
1D 6C 8F C1 3F EC 92 40 6A 02 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 02 00 00 00
83 5B 1E C2 3F EC 92 40 4E 28 4F 42 00 00 00 00 15 00 B4 42 00 00 00 00 03 00 00 00

I haven't figured out what all of them mean (if anything), but each 4-byte section is stored as float values. They are at least related to the following: x-position, y-position, angle of running in, and a couple others that don't seem to make any lick of difference when I change them.

Also, I have no idea what the sets of coordinates for entry 02 and 03 correlate to. Entry 00 is the home team entrance, and entry 01 is the away team entrance.

Hope this helps clear up some confusion!

Harry97
All-Pro
Posts: 415
Joined: Tue Oct 09, 2012 3:24 am

Re: Stadium Conversions/Edits for NCAA 06 PS2

Postby Harry97 » Sun Apr 06, 2025 8:45 pm

JDHalfrack wrote:No, you dork... :lol: That is the offset within the file! So, what I posted there is just the header. that part of the header (and position 0x40) is the offset where the entrance locations are found. so, you need to go to 0x040438 in the file (remember, it's all stored as little endian). If you go to 0x040438, you get this section of data:

04 00 00 00 18 21 19 42 3F EC 92 40 5D AA 58 42 00 00 00 00 15 00 B4 C2 00 00 00 00 00 00 00 00 69 CC 91 41 3F EC 92 40 A0 20 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 01 00 00 00 1D 6C 8F C1 3F EC 92 40 6A 02 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 02 00 00 00 83 5B 1E C2 3F EC 92 40 4E 28 4F 42 00 00 00 00 15 00 B4 42 00 00 00 00 03 00 00 00.

The first 4 bytes are a counter. There are 4 coordinate locations stored here. Each section is 24 bytes long corresponding to a different "part" of the coordinates, and the last 4 bytes just a counter.

18 21 19 42 3F EC 92 40 5D AA 58 42 00 00 00 00 15 00 B4 C2 00 00 00 00 00 00 00 00
69 CC 91 41 3F EC 92 40 A0 20 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 01 00 00 00
1D 6C 8F C1 3F EC 92 40 6A 02 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 02 00 00 00
83 5B 1E C2 3F EC 92 40 4E 28 4F 42 00 00 00 00 15 00 B4 42 00 00 00 00 03 00 00 00

I haven't figured out what all of them mean (if anything), but each 4-byte section is stored as float values. They are at least related to the following: x-position, y-position, angle of running in, and a couple others that don't seem to make any lick of difference when I change them.

Also, I have no idea what the sets of coordinates for entry 02 and 03 correlate to. Entry 00 is the home team entrance, and entry 01 is the away team entrance.

Hope this helps clear up some confusion!

:D Yes that does clear up some confusion. Following the offset from the header is not something I often do, so while this may seem obvious to you, it's important to provide all the steps to get to the addresses that actually make the change. And yes I see that it's little endian, as in we have to reverse the order per byte to get the offset address.

It always makes sense after something is explained thoroughly, or after something is revealed. To give only the header wasn't so clear.

And yes I now see the area that is changed between the previous file and your new file. So what I'll do now is search those changed values in memory, perhaps I'll use and rename some save states on two separate builds, saved from the intro scene before they run out on to the field, one with your new file and one with the old and adjust values in that area of memory (0x040438) in real-time to see how it changes when adjustments are made. It's interesting because in the past I've found the stadium file in memory and made changes to the stadium file in memory, which is how I applied color codes to the crowd directly through the file.

However I did note that only *some* of the stadium file when accessed in memory is identical to the stadium file as it exists in file form. There are parts of the stadium file when accessed in memory that do not match the stadium file itself, while other parts (like the "per row" of crowd data) does match. If I'm not mistaken, the section after the header and before the crowd per row data starts is different, and areas after the end of the crowd per row data. It was confusing at first when I discovered this when making changes to the crowd colors through the stadium file, through memory changes to get the colors right then updating those *parts* by copy and pasting those changes from memory into the stadium file itself. Which was only possible through being on a PC and using cheat engine, as the PCSX2 debugger is really only useful for making individual code changes one code at a time.

In file comparing between your new file and the old one, I see that there's also a ton of other changes in that stadium file. What else did you adjust? And more importantly, can you explain how you got the crowds to show up in NCAA 06 for that Madden PS2 stadium? What specific addresses did you need to change to get them to show up? Was it a specific series of changes for each "row" section of crowd or was it somewhere else outside of the specific to each row of crowd data? Anotherwords, was it a single overarching code (value change) that got the crowds to show up or did you have to make the same value adjustments over and over again in each set of crowd per row data?

It was taken from Madden 08 PS2 right, the unedited M08 PS2 minor files for the Seahawks stadium and your edited major file? FYI you *may* have unknowingly used a NCAA 04-06 (Madden 04-06) crowd template to that stadium rather than the "much better" NCAA 07-11 (Madden PS2 07-12) crowd template which is why the crowd models look so big in this stadium. That's what appears to be going on but there's many changes in your file making it difficult to narrow down or understand what values caused the crowds to show up. If you compared (and used) codes (values) from an NCAA 06 stadium to get the crowd to show up in your Madden stadium, I would encourage you to use codes (the values) from a NCAA 07-11 converted stadium instead so you can improve the look of the crowd!

JDHalfrack
All-Pro
Posts: 172
Joined: Mon Jul 25, 2011 7:16 am

Re: Stadium Conversions/Edits for NCAA 06 PS2

Postby JDHalfrack » Sun Apr 06, 2025 9:41 pm

Harry97 wrote:
JDHalfrack wrote:No, you dork... :lol: That is the offset within the file! So, what I posted there is just the header. that part of the header (and position 0x40) is the offset where the entrance locations are found. so, you need to go to 0x040438 in the file (remember, it's all stored as little endian). If you go to 0x040438, you get this section of data:

04 00 00 00 18 21 19 42 3F EC 92 40 5D AA 58 42 00 00 00 00 15 00 B4 C2 00 00 00 00 00 00 00 00 69 CC 91 41 3F EC 92 40 A0 20 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 01 00 00 00 1D 6C 8F C1 3F EC 92 40 6A 02 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 02 00 00 00 83 5B 1E C2 3F EC 92 40 4E 28 4F 42 00 00 00 00 15 00 B4 42 00 00 00 00 03 00 00 00.

The first 4 bytes are a counter. There are 4 coordinate locations stored here. Each section is 24 bytes long corresponding to a different "part" of the coordinates, and the last 4 bytes just a counter.

18 21 19 42 3F EC 92 40 5D AA 58 42 00 00 00 00 15 00 B4 C2 00 00 00 00 00 00 00 00
69 CC 91 41 3F EC 92 40 A0 20 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 01 00 00 00
1D 6C 8F C1 3F EC 92 40 6A 02 8C 42 59 E8 FC 27 15 00 34 43 00 00 00 00 02 00 00 00
83 5B 1E C2 3F EC 92 40 4E 28 4F 42 00 00 00 00 15 00 B4 42 00 00 00 00 03 00 00 00

I haven't figured out what all of them mean (if anything), but each 4-byte section is stored as float values. They are at least related to the following: x-position, y-position, angle of running in, and a couple others that don't seem to make any lick of difference when I change them.

Also, I have no idea what the sets of coordinates for entry 02 and 03 correlate to. Entry 00 is the home team entrance, and entry 01 is the away team entrance.

Hope this helps clear up some confusion!

:D Yes that does clear up some confusion. Following the offset from the header is not something I often do, so while this may seem obvious to you, it's important to provide all the steps to get to the addresses that actually make the change. And yes I see that it's little endian, as in we have to reverse the order per byte to get the offset address.

It always makes sense after something is explained thoroughly, or after something is revealed. To give only the header wasn't so clear.

And yes I now see the area that is changed between the previous file and your new file. So what I'll do now is search those changed values in memory, perhaps I'll use and rename some save states on two separate builds, saved from the intro scene before they run out on to the field, one with your new file and one with the old and adjust values in that area of memory (0x040438) in real-time to see how it changes when adjustments are made. It's interesting because in the past I've found the stadium file in memory and made changes to the stadium file in memory, which is how I applied color codes to the crowd directly through the file.

However I did note that only *some* of the stadium file when accessed in memory is identical to the stadium file as it exists in file form. There are parts of the stadium file when accessed in memory that do not match the stadium file itself, while other parts (like the "per row" of crowd data) does match. If I'm not mistaken, the section after the header and before the crowd per row data starts is different, and areas after the end of the crowd per row data. It was confusing at first when I discovered this when making changes to the crowd colors through the stadium file, through memory changes to get the colors right then updating those *parts* by copy and pasting those changes from memory into the stadium file itself. Which was only possible through being on a PC and using cheat engine, as the PCSX2 debugger is really only useful for making individual code changes one code at a time.

In file comparing between your new file and the old one, I see that there's also a ton of other changes in that stadium file. What else did you adjust? And more importantly, can you explain how you got the crowds to show up in NCAA 06 for that Madden PS2 stadium? What specific addresses did you need to change to get them to show up? Was it a specific series of changes for each "row" section of crowd or was it somewhere else outside of the specific to each row of crowd data? Anotherwords, was it a single overarching code (value change) that got the crowds to show up or did you have to make the same value adjustments over and over again in each set of crowd per row data?

It was taken from Madden 08 PS2 right, the unedited M08 PS2 minor files for the Seahawks stadium and your edited major file? FYI you *may* have unknowingly used a NCAA 04-06 (Madden 04-06) crowd template to that stadium rather than the "much better" NCAA 07-11 (Madden PS2 07-12) crowd template which is why the crowd models look so big in this stadium. That's what appears to be going on but there's many changes in your file making it difficult to narrow down or understand what values caused the crowds to show up. If you compared (and used) codes (values) from an NCAA 06 stadium to get the crowd to show up in your Madden stadium, I would encourage you to use codes (the values) from a NCAA 07-11 converted stadium instead so you can improve the look of the crowd!


So, what happens when the stadium file loads into memory is that it loads exactly how it looks in the DAT file, byte-for-byte. But, almost immediately, it undergoes it's conversion process where the offsets in the memory get adjusted to the offsets in memory. so something like 10 05 00 00 gets changed to 4E 50 85 01 (or something like that). Then, immediately after that, all the data in the stadium file gets actually converted into the file formats the game "reads". So, the header and much of the first grouping of offset data remains the same as the actual file. However, all the images within the stadium file actually get compiled into their image format. This is what most of the changed data is. Not quite all of it.

Also, as far as the entrance coordinates go, you need to make sure they are edited in memory almost immediately after the stadium loads. As soon as the stadium loads, the coordinates are actually pulled from the file and stored in a separate section of memory (before the pregame intro even starts). It's this new section in memory where the game actually reads from.

The stadium I used for Seattle's stadium came from one of the PS2 Maddens (I don't recall which one). Both the major and all the minor parts. I made no changes to the minor parts (I think). The key to getting the crowds to show up was editing one of the float values. I used the logic you explained to me in one of your other posts here. Unfortunately, I don't recall which post, or what I needed to do! But, as an example, if you go to offset 0x1CE0, you see one of the fan sections. It starts like this:
07 00 00 00 28 00 00 00 3F 00 00 00 00 00 00 00
01 01 00 01 08 80 01 6C 30 80 00 00 00 40 02 30
12 04 00 00 00 00 00 00 03 01 00 01 09 80 30 64
27 31 20 40 6F 12 83 3A 37 89 A9 3E 6F 12 83 3A
27 31 20 40 23 DB 79 3D 37 89 A9 3E 23 DB 79 3D
.... so on and so forth ...

So, each section of the stadium starts with 48 bytes. I don't know what all of them mean (ChatGPT and I are working on deciphering all of it), but after those 48 bytes, for the fan sections, each group of 32 bytes following that deals with size and scaling of a row of fans (all little endian float values). So, in this example, this section of bytes is one row of fans:
27 31 20 40 6F 12 83 3A 37 89 A9 3E 6F 12 83 3A
27 31 20 40 23 DB 79 3D 37 89 A9 3E 23 DB 79 3D

One of those groupings of four (one of the float values), had to be adjusted across the board for all the fan sections in the stadium. Clearly the Madden version has a different way of interpreting those float values compared to the NCAA '06 version. Unfortunately, I'm just not sure I remember which float value... It's been a long time!

Again, hopefully all this is helpful for you and you continue having fun editing!

Harry97
All-Pro
Posts: 415
Joined: Tue Oct 09, 2012 3:24 am

Re: Stadium Conversions/Edits for NCAA 06 PS2

Postby Harry97 » Sun Apr 06, 2025 10:01 pm

JDHalfrack wrote:So, what happens when the stadium file loads into memory is that it loads exactly how it looks in the DAT file, byte-for-byte. But, almost immediately, it undergoes it's conversion process where the offsets in the memory get adjusted to the offsets in memory. so something like 10 05 00 00 gets changed to 4E 50 85 01 (or something like that). Then, immediately after that, all the data in the stadium file gets actually converted into the file formats the game "reads". So, the header and much of the first grouping of offset data remains the same as the actual file. However, all the images within the stadium file actually get compiled into their image format. This is what most of the changed data is. Not quite all of it.

Also, as far as the entrance coordinates go, you need to make sure they are edited in memory almost immediately after the stadium loads. As soon as the stadium loads, the coordinates are actually pulled from the file and stored in a separate section of memory (before the pregame intro even starts). It's this new section in memory where the game actually reads from.

The stadium I used for Seattle's stadium came from one of the PS2 Maddens (I don't recall which one). Both the major and all the minor parts. I made no changes to the minor parts (I think). The key to getting the crowds to show up was editing one of the float values. I used the logic you explained to me in one of your other posts here. Unfortunately, I don't recall which post, or what I needed to do! But, as an example, if you go to offset 0x1CE0, you see one of the fan sections. It starts like this:
07 00 00 00 28 00 00 00 3F 00 00 00 00 00 00 00
01 01 00 01 08 80 01 6C 30 80 00 00 00 40 02 30
12 04 00 00 00 00 00 00 03 01 00 01 09 80 30 64
27 31 20 40 6F 12 83 3A 37 89 A9 3E 6F 12 83 3A
27 31 20 40 23 DB 79 3D 37 89 A9 3E 23 DB 79 3D
.... so on and so forth ...

So, each section of the stadium starts with 48 bytes. I don't know what all of them mean (ChatGPT and I are working on deciphering all of it), but after those 48 bytes, for the fan sections, each group of 32 bytes following that deals with size and scaling of a row of fans (all little endian float values). So, in this example, this section of bytes is one row of fans:
27 31 20 40 6F 12 83 3A 37 89 A9 3E 6F 12 83 3A
27 31 20 40 23 DB 79 3D 37 89 A9 3E 23 DB 79 3D

One of those groupings of four (one of the float values), had to be adjusted across the board for all the fan sections in the stadium. Clearly the Madden version has a different way of interpreting those float values compared to the NCAA '06 version. Unfortunately, I'm just not sure I remember which float value... It's been a long time!

Again, hopefully all this is helpful for you and you continue having fun editing!

OK that makes sense, and I'm glad my logic in the past was useful to you in your journey. You said "The key to getting the crowds to show up was editing one of the float values." If you can pinpoint what specific float values that was, as in the address (or the addresses) in the stadium file that would be useful. Then I can try to convert some Madden stadiums myself to see if I can get the better crowds to show up if that part is confusing or not important to you.

If I am unable to do it myself, if you don't provide the specific changes to get Madden crowds to show up, well then I'll leave it up to you for the Madden stadium conversions, and then I would encourage you to use the same process you already used to get your Seahawks crowd to show up in NCAA 06, as surely you intend to convert (or have already) other Madden PS2 stadiums to NCAA 06, and I would like to help you streamline this process to get the best crowds possible. But instead of using an original NCAA 06 stadium for your comparison file to get the correct codes into your Madden stadium file to get the crowds to show up, to use the values from a NCAA 07-11 converted (to NCAA 06) stadium so that you won't be overwriting the narrower / more densely packed codes from a Madden 07-12 PS2 stadium with the wider and less densely packed crowd models of a NCAA 04-06 (or Madden 04-06) stadium.

All I'm trying to do here JD is to help you make the crowds look better in your Seahawks stadium, to make the crowds as they look in all the screenshots I have provided in this topic of my NCAA 07-11 converted stadiums. ;)

This may not seem too important to you, but trust me this is huge for anyone who cares about the aesthetics of stadiums and crowds. As you may know, the crowds got a huge quality upgrade after NCAA 06. Both in terms of the crowd models themselves as they exist in STADATA.DAT, which are damn near impossible to edit, and in terms of the codes contained with a stadium file that determine how narrow or thick each crowd member is and in turn how many crowd members show up in each row.

The beauty of running NCAA 07-11 PS2 stadiums (or converted Madden 07-12 PS2 stadiums for that matter) is that when in NCAA 06 you get the size and structure of the crowds as they are in the later NCAA (or Madden) PS2 games but with the crowd animations (standing up and cheering) that is present in NCAA 06 (and Madden 06 IIRC) but not in any Madden or NCAA game since. So the idea is getting the best of both worlds as it pertains to the stadium crowds through getting the updated crowd values into the stadium file without having to worry about editing the crowd models themself in STADATA.DAT. Doing all the work through the stadium file itself should be all we need to concern ourselves with which is the point I stressed in the original post of this topic.

This pertains to your Seahawks conversion because unlike my/our NCAA 07-11 PS2 stadium conversions, in your Madden stadium conversion of the Seahawks stadium the crowds are as if they were taken from a Madden 04-06 stadium but it seems you took it from a Madden 08 PS2 stadium file, which would suggest that you *perhaps* took some crowd codes from a NCAA 04-06 file which reverted the crowd structure to that of NCAA 04-06 rather than 07-11. That's what I'm trying to pinpoint in your stadium file. Both the codes that got the crowds to show up and if those codes (or other codes) affected the size of the crowd members. I know this is a little confusing, but it's important.

Harry97
All-Pro
Posts: 415
Joined: Tue Oct 09, 2012 3:24 am

Re: Stadium Conversions/Edits for NCAA 06 PS2

Postby Harry97 » Sun Apr 06, 2025 10:47 pm

JDHalfrack wrote:So, what happens when the stadium file loads into memory is that it loads exactly how it looks in the DAT file, byte-for-byte. But, almost immediately, it undergoes it's conversion process where the offsets in the memory get adjusted to the offsets in memory. so something like 10 05 00 00 gets changed to 4E 50 85 01 (or something like that). Then, immediately after that, all the data in the stadium file gets actually converted into the file formats the game "reads". So, the header and much of the first grouping of offset data remains the same as the actual file. However, all the images within the stadium file actually get compiled into their image format. This is what most of the changed data is. Not quite all of it.

^^This is a nice summary of what's going on there.

JDHalfrack wrote:Also, as far as the entrance coordinates go, you need to make sure they are edited in memory almost immediately after the stadium loads. As soon as the stadium loads, the coordinates are actually pulled from the file and stored in a separate section of memory (before the pregame intro even starts). It's this new section in memory where the game actually reads from.

Understood, I'll keep this in mind. And I'm glad you have observed this sort of thing as well. Anotherwords, it sounds like you are referring to codes who's values change during the loading sequence of the game just before the intro scene begins with the gameday crew above the stadium. In certain situation I have to "wait" until the end of the loading sequence to adjust certain codes. One example is that weather changing code, the 00, 01 02 (for clear weather, snow, rain) if you set it to Rain pre-game, that value only pops up as "02" (rain) towards the end of the loading sequence. So I wait till it pops up then turn it to 00 to do the Rain off hack. So it would seem that a similar thing is occurring here.

I also had a non-static code that I was previously using to have Rain crowds show up clear weather that I had to wait until the end of the loading sequence to put in after it took effect, before I discovered that I could use texture replacement for the crowds to accomplish this as well as I demonstrated with my Boise State stadium crowd edits in the other topic.

JDHalfrack
All-Pro
Posts: 172
Joined: Mon Jul 25, 2011 7:16 am

Re: Stadium Conversions/Edits for NCAA 06 PS2

Postby JDHalfrack » Mon Apr 07, 2025 12:15 am

Harry97 wrote:
JDHalfrack wrote:So, what happens when the stadium file loads into memory is that it loads exactly how it looks in the DAT file, byte-for-byte. But, almost immediately, it undergoes it's conversion process where the offsets in the memory get adjusted to the offsets in memory. so something like 10 05 00 00 gets changed to 4E 50 85 01 (or something like that). Then, immediately after that, all the data in the stadium file gets actually converted into the file formats the game "reads". So, the header and much of the first grouping of offset data remains the same as the actual file. However, all the images within the stadium file actually get compiled into their image format. This is what most of the changed data is. Not quite all of it.

Also, as far as the entrance coordinates go, you need to make sure they are edited in memory almost immediately after the stadium loads. As soon as the stadium loads, the coordinates are actually pulled from the file and stored in a separate section of memory (before the pregame intro even starts). It's this new section in memory where the game actually reads from.

The stadium I used for Seattle's stadium came from one of the PS2 Maddens (I don't recall which one). Both the major and all the minor parts. I made no changes to the minor parts (I think). The key to getting the crowds to show up was editing one of the float values. I used the logic you explained to me in one of your other posts here. Unfortunately, I don't recall which post, or what I needed to do! But, as an example, if you go to offset 0x1CE0, you see one of the fan sections. It starts like this:
07 00 00 00 28 00 00 00 3F 00 00 00 00 00 00 00
01 01 00 01 08 80 01 6C 30 80 00 00 00 40 02 30
12 04 00 00 00 00 00 00 03 01 00 01 09 80 30 64
27 31 20 40 6F 12 83 3A 37 89 A9 3E 6F 12 83 3A
27 31 20 40 23 DB 79 3D 37 89 A9 3E 23 DB 79 3D
.... so on and so forth ...

So, each section of the stadium starts with 48 bytes. I don't know what all of them mean (ChatGPT and I are working on deciphering all of it), but after those 48 bytes, for the fan sections, each group of 32 bytes following that deals with size and scaling of a row of fans (all little endian float values). So, in this example, this section of bytes is one row of fans:
27 31 20 40 6F 12 83 3A 37 89 A9 3E 6F 12 83 3A
27 31 20 40 23 DB 79 3D 37 89 A9 3E 23 DB 79 3D

One of those groupings of four (one of the float values), had to be adjusted across the board for all the fan sections in the stadium. Clearly the Madden version has a different way of interpreting those float values compared to the NCAA '06 version. Unfortunately, I'm just not sure I remember which float value... It's been a long time!

Again, hopefully all this is helpful for you and you continue having fun editing!

OK that makes sense, and I'm glad my logic in the past was useful to you in your journey. You said "The key to getting the crowds to show up was editing one of the float values." If you can pinpoint what specific float values that was, as in the address (or the addresses) in the stadium file that would be useful. Then I can try to convert some Madden stadiums myself to see if I can get the better crowds to show up if that part is confusing or not important to you.

If I am unable to do it myself, if you don't provide the specific changes to get Madden crowds to show up, well then I'll leave it up to you for the Madden stadium conversions, and then I would encourage you to use the same process you already used to get your Seahawks crowd to show up in NCAA 06, as surely you intend to convert (or have already) other Madden PS2 stadiums to NCAA 06, and I would like to help you streamline this process to get the best crowds possible. But instead of using an original NCAA 06 stadium for your comparison file to get the correct codes into your Madden stadium file to get the crowds to show up, to use the values from a NCAA 07-11 converted (to NCAA 06) stadium so that you won't be overwriting the narrower / more densely packed codes from a Madden 07-12 PS2 stadium with the wider and less densely packed crowd models of a NCAA 04-06 (or Madden 04-06) stadium.

All I'm trying to do here JD is to help you make the crowds look better in your Seahawks stadium, to make the crowds as they look in all the screenshots I have provided in this topic of my NCAA 07-11 converted stadiums. ;)

This may not seem too important to you, but trust me this is huge for anyone who cares about the aesthetics of stadiums and crowds. As you may know, the crowds got a huge quality upgrade after NCAA 06. Both in terms of the crowd models themselves as they exist in STADATA.DAT, which are damn near impossible to edit, and in terms of the codes contained with a stadium file that determine how narrow or thick each crowd member is and in turn how many crowd members show up in each row.

The beauty of running NCAA 07-11 PS2 stadiums (or converted Madden 07-12 PS2 stadiums for that matter) is that when in NCAA 06 you get the size and structure of the crowds as they are in the later NCAA (or Madden) PS2 games but with the crowd animations (standing up and cheering) that is present in NCAA 06 (and Madden 06 IIRC) but not in any Madden or NCAA game since. So the idea is getting the best of both worlds as it pertains to the stadium crowds through getting the updated crowd values into the stadium file without having to worry about editing the crowd models themself in STADATA.DAT. Doing all the work through the stadium file itself should be all we need to concern ourselves with which is the point I stressed in the original post of this topic.

This pertains to your Seahawks conversion because unlike my/our NCAA 07-11 PS2 stadium conversions, in your Madden stadium conversion of the Seahawks stadium the crowds are as if they were taken from a Madden 04-06 stadium but it seems you took it from a Madden 08 PS2 stadium file, which would suggest that you *perhaps* took some crowd codes from a NCAA 04-06 file which reverted the crowd structure to that of NCAA 04-06 rather than 07-11. That's what I'm trying to pinpoint in your stadium file. Both the codes that got the crowds to show up and if those codes (or other codes) affected the size of the crowd members. I know this is a little confusing, but it's important.


Here are the two stadiums (the original from Madden 11, and the modded one):
SEATTLE Stadiums.zip
(913.48 KiB) Downloaded 12 times


I actually forgot there was a lot of weird changes. It wasn't the float value that made the difference, it was a series of random bytes found in the fan sections. My guess is they are links to the images files in the NCAA DAT files, and those links are different in the Madden DAT files. Anyway, if you load these two files up in HxD, and then run a data comparison, you can see what I changed.

Harry97
All-Pro
Posts: 415
Joined: Tue Oct 09, 2012 3:24 am

Re: Stadium Conversions/Edits for NCAA 06 PS2

Postby Harry97 » Mon Apr 07, 2025 12:37 am

JDHalfrack wrote:Here are the two stadiums (the original from Madden 11, and the modded one): SEATTLE Stadiums.zip

I actually forgot there was a lot of weird changes. It wasn't the float value that made the difference, it was a series of random bytes found in the fan sections. My guess is they are links to the images files in the NCAA DAT files, and those links are different in the Madden DAT files. Anyway, if you load these two files up in HxD, and then run a data comparison, you can see what I changed.

Thanks for that. I did a similar hex comparison before so I already recorded the changes I noted the crowd sections. i.e changing all the B6F3FD3Ds to 23DB793Ds, but also noting that you reduced certain values from 0B to 09, 0A to 08, 0D to 0B, etc. So I already observed that part of it, but what confused me was the other changes, and now I think I know why. As some of the other changes outside of the crowd sections were also needed to get the crowd to show up, but I wasn't sure what since there were so many since I was comparing it to the Madden 08 PS2 stadium file which may have other changes between that and the Madden 11 PS2 file.

Through my tests just those changes in the crowd sections didn't seem to get the crowds to show up on their own. It seems that in addition to all those changes, it also required additional changes outside of the changes to the crowd sections (i.e. 3CD98 onwards).

It would seem that the changes you made after the crowd sections, i.e. starting with 3CD98 onwards was the elusive part that got the crowds to show up, in combination with the other changes to the crowd sections. That was the part that perhaps had eluded me. If that was the missing piece to the puzzle, then good on you for narrowing that down until you isolated that additional section of codes that needed to be changed. Sometimes the last part is the hardest part to isolate. I'll have to take all this into memory myself and see the effect everything has in real-time. My goal being to find out, in the Seahawks stadium at least, how to resize the crowd to be more like the NCAA 07-11 stadium converted crowds. Then use that knowledge to learn how to adjust the crowd size per stadium to our liking generally.

So it would seem that all 3 of these sets of changes were needed to get the crowds to show up in a Madden stadium (1. B6F3FD3D to 23DB793D, then 2. all the 0B to 09, 0A to 08, 0D to 0B, then 3. the additional changes 3CD98 onwards) Now I just need to figure out what does what, i.e. what does the B6F3FD3Ds to 23DB793Ds do, vs what does the [0B to 09, 0A to 08, 0D to 0B]s do, etc. I think I'll find my answer when I take it all into memory. It's confusing though because figuring out which codes need to be changed to make certain edits to a Madden file may not be the same as with an NCAA file since the codes and their values (i.e. what needs to be changed, and where certain values are organized within each crowd section) are different between Madden and NCAA.

For example, I did notice that some some of the other codes in the crowd sections (besides the ones you changed in the Seahawks stadium to get the crowds to show up) are different default values in that Madden stadium than the values in the NCAA 07-NCAA 11 PS2 stadiums that I had to adjust to get them to display properly in NCAA 06. (to eliminate the stacked rows problem that was observed when you put a NCAA 07-NCAA 11 PS2 unedited original into NCAA 06) But those codes that resolved that problem in NCAA 07-11 stadiums don't seem to relate to the size of the crowd models, those would presumably have more to do with how rows of seats are placed in proximity to one another.

Anyway, I'll take this into memory and see if I can identify the ones that change the crowd size. By the way you saying that you used the Madden 11 PS2 stadium files would make sense, if perhaps the Seahawks stadium's minor files didn't change from Madden 08 to Madden 11, but maybe the Major file had some changes between Madden 08 and Madden 11 which would explain why there were so many more changes when I tried to compare your file to the Madden 08 PS2 original. This would all make sense so thank you for helping me get a better grasp of what you did there. 8-)

JDHalfrack
All-Pro
Posts: 172
Joined: Mon Jul 25, 2011 7:16 am

Re: Stadium Conversions/Edits for NCAA 06 PS2

Postby JDHalfrack » Mon Apr 07, 2025 7:25 am

Harry97 wrote:
JDHalfrack wrote:Here are the two stadiums (the original from Madden 11, and the modded one): SEATTLE Stadiums.zip

I actually forgot there was a lot of weird changes. It wasn't the float value that made the difference, it was a series of random bytes found in the fan sections. My guess is they are links to the images files in the NCAA DAT files, and those links are different in the Madden DAT files. Anyway, if you load these two files up in HxD, and then run a data comparison, you can see what I changed.

Thanks for that. I did a similar hex comparison before so I already recorded the changes I noted the crowd sections. i.e changing all the B6F3FD3Ds to 23DB793Ds, but also noting that you reduced certain values from 0B to 09, 0A to 08, 0D to 0B, etc. So I already observed that part of it, but what confused me was the other changes, and now I think I know why. As some of the other changes outside of the crowd sections were also needed to get the crowd to show up, but I wasn't sure what since there were so many since I was comparing it to the Madden 08 PS2 stadium file which may have other changes between that and the Madden 11 PS2 file.

Through my tests just those changes in the crowd sections didn't seem to get the crowds to show up on their own. It seems that in addition to all those changes, it also required additional changes outside of the changes to the crowd sections (i.e. 3CD98 onwards).

It would seem that the changes you made after the crowd sections, i.e. starting with 3CD98 onwards was the elusive part that got the crowds to show up, in combination with the other changes to the crowd sections. That was the part that perhaps had eluded me. If that was the missing piece to the puzzle, then good on you for narrowing that down until you isolated that additional section of codes that needed to be changed. Sometimes the last part is the hardest part to isolate. I'll have to take all this into memory myself and see the effect everything has in real-time. My goal being to find out, in the Seahawks stadium at least, how to resize the crowd to be more like the NCAA 07-11 stadium converted crowds. Then use that knowledge to learn how to adjust the crowd size per stadium to our liking generally.

So it would seem that all 3 of these sets of changes were needed to get the crowds to show up in a Madden stadium (1. B6F3FD3D to 23DB793D, then 2. all the 0B to 09, 0A to 08, 0D to 0B, then 3. the additional changes 3CD98 onwards) Now I just need to figure out what does what, i.e. what does the B6F3FD3Ds to 23DB793Ds do, vs what does the [0B to 09, 0A to 08, 0D to 0B]s do, etc. I think I'll find my answer when I take it all into memory. It's confusing though because figuring out which codes need to be changed to make certain edits to a Madden file may not be the same as with an NCAA file since the codes and their values (i.e. what needs to be changed, and where certain values are organized within each crowd section) are different between Madden and NCAA.

For example, I did notice that some some of the other codes in the crowd sections (besides the ones you changed in the Seahawks stadium to get the crowds to show up) are different default values in that Madden stadium than the values in the NCAA 07-NCAA 11 PS2 stadiums that I had to adjust to get them to display properly in NCAA 06. (to eliminate the stacked rows problem that was observed when you put a NCAA 07-NCAA 11 PS2 unedited original into NCAA 06) But those codes that resolved that problem in NCAA 07-11 stadiums don't seem to relate to the size of the crowd models, those would presumably have more to do with how rows of seats are placed in proximity to one another.

Anyway, I'll take this into memory and see if I can identify the ones that change the crowd size. By the way you saying that you used the Madden 11 PS2 stadium files would make sense, if perhaps the Seahawks stadium's minor files didn't change from Madden 08 to Madden 11, but maybe the Major file had some changes between Madden 08 and Madden 11 which would explain why there were so many more changes when I tried to compare your file to the Madden 08 PS2 original. This would all make sense so thank you for helping me get a better grasp of what you did there. 8-)


Oh yeah.... weird. I'm sure I only realized that those changes were needed due to looking at other NCAA '06 stadiums. What those changes do... I'm not sure! The only ones of which I'm sure are the float values. those change the "look" of some aspects of the crowd. Those are the values you're wanting to change to accomplish your goal (after getting them to show up). For example, if you've seen the weird Alabama triple stack of fans when importing NCAA '11 into '06, you can fix that with editing the float values.

I'm glad I was able to help a little here, but I forget how annoying it is to post things on this forum vs. discord. If you want to dive into this more, you gotta come over there. I don't think I can handle having this much of a technical conversation on a forum that is so technologically handcuffing.


Return to “Other Football Games”

Who is online

Users browsing this forum: No registered users and 4 guests