| ||
| Views: 14,036,520 |
Home
| Forums
| Uploader
| Wiki
| Object databases
| IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search |
04-05-21 11:31 PM |
| Guest: | ||
| Main - Posts by Phantom Wings |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 21/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Alright, I'm going to remove a possible source of error, but I have a feeling that we may be stuck if we don't have someone who can use Gecko. Try this patch:
|
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 22/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Quite the contrary actually. I simply changed the setup_IceMario routine to load regardless of the flagstate. This means that the game will attempt to load IceMario even in the hub. The freezing is caused by the code that creates Ice Mario - it's most likely a read or write to a null address. Dolphin doesn't catch those and simply lets the game continue running. Most of the time, the game is programmed will enough to handle invalid return values and the like, so it actually works using Dolphin without any problems. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 23/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
The other lines skip loading the IceStep objects and replace all references to IceMario's files to InvincibleMario's files. I needed to make sure the game wasn't crashing due the differences between SMG1 and 2's files - I know for sure that making the game load up InvincibleMario's files works for IceMario.
Anyways, I'm going to give this one last try. I've gotten rid of the loading routine for IceMario all together and substituted normal Mario's already loaded model in for it. I'm still loading up InvincibleMarioHandL and R, but there's not much of a way around that; if you want to have it load up the original files, remove the last two lines. The base functionality for IceMario is still there, but there's not much left that could cause it to crash - hopefully. Edit: What's the deal? I've spent all this time on making Ice Mario work and it turns out that brkirch has beaten me by 2 years. T_T |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 24/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Anarchy is corrupting the object count value inside the bcsv. If you set the first 4 bytes of the file to whatever the original number of objects inside the bcsv was then you should be fine. The Anarchy2 library's archive reader and bcsv editor don't corrupt bcsv data, so you could consider using them instead. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 25/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
I've made a small app for editing the keyed cameras. It's just a basic implementation, so don't expect anything fancy.
download source |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 26/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Extract the camera animation (.canm) files from any of the I've added the source code download to the post above. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 27/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
I'm limited in what I can do with Dolphin. Seeing as how brkirch managed to get it working so easily so long ago, I doubt it's anything serious. Unfortunately, whatever it is that is causing it to crash could be just about anything. You may not realize just how unreasonable it is to try to continue searching for it using guess-and-check, but doing so would be far more work than it is worth. I have an .iso of SMG2, so I'll see about installing USBLoaderGX on my Wii the next time I get a chance. That will allow me to use WiiRD which will make finding the problem trivial. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 28/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
It's not as much as I got rid of it as much as I don't live with it anymore. That, and its disk drive failed a long time ago. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 29/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
You don't actually need too many tools to make good looking 3D models. I made this one using Autodesk Max, but I didn't use anything more than vertex, edge, and face dragging; face subdivision; and occasionally face extrusion. I initially started out with a simple cube and mostly improvised my way up to this (hence the completely random teacup).
Obviously it needs a bit of work, but I've never actually done a lot of modelling - let alone trying to make planets or levels in particular. However, by applying simple modelling concepts it's pretty easy to make just about anything you like. I understand that you want SMG hacking to keep proceeding forward, but why not try to be the one who learns how to use these tools and then creates a guide for it instead of being the one asking for the guide to be made for you. You said that anything is possible for us hackers if we just try, but now it's your turn - Just start with some basic tutorials and I'm sure you'll be able to get the hang of it soon enough. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 30/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Flying Mario is actually always loaded in SMG2 because it only consists of a palette swap of Mario and some basic effects. The only reason you can't access him normally is because of a lack of an entry for it in the game's event table. The event table is used to determine what special in game events you have triggered. This includes the mini events that occur when you obtain a powerup for the first time. Because there's no entry for the "GetRedStar" event (internally called フライアマリオ初変身) the game returns a bogus index when trying to read the event flag and it crashes (on consoles, but not on Dolphin which doesn't report memory errors).
Oddly enough, while the Red Star doesn't have an event entry, Ice Mario does. However, because the InformationMessage.msbt file contained in SystemMessage.arc doesn't contain the InformationObserverIce label, the game still crashes just after Mario has transformed (once again, not on Dolphin). I made up some codes to try them out, but I can't use Riivolution, so I haven't made a .xml to patch them in yet. They should work just fine as long as you have the appropriate files loaded up. The only thing Flying Mario needs is PowerupFoo.arc and you don't even need that if you use the FireFlower Grants Flight code. Ice Mario needs IceMario.arc, IceMarioHandL.arc, IceMarioHandR.arc, IceStep.arc and PowerupIce.arc. Overall, there wasn't too much that needed to be tweaked to get them working, but as I said before, trying to find this blindly would have been a futile waste of time. Also, Happy Birthday Mega-Mario. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 31/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
I've been looking into the whole Ice Mario thing. I'm guessing that it's not possible to use a direct copy of the SMG1 files for Ice Mario in SMG2. All this time I've been using a slightly modified set of files to better match the changes in SMG2.
Try them out and see what happens: Download Also, here's an interesting tip: the code for using Ice Mario includes a tweak to the resource loader function making it load when a Fire Flower is in the level. It's a dirty fix, so a better way to do this would be to place a MorphItemNeoIce object in the level. While the actual object wont show up, it will still call the preload function for it which will in turn activate the resource loader function and load Ice Mario. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 32/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
if you haven't already, could you try it with the FireFlower Grants Ice code? I just want to make sure that the PowerUpIce.arc which I didn't include isn't the problem. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 33/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Alright then. The only other thing I can guess is that it's something to do with the IceStep.arc or IceMarioHand files. I've just checked IceMario.arc and it checks out for either version. Testing is a pain using a backup loader because you can't patch things like in Riivolution - you have to rebuild the .iso to make any changes.
You mentioned a while ago further up the thread that one of the patch revisions caused something to load, but crashed the game when the message box appeared. Can you try that patch again and see if it works with the message fix? |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 34/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Alright... Well, there's not much more I can do to help on this end. There's also a possibility that the problem has to do with Riivolution itself - I've heard that it performs differently from both .iso patching and using Dolphin.
I'm going to move on and go pay my regards to the Brawl community. I don't have a lot of time this weekend and there's a few things there they want me to help out with. I hope you manage to get it working. If you want to try and add something to the BCSV lookup table without removing something else, it might be possible to relocate the whole table to a place with more space for the additional entries. The three assembly instructions that dictate the address and size of the table are located at 0x80342F9C in memory. However, the biggest problem you will probably have will be finding a suitable memory location to relocate it to. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 35/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
If you're looking for a simple solution to the coloring problem blank, then an easy way to do it would be to tweak obj2bdl to take 2 models as input. Process the second mesh in parallel with the first, and for each vertex in the first mesh, assign the texture color of the corresponding vertex in the second mesh to be its vertex color. It's a bit of a crude solution, but I don't think it would be too hard to implement. (of course, you may have a bit of extra work to do if obj2bdl doesn't currently export the vertex color info...)
As far as workflow for modellers is concerned, all you'd need to do is develop your model like usual, texture it, then create a vertex color texture. Then, just export the model once with regular textures and once with vertex color textures. Put both models into the tweaked version of obj2bdl and you're good to go. In anycase, SM64DS, try to remember that all hacking communities start out small and often don't immediately have access to all the "nice stuff" you've come to expect. The Smash hacking community - as big as it is - originally started with a small texture modding group called ]Syntax Error[. The first texture mods were manually hexed and in order to preview the texture on the model you'd need to burn a whole new DVD of the game. Despite these limitations (couldn't modify shaders, couldn't modify normals, couldn't modify lighitng), they still managed to make some pretty badass mods such as the original Fierce Diety Link and Phazon Samus textures. It would be nearly a full year before the SD based file patching was released and another year after that before anything remotely resembling any of the current existing SMG tools would be released. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 36/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Perhaps this may be on a slight tangent from what has already been discussed, but a large majority of low level hacking - assembly or otherwise - is done using a remote debugger. Moreover, the early stages of most mods are more often than not established using neither the games source code or a compiler/decompiler.
Effective hacking is usually done in steps. The first and most important being analysis. Most remote debuggers (in this case, either WiiRD or Dolphin Debug) will come with a code search feature to allow you to search for patterns in memory that reflect the happenings in the game. Memory searching - sometimes referred to as code searching - can reveal a lot about the game data - basic things like the world coordinates of in game objects and player health can usually be found fairly easily using a code search. After you have discovered a couple of values of interest, it is possible to create Ocarina codes to manipulate these values to create unique and interesting effects. There's more to hacking than just searching randomly for values of interest. If you are familiar with C++, then you are familiar with both pointers and structures. Often times, discovering a good data pointer will reveal a lot about how data structures are stored in the game's memory. Understanding these structures in turn allows you to create more complicated codes. Once you have a fair understanding of in game structures, it might be a good idea to place a few debugger breakpoints on some of the values of interest to view the assembly code that controls them. In understanding the game's assembly code, you may also come to understand some of the data files that the game utilizes to store content. This knowledge can be used to create editing tools allowing others to create customized content for the game. Only once you have a reasonably concrete understanding of internal assembly should you start trying to write assembly patches. For simple things it isn't so hard, but as the complexity of your idea grows, so too do the factors that need to be taken into consideration. Simple assembly hacks can be made using an assembler and regular assembly injections. Only if you want to build a large scale hack requiring one or more modules do you really need a compiler. Anyways, hopefully you found this quick summary useful. I'm not sure if you can still buy WiiRD units, but you should still be able to get by using Dolphin Debug - it just doesn't have as many features as WiiRD. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 37/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Perhaps I'm not qualified to comment on any of this, but my opinion of all this? I think the SMG hacking community here is missing something. I think it is missing this:
That's the custom stages sub-forum of the Smash hacking community kc-mm.com. It's a forum where people can show off the custom stages they've made whatever they may be. There are other sub-forums for characters and movesets, but I'd like to draw your attention to the guy named Mewtwo2000 here. He's one of the lead stage developers for one of Smash's biggest mod projects - Project M. But he doesn't just work for Project M. He makes a ton of other stages and character models just because he wants to be able to show them off. The reason for his work isn't because he wants to advance Project M, but more that he likes making those models and likes to show them to people - even if they aren't used in some big project. Those sub-forums are more than just a place for people to show off. It's a place for people to practice. More importantly, it's a place for people to motivate both themselves and others. It's a place where even hackers like me can become motivated just by seeing what people are capable of. Observing things as they are, this kind of thing does not exist in Kuribo - in fact, it is somewhat discouraged. A few months ago StarLight made a comment regarding the lack of tutorials for him when it comes to using Maya to make stages. Me - being a bit over critical - told him that he should try to make his own attempts at stage creation instead of expecting there to be a tutorial telling him how to do it. To his credit, he did just that. However when he tried to show off his progress, the first response he recieved was: "Shouldn't really need a thread." It is here where I think the problem is. Efforts like Starlight's should absolutely need a thread. Those kinds of threads are training grounds, they are motivators, and they are places that hold the potential to attract new members to the community. I'm not really an expert at communities, but at places like kc-mm, there is always some kind of activity and it's not just the big projects either. Everyday there is always some new blood willing to give modelling or moveset creation a shot because they have a place that they can immediately go to show it off and be appreciated. I wouldn't say that this would fix all of the community's current problems, but surely it wouldn't hurt to have a place where people can take pride in their own work? |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 38/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
There isn't really any "makes sense" and "doesn't make sense" in the Mario series if you ask me. SM64's castle had portals to other worlds in the castle's paintings with absolutely no explanation as to why besides that it made for a cool hub mechanic.
On the Peach's Castle in space thing, my spin on it would be to have Peach's Castle as the hub, but it would sort of be a twisted scattering of space debris (think of how the MatterSplatter indoor areas looked). As you complete areas, parts of the castle would be restored allowing you to proceed to other areas. Concept model: The layout would be similar to the Comet Observatory, but it would feel a bit different due to the state of the castle. On the topic of the domes, I'm reasonably sure that it would not be too hard to take the logic of the control pad from Spaceship Mario and parameterize it with an object_arg to determine which map gets shown when you step on the pad. One reskin later, and you can have multiple pads scattered throughout the hub which take you to different maps of in the game. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 39/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Nice job MrRean.
I'm curious about that debug screen you mentioned. This is the first I've heard of it. On another note, shouldn't there be a level creation sub-forum here somewhere? Sure, there's the SMG2.5 subforum and there's a bit of experimentation going on in General SMG Hacking, but I think it would go a long way to have a section that new and curious level hackers can flock to - especially if it had helpful threads like this one pinned to it. |
| Phantom Wings |
| ||
|
Normal user Level: 16 Posts: 40/46 EXP: 17631 Next: 2625 Since: 07-08-12 Last post: 2627 days ago Last view: 2627 days ago |
Posted by Luigi Good point.
On the other hand, a lot of level creation threads get buried under the more "General" threads related to SMG hacking. I'm thinking more along the lines of a section where threads like this, this, this, and this one can live without being buried under a few pages of non-level related theads. Think of it as a place to showcase this community's level creation cred. |
| Main - Posts by Phantom Wings |
|
Page rendered in 0.025 seconds. (2048KB of memory used) MySQL - queries: 21, rows: 138/138, time: 0.019 seconds.
Acmlmboard 2.064 (2018-07-20)© 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |