Kuribo64
Views: 14,036,556 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
04-06-21 12:41 AM
Guest:

0 users reading Adding SMG1 Objects | 1 bot

Main - Archived forums - General SMG hacking - Adding SMG1 Objects New reply

Pages: 1 2 3 4 5
NWPlayer123
Posted on 01-25-13 11:21 PM Link | #9981
probably means it fucked up the powerup system since there is a cloud flower on there, plus all the technical collection ones.

____________________
"I hate playing musical chats" ~ Quote of the month

Phantom Wings
Posted on 01-26-13 03:19 PM Link | #10172
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.

Marionumber1
Posted on 01-26-13 03:25 PM Link | #10174
So what are the other patches for?

Phantom Wings
Posted on 01-26-13 07:31 PM (rev. 4 of 01-27-13 02:50 AM) Link | #10181
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.



<memory offset="0x803B6E80" value="38800003"/>
<memory offset="0x803C84F8" value="4800002C"/>
<memory offset="0x803C8524" value="939C0E9C"/>
<memory offset="0x803C8530" value="7F85E378"/>
<memory offset="0x803C8540" value="48000098"/>
<memory offset="0x803C9BA8" value="389F1624"/>
<memory offset="0x803C9BD8" value="389F163C"/>


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


Marionumber1
Posted on 02-09-13 08:28 PM (rev. 3 of 02-10-13 07:45 AM) Link | #14593
We already knew that brkirch had figured it out, but he hasn't actually released it. Also, he seems to have disappeared from the Internet around the time he made the video.

Also PhantomWings, with the most recent patch, the level loads. However, when I collect the Fire Flower, it starts to transform me into Rainbow Mario, but right before it displays the message, the game crashes. Mario gets Rainbow Mario's hands before it crashes.

MK7tester
Posted on 02-12-13 09:29 AM Link | #15000
So are you just gonna give up? Was that your final shot?

NWPlayer123
Posted on 02-12-13 11:10 AM Link | #15012
Not by a long shot

____________________
"I hate playing musical chats" ~ Quote of the month

Marionumber1
Posted on 02-12-13 08:13 PM Link | #15085
I don't know about PhantomWings, but I'm definitely not giving up on this.

Phantom Wings
Posted on 02-13-13 12:40 AM Link | #15179
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.

MK7tester
Posted on 02-13-13 12:53 AM Link | #15180
I know this might be unvalid to ask, but why exactly did you get rid of your Wii?

Phantom Wings
Posted on 02-13-13 01:06 AM Link | #15181
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.

Marionumber1
Posted on 03-27-13 12:53 PM Link | #18741
After thinking for a little while, I realized that Flying Mario might also have a setup_ function. This is because on the Wii, it crashes when trying to load his outfit. Also, the ASM function that calls all of the setup_ functions seems to call a function not mentioned on the Wiki at 803BBAE0 in the NTSC main.dol. I think that this might be setup_FlyingMario.

Phantom Wings
Posted on 03-30-13 01:11 PM Link | #18828
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.


RedStar Event Disable
E0000000 80008000
04024104 48000010
04024584 60000000


IceFlower Event Disable
E0000000 80008000
040240C4 48000010
04024544 60000000


FireFlower Grants Flight
E0000000 80008000
042D340C 41820040


FireFlower Grants Ice
E0000000 80008000
042D340C 41820030
043EE32C 8863001A



FireFlower is RedStar
E0000000 80008000
042D4780 38600006

FireFlower is IceFlower
E0000000 80008000
042D4780 38600004
043EE32C 8863001A



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.

Marionumber1
Posted on 03-30-13 01:15 PM (rev. 4 of 03-30-13 01:41 PM) Link | #18829
That's great, Phantom Wings! I'm going to try this out soon. I already was able to edit the Fire Flower class to change it to both the Red Star and the Ice Flower. I'm going to try your patch and my patch in combination.

Also, I can easily convert those to Riivolution patches.

Great news! Flying Mario's outfit worked! Now I'm going to try the Ice Flower, with a your hack and a hack to make it load its resources.

Unfortunately, it seems the level crashes with an Ice Flower in it.

Anyway, now we need to add MorphItemNeoFoo to the BCSV object lookup table that you talked about in the Wiki. That's what I've been planning to do since the beginning of today, but first we need two empty slots. That means we either need to find 2 unused objects in there, or get rid of 2 objects.

Phantom Wings
Posted on 03-30-13 01:58 PM (rev. 3 of 03-30-13 02:03 PM) Link | #18830
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.

Marionumber1
Posted on 03-30-13 02:04 PM (rev. 3 of 03-30-13 02:09 PM) Link | #18831
Yes, but my idea is to add MorphItemNeoFoo and MorphItemNeoIce to the BCSV object lookup table. I'd add modified copies of the Fire Flower class.

Nope, level still crashes.

Phantom Wings
Posted on 03-30-13 02:26 PM Link | #18832
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.

Marionumber1
Posted on 03-30-13 02:42 PM Link | #18834
I already know that PowerUpIce.arc is fine, since when I modified the Fire Flower class into an Ice Flower class, the Ice Flower worked in the level.

Phantom Wings
Posted on 03-30-13 02:53 PM Link | #18835
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?

Marionumber1
Posted on 03-30-13 03:01 PM (rev. 2 of 03-30-13 03:17 PM) Link | #18836
Okay, I'll try it. Using your patch to load Rainbow Mario's files instead of Ice Mario's works. So there's probably a problem with the Ice Mario files.
Pages: 1 2 3 4 5

Main - Archived forums - General SMG hacking - Adding SMG1 Objects New reply

Page rendered in 0.037 seconds. (2048KB of memory used)
MySQL - queries: 29, rows: 235/235, time: 0.029 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.