![]() | ||
Views: 24,458,043 |
Home
| Forums
| Uploader
| Wiki
| Object databases
| IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search |
04-20-25 04:48 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: 21746178 Next: 90423 Since: 07-07-12 Last post: 1709 days ago Last view: 722 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: 1447957 Next: 37971 Since: 10-05-16 From: The true North, Strong & free! Last post: 2229 days ago Last view: 1792 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: 21746178 Next: 90423 Since: 07-07-12 Last post: 1709 days ago Last view: 722 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: 1447957 Next: 37971 Since: 10-05-16 From: The true North, Strong & free! Last post: 2229 days ago Last view: 1792 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: 21746178 Next: 90423 Since: 07-07-12 Last post: 1709 days ago Last view: 722 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: 1447957 Next: 37971 Since: 10-05-16 From: The true North, Strong & free! Last post: 2229 days ago Last view: 1792 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: 21746178 Next: 90423 Since: 07-07-12 Last post: 1709 days ago Last view: 722 days ago |
what ____________________ a |
Super Hackio |
| ||
![]() Red Super Koopa Normal user Level: 57 ![]() Posts: 794/876 EXP: 1447957 Next: 37971 Since: 10-05-16 From: The true North, Strong & free! Last post: 2229 days ago Last view: 1792 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: 203394 Next: 3048 Since: 07-03-17 From: Good Egg Galaxy Last post: 1931 days ago Last view: 442 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: 605561 Next: 5724 Since: 05-13-17 Last post: 2219 days ago Last view: 648 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: 1447957 Next: 37971 Since: 10-05-16 From: The true North, Strong & free! Last post: 2229 days ago Last view: 1792 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: 605561 Next: 5724 Since: 05-13-17 Last post: 2219 days ago Last view: 648 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: 54 Posts: 685/688 EXP: 1175824 Next: 58046 Since: 09-05-13 Last post: 2738 days ago Last view: 2300 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: 39 ![]() Posts: 62/362 EXP: 374656 Next: 30115 Since: 03-14-17 From: Europe Last post: 1024 days ago Last view: 994 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: 21746178 Next: 90423 Since: 07-07-12 Last post: 1709 days ago Last view: 722 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: 1447957 Next: 37971 Since: 10-05-16 From: The true North, Strong & free! Last post: 2229 days ago Last view: 1792 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: 605561 Next: 5724 Since: 05-13-17 Last post: 2219 days ago Last view: 648 days ago |
Pretty sure it is $1409.
shibboleet, how is progress going? |
mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 39 ![]() Posts: 292/331 EXP: 392573 Next: 12198 Since: 08-31-13 Last post: 2307 days ago Last view: 284 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.075 seconds. (2048KB of memory used) MySQL - queries: 28, rows: 232/232, time: 0.019 seconds. ![]() © 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |