Any step towards understanding the text struct a little better sounds amazingI figured it out btw. Kind of. I mean, I got it to show up like you wanted. But I'm at the pool getting some Vitamin D so I'll post about it when I get back.
Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!
You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!
Any step towards understanding the text struct a little better sounds amazingI figured it out btw. Kind of. I mean, I got it to show up like you wanted. But I'm at the pool getting some Vitamin D so I'll post about it when I get back.
You had one of the pink/tan textures calling the black texture. Was this a mistake, then?The black texture flag really shouldnt be getting called in the same way. It doesnt have texture coordinates. It uses normal coordinates which Im not sure of its purpose. I definitely plan on putting them in one small texture. The eyes take up 2/3s of the final size. Its just multiple textures come in handy else where and the eyes were the easiest way of testing it.
The reason brawl uses multiple textures here is because for the eyes you can just have the blue one move around. However I dont really feel like making a joint matanim section because no one knows the purpose of the string.
Sorry I didn't respond to your texture question in the other thread. I was gonna tackle it once I got home and put my comp back together, but Achilles beat me to it.So the layer flags in the texture struct seem to correspond to which UV is being used, with 0x4 being the first index.
Also I cant seem to have success with multiple textures on the same material struct. Ive come somewhat close but now quite. Here are a pair of eyes for mario. It should look something like this.
But the closest Ive gotten by changing the halfword at 0x40 in the texture struct.
Why are the Melee Gods so cruel.
I just linked it in the same order its in for the brawl file. Im not even sure if its showing up since I didnt set it to a texcoord.You had one of the pink/tan textures calling the black texture. Was this a mistake, then?
No worries.Sorry I didn't respond to your texture question in the other thread. I was gonna tackle it once I got home and put my comp back together, but Achilles beat me to it.
Anyway, what structure are the UV lists/maps a part of?
What did you set the flags for the pink texture to?So first off, it's hard to understand the big picture of what the purpose of textures are without knowing the entirety of what you are trying to import.
I have no idea what the textures circled in red are being used for.
View attachment 115813
Nonetheless, I did what I said in my above post, and tweaked a flag, and it worked.
View attachment 115814
(When I say "call" below, I am just referring to linking the texture structs.)
Again, idk what the black texture is used for so I just ignored it and made nothing call it. I made the white image (data @ offset 0x7c680) call the pink/tan texture. Then made the pink/tan texture call the blue texture. Changed the 0x40 text struct flag of the blue texture to 00010010 and then it worked. Blue texture doesn't call anything.
Idk for certain if the order matters, but it just makes sense to me that the last linked texture is the highest layer. Like Marth's cape, the cape texture links to the cape logo which is on top of the cape texture.
Side Note: For the final product, whatever it may be, can we convert these really simple _6 textures to _14? I feel like they are unnecessarily taking up way too much space for how simple they are, and how small the object they are being cast onto is (just small eyes).
Kept them the same as you had them. If I remember correctly is was 00070010.What did you set the flags for the pink texture to?
You would think that but it shows up that way even without those textures.Isn't the black texture just the pupil? lol
I would assume the one above it is the twinkle in Mario's eyes.
Omfg, Randall data. We can manipulate his path. Need to do some more tests later.Has anyone looked at the bones in YS. Theres some weird structure at 0x18538 thats supposed to be an object group but its definitely not in a format documented.
So it doesnt take me long to get here.Omfg, Randall data. We can manipulate his path. Need to do some more tests later.
Zankyou, begin importing Smashville over this stage. Immediately, and that is an order. Attach the moving platform object as the new Randall.
Do you have a good idea as to where the shy guy animation data is stored?Punkline Achilles1515
Can either of you look into why this file of YS is crashing when you hit a shy guy. If I had to guess its because I shifted the data around so the shy guy function doesnt know where to look. If thats the case then it means I cant shrink the filesize of YS.
It seems like it doesnt crash if you it a shy guy with a strong attack.Do you have a good idea as to where the shy guy animation data is stored?
Also, I just hit some shy guys with the file and it was totally normal.
Just tried with Fox jab, laser, first hit uair. No freeze. What is a "weak" attack you are using to make it freeze?It seems like it doesnt crash if you it a shy guy with a strong attack.
I just tried fox lasers on a relatively clean iso and it still triggered for me. Im gettingJust tried with Fox jab, laser, first hit uair. No freeze. What is a "weak" attack you are using to make it freeze?
K. I guess I should note that I'm using 20XX. Just using a 20XX root folder with random stage WIPs added and rebuilt with GCR.I just tried fox lasers on a relatively clean iso and it still triggered for me. Im getting
invalid read from 0xffffffff, PC = 0x80268c98
Ill test some more and see if Im doing anything dumb to cause this.
Do you have a good idea as to where the shy guy animation data is stored?
Also, I just hit some shy guys with the file and it was totally normal.
I wasn't able to reproduce it either, but I just remembered something...I just tried fox lasers on a relatively clean iso and it still triggered for me. Im getting
invalid read from 0xffffffff, PC = 0x80268c98
Ill test some more and see if Im doing anything dumb to cause this.
I dont get the issue on that version of dolphin either. Im assuming though the 5.0 is more true to console.I wasn't able to reproduce it either, but I just remembered something...
Achilles1515 I rely on this version of Dolphin for memchecks, and have noticed that when I use it it makes these kinds of errors not appear. I wrote a code for a request recently, and I couldn't understand why I wasn't reproducing a similar error message L.O.S.T.30-3 was reporting until I tried using the latest version of Dolphin. The error I'd made in my code was likely causing arbitrary data to be read, but for some reason I wasn't able to see it happen on this old copy of Dolphin...
Running it in Dolphin 5.0 makes the errors appear for me. No idea why.
---
Anyway, earlier this morning I used the collision records in player hitbox data to see what the shyguy was doing. I’m not 100% sure, but loading 0x4 from the pointer left in the hitbox collision leads to what looks like an entity structure.
Collision record -> 0x4 -> 0xC8 points to an array of 3 pointers that appear to be located in this area of GrSt.dat, and all point to other areas in the file. I have only this clue telling me that it's related to shyguys, and may have nothing to do with the problem:
0xB8 seems to use the pointers for something. I haven’t looked into it much, but it was the only thing I could find (from a quick look) that pointed to loaded GrSt.dat data. I'll give it another look later knowing that I can reproduce the error message in Dolphin 5.0
Here’s a gif of the supposed entity, internal data, and possibly related file data. The clip shows the entity loading with the match, loading the data as the shyguy spawns, and what happens as a shyguy collides with a hitbox:
Tested on console. Froze.I dont get the issue on that version of dolphin either. Im assuming though the 5.0 is more true to console.
This is because Dolphin now accurately emulates BAT registers, which Smash Bros. Melee apparently uses to some extent.Achilles1515 I rely on this version of Dolphin for memchecks, and have noticed that when I use it it makes these kinds of errors not appear. I wrote a code for a request recently, and I couldn't understand why I wasn't reproducing a similar error message L.O.S.T.30-3 was reporting until I tried using the latest version of Dolphin. The error I'd made in my code was likely causing arbitrary data to be read, but for some reason I wasn't able to see it happen on this old copy of Dolphin...
Running it in Dolphin 5.0 makes the errors appear for me. No idea why.
That’s very interesting. I don’t know how to make use of these new registers, but it’s cool that Dolphin is accurately emulating this now when it wasn’t before. I'll have to keep this in mind while testing codes in the future.This is because Dolphin now accurately emulates BAT registers, which Smash Bros. Melee apparently uses to some extent.
Basically, games are now reproducing crashes that would occur on console due to reading invalid memory when previously that would not occur.
I'll try the same adjustment later this evening and see how it goes.Punkline I changed the value to 0x0002af38 and it seems to have fixed it but it does need to be tested more. If I had to guess what the function is for, since it only broke on weak attacks the idea I have is that its related to the shy guy turn around animation. Strong attacks knock them away but on weak attacks they turn around.
00000000 gets written to 0x32d78 in the vanillla DAT at code line 803804C8.That’s very interesting. I don’t know how to make use of these new registers, but it’s cool that Dolphin is accurately emulating this now when it wasn’t before. I'll have to keep this in mind while testing codes in the future.
I’ve noticed the error message seems to fire as soon as it has a straight branchless path of instructions to read. If you haven’t put down any breakpoints, it will usually happen right after a bl. Stepping through the code line by line is the only way I’ve been able to find the offending instruction.
In this case, this appears to be ground zero:
iirc, this calling function appears to do something mysterious alongside new behaviors in the various items/articles/projectiles on stage.
The call it makes after doing something with some bone data uses the BA in r23, which points to something loaded from GrSt.dat.
When the shyguy is moving, the call appears to do something as it resets its flying animation; but after hitbox collision, r23 is displaced by 0x20 in order to point to some neighboring data that I presume is used somehow in the behavior of a shyguy after being hit.
Here are the 2 neighboring tables of data referenced by r23 in these particular cases:
r6 passes a value from r23 to the offending function call; and that would be the FFFFFFFF value I’ve highlighted there. What’s strange is that even though this value appears in both files, in the unedited Yoshi Story level this loaded value becomes “0” but in the edited one it stays as “FFFFFFFF”
Using a memcheck on the address that the value gets loaded into (with savestates) doesn’t trigger any breakpoints for some reason. I’m at a loss as to where this “0” comes from when using the unedited stage. r6 gets saved to r30, and from there, instructions like this freeze the game:
---
I don't really know what to do about this as I can't figure out what's editing the values. A nice lead though is the fact that the r6 value loaded from the adjacent table for normal shyguy flying behavior is also a value that turns into 0.
Even more curious is the fact that it's a file offset instead of "FFFFFFFF" and hasn't been modified in the shrunken GrSt.dat Z zankyou
Definitely something wrong with the model. But its possible that the image dimensions are not compatible. I remember reading about how dolphin could take dimensions of any kind while the wii cannot so it could be that this import was only meant for dolphin. Did you try hooded marth?Also, Z zankyou
I tried the Sm4sh Captain Falcon (super high poly) on console and it lagged as expected, but looked like this.
View attachment 117427
Not sure if that is specifically related to the high poly, or something else in regard to the model import.
I did not try hooded Marth. I'll try to in the near future.Definitely something wrong with the model. But its possible that the image dimensions are not compatible. I remember reading about how dolphin could take dimensions of any kind while the wii cannot so it could be that this import was only meant for dolphin. Did you try hooded marth?
I also got a similar issue when I first starting modding related to upscaling dreamlands background. I had to change the texture wrap settings to fix that. Maybe on of the textures is too high res.
Btw my import method works for YS so do you still want a smash ville over it. Not sure if Ill add an exception for this stage in any future programs.
I guess I should probably call it scrubbing the file.I did not try hooded Marth. I'll try to in the near future.
Sure. I was a little disappointed with the results from my Randall testing. I can successfully make him travel in a straight horizontal path back and forth, but idk how to reliably change the speed or x-location for the stopping points. But more testing still needs to be done.
Also, can you post the nuked Yoshi's?
"The length and width of these textures should not exceed 1024x1024, and each value must be a power of 2."Definitely something wrong with the model. But its possible that the image dimensions are not compatible. I remember reading about how dolphin could take dimensions of any kind while the wii cannot so it could be that this import was only meant for dolphin. Did you try hooded marth?
I also got a similar issue when I first starting modding related to upscaling dreamlands background. I had to change the texture wrap settings to fix that. Maybe on of the textures is too high res.
Btw my import method works for YS so do you still want a smash ville over it. Not sure if Ill add an exception for this stage in any future programs.
"The length and width of these textures should not exceed 1024x1024, and each value must be a power of 2."
- GameCube SDK Version 1.0, Character Pipeline for Artists, page 14
Uhh idk. Maybe like 30 fps or something.
Btw what fps would you say it ran on console. Im honestly surprised it loaded. I figured it was going over the input limit.
Sure, but how does your program calculate how much space each mesh structure attribute takes up in the DAT for a single object?For the program Im working on, I completely parse the file as soon as its open. Part of why it crashes when choose YS.