Views: 22,888,994 |
Home
| Forums
| Uploader
| Wiki
| Object databases
| IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search |
10-04-24 06:27 PM |
Guest: |
0 users reading Super Mario Galaxy 2 - Reverse Engineering | 1 bot |
Main - Misc. ROM hacking - Super Mario Galaxy 2 - Reverse Engineering | Hide post layouts | New reply |
shibboleet |
| ||
Fire Mario DROP TABLE users; Level: 124 Posts: 4477/4661 EXP: 21280361 Next: 556240 Since: 07-07-12 Last post: 1511 days ago Last view: 524 days ago |
greetings mortals
Super Mario Galaxy 2 has never been really looked at, in a structure sense. So I've decided to yolo it and try to reverse engineer the game to see what it can contain. class Goomba : public Object {
public: void* vtable; // _0 u32 _50; u32 _54; u32 _58; void* _5C; u32 _68; u8 _70; u8 _71; u8 _72; u8 _73; u8 _77; u32 _80; u32 _8C; void* _90; u32 _94; u32 _98; u32 _9C; u32 _A0; u32 _A4; void* _A8; float _AC; float _B0; float _B4; float _B8; u32 _C8; u8 _CC; u8 _CD; u8 _CE; ~Goomba(); Goomba(); void init(u32 *); void vf08(); void vf28(); void vf2C(); void vf4C(); void vf50(); void vf58(u32 *, u32 *); void vf5C(u32 *, u32 *); u32 vf60(u32 *, u32 *, u32 *); u32 vf64(u32 *, u32 *, u32 *); u32 vf68(u32, u32 *, u32 *); }; This is your basic class. You have your fields, and you have your methods. Every object inherits a base class, which I call "Object". "Object" has a lot of empty methods (or nullsubs) because they didn't bother coding for them because they would be overwritten by every class anyways. The last few methods (vf58 to vf68) seem to be the colliders once you really look at it, seeing as it's probably self * and collider *. more to come ____________________ a |
Super Hackio |
| ||
Red Super Koopa Normal user Level: 57 Posts: 790/876 EXP: 1401258 Next: 84670 Since: 10-05-16 From: The true North, Strong & free! Last post: 2031 days ago Last view: 1594 days ago |
I 100% support you on your YOLO quest shibboleet!! Anyone else with me on that? ____________________ SMG RUN Progress: Not available here, for more information, check my Youtube Channel |
shibboleet |
| ||
Fire Mario DROP TABLE users; Level: 124 Posts: 4478/4661 EXP: 21280361 Next: 556240 Since: 07-07-12 Last post: 1511 days ago Last view: 524 days ago |
well I’m opening a completely seperate wiki soon sooo ____________________ a |
Super Hackio |
| ||
Red Super Koopa Normal user Level: 57 Posts: 791/876 EXP: 1401258 Next: 84670 Since: 10-05-16 From: The true North, Strong & free! Last post: 2031 days ago Last view: 1594 days ago |
Posted by shibboleet REALLY?? Where? ____________________ SMG RUN Progress: Not available here, for more information, check my Youtube Channel |
shibboleet |
| ||
Fire Mario DROP TABLE users; Level: 124 Posts: 4479/4661 EXP: 21280361 Next: 556240 Since: 07-07-12 Last post: 1511 days ago Last view: 524 days ago |
void init(u32 *arg1)
{ r5 = "Kuribo"; r6 = 0; r31 = arg1; r30 = r3; // this-> call_object_init(arg1, r5, r6); r0 = r30->_CD; if (r0 != 0) goto CDNot0; r3 = r30; sub_8022BC70(r3); CDNot0: r5 = r30; r3 = r30 + 0xAC; // this creates a pointer r4 = r30 + 0xBC; // this creates a pointer sub_80010070(r3, r4, r5); r3 = r31; sub_8002BD90(r3); if (r3 == 0) goto r3Is0; r3 = r31; r4 = r30 + 0xCC; // this creates a pointer sub_8002C580(r3, r4); // Obj_arg0 r3Is0: r0 = r30->_CC; if (r0 != 0) goto CCNot0; r3 = r30; sub_80034560(r3); // this sets r30->_CC to 1 r3 = r30; sub_80034DA0(r3); goto allocMemory; CCNot0: r3 = r30; Store0InField76(r3); f10 = r30->_AC; r3 = r1 + 0x14; f9 = r30->_B0; f0 = f10 * f10; f1 = r30->_B4; f6 = r30->_B8; f8 = f10 * f9; f7 = r2->_-3E90; f2 = f1 * f1; f5 = f6 * f1; f3 = r2->_-3EA0; f4 = f7 * f0; f0 = f6 * f10; f1 = f9 * f1; f4 = f3 - f4; f2 = f7 * f2; f6 = f7 * f8; f5 = f7 * f5; f3 = f7 * f1; f0 = f7 * f0; f1 = f6 - f5; f2 = f4 - f2; f3 = f3 + f0; sub_80006F90(f1, f2, f3); r3 = r30 + 0x44; r4 = r1 + 0x14; sub_8000E9C0(r3, r4); goto allocMemory; allocMemory: r3 = 0x1C; AllocFromHeapEx_Align4_0(r3); if (r3 == 0) goto allocResult; r4 = 0; sub_801501D0(r3, r4); goto allocResult; allocResult: r3 = r30->_90; r3 = r30; sub_801B8C30(r3); r3 = r30; r4 = r31; sub_801B8D70(r3, r4); r3 = r30; r4 = r31; r5 = 0; r6 = 0; sub_80063350(r3, r4, r5, r6); r3 = r31; sub_8002BD90(r3); if (r3 == 0) goto end; r3 = r30; r4 = r31; r5 = 0x20; sub_80031970(r3, r4, r5); goto end; end: r3 = r30; r4 = r31; sub_8001AA10(r3, r4); f1 = r2->_-3E9C; r3 = r1 + 0x08; sub_80006EB0(f1); r4 = "Center"; r5 = r3; r3 = r30; sub_8041A940(r3, r4, r5); r30->_A8 = r3; r31 = r1->_2C; r30 = r1->_28; r0 = r1->_34; r1 = r1 + 0x30; } init() function attempted RE ____________________ a |
Super Hackio |
| ||
Red Super Koopa Normal user Level: 57 Posts: 793/876 EXP: 1401258 Next: 84670 Since: 10-05-16 From: The true North, Strong & free! Last post: 2031 days ago Last view: 1594 days ago |
This looks like... whatever language GalaxyCreate used. (whatever command prompt uses) ____________________ SMG RUN Progress: Not available here, for more information, check my Youtube Channel |
shibboleet |
| ||
Fire Mario DROP TABLE users; Level: 124 Posts: 4480/4661 EXP: 21280361 Next: 556240 Since: 07-07-12 Last post: 1511 days ago Last view: 524 days ago |
what ____________________ a |
Super Hackio |
| ||
Red Super Koopa Normal user Level: 57 Posts: 794/876 EXP: 1401258 Next: 84670 Since: 10-05-16 From: The true North, Strong & free! Last post: 2031 days ago Last view: 1594 days ago |
NVM. I saw the "goto" function and recognized it. I've used it before. ____________________ SMG RUN Progress: Not available here, for more information, check my Youtube Channel |
JasonTGF |
| ||
Ninji SMG2 crashes are asinine. Level: 32 Posts: 106/244 EXP: 196199 Next: 10243 Since: 07-03-17 From: Good Egg Galaxy Last post: 1733 days ago Last view: 245 days ago |
Posted by shibboleet Doing this should probably make asm hacking possible and a lot easier. ____________________ Skek is a Fortnite god |
TheSunCat |
| ||
Bullet Bill Passively Working on a Mod Since 1998 Level: 44 Posts: 379/502 EXP: 584521 Next: 26764 Since: 05-13-17 Last post: 2021 days ago Last view: 450 days ago |
This would open up possibilities for custom code, right?
So we could finally make custom AIs and objects. |
Super Hackio |
| ||
Red Super Koopa Normal user Level: 57 Posts: 796/876 EXP: 1401258 Next: 84670 Since: 10-05-16 From: The true North, Strong & free! Last post: 2031 days ago Last view: 1594 days ago |
Or fix objects that are broken. OR port SMG1 objects. (kamella, for example) ____________________ SMG RUN Progress: Not available here, for more information, check my Youtube Channel |
TheSunCat |
| ||
Bullet Bill Passively Working on a Mod Since 1998 Level: 44 Posts: 380/502 EXP: 584521 Next: 26764 Since: 05-13-17 Last post: 2021 days ago Last view: 450 days ago |
YES!
Good luck, shibboleet! I wish I could help, but I do not know PPC.. Do not give up! |
Jesse |
| ||
Member Normal user Level: 53 Posts: 685/688 EXP: 1148087 Next: 9032 Since: 09-05-13 Last post: 2540 days ago Last view: 2102 days ago |
Nice man, I always wanted to take a look inside the code! So far I've only ever decompiled/reverse Engineered gameboy advance games. I suppose IDA doesn't provide the luxury of decompiling for PPC as it does for ARM? |
iyenal |
| ||
Mole Multiplatform developer Level: 38 Posts: 62/362 EXP: 361908 Next: 8539 Since: 03-14-17 From: Europe Last post: 826 days ago Last view: 796 days ago |
I encourage you for this ASM decompiling.
Posted by Jesse IDA Pro can decompile ASM PPC ISA. PPC ISA don't use jump syntax but goto ? I didn't knew that, it looks like BASIC. ____________________ "I failed in some subjects in exam, but my friend passed in all. Now he is an engineer in Microsoft and I am the owner of Microsoft." -Bill Gates |
shibboleet |
| ||
Fire Mario DROP TABLE users; Level: 124 Posts: 4494/4661 EXP: 21280361 Next: 556240 Since: 07-07-12 Last post: 1511 days ago Last view: 524 days ago |
only 6.95, which hasn’t been leaked yet ____________________ a |
Super Hackio |
| ||
Red Super Koopa Normal user Level: 57 Posts: 842/876 EXP: 1401258 Next: 84670 Since: 10-05-16 From: The true North, Strong & free! Last post: 2031 days ago Last view: 1594 days ago |
So you actually PURCHASED IDA PRO? How much was it? ____________________ SMG RUN Progress: Not available here, for more information, check my Youtube Channel |
TheSunCat |
| ||
Bullet Bill Passively Working on a Mod Since 1998 Level: 44 Posts: 441/502 EXP: 584521 Next: 26764 Since: 05-13-17 Last post: 2021 days ago Last view: 450 days ago |
Pretty sure it is $1409.
shibboleet, how is progress going? |
mibts |
| ||
Panser =Josh65536 (Programmer) Level: 39 Posts: 292/331 EXP: 383322 Next: 21449 Since: 08-31-13 Last post: 2110 days ago Last view: 86 days ago |
Good luck with the reverse engineering. ____________________ Current hack: Excerpt from Super Mario 256 |
Main - Misc. ROM hacking - Super Mario Galaxy 2 - Reverse Engineering | Hide post layouts | New reply |
Page rendered in 0.060 seconds. (2048KB of memory used) MySQL - queries: 30, rows: 233/233, time: 0.011 seconds. Acmlmboard 2.064 (2018-07-20) © 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |