Register - Login
Views: 87802343
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
12-13-17 08:53:50 AM

Jul - NSMB Hacking (Archive) - Mario Vs. Luigi stage hacking New poll - New thread - New reply
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19Next newer thread | Next older thread
Deleted User
Original user deleted
Level: NaN


Posts: 37/-8234
EXP: NaN
For next: 0

Since: 07-26-07


Since last post: 10.0 years
Last activity: 7.0 years

Posted on 10-19-09 02:07:28 PM Link | Quote
We'll see when the surprise is finished.

All that is giving you a clue - the surprise is a NARC manipluation tool...
Ninji

Boomboom
Why did my user title say I'm a toaster anyway
Level: 84


Posts: 659/1988
EXP: 5459031
For next: 202921

Since: 07-26-07
From: Rogueport

Since last post: 161 days
Last activity: 152 days

Posted on 10-19-09 02:09:04 PM Link | Quote
Originally posted by TheKinoko
We'll see when the surprise is finished.

All that is giving you a clue - the surprise is a NARC manipluation tool...

Just to let you know - If all your tool does is extract/replace files, it's already been done, both by my own NARC Explorer (See my signature) and by Dirbaio in the latest WIP version of the editor.

If you can modify the file system as well, it might be genuinely useful - but I'm unsure how well it will work for NSMB.
Deleted User
Original user deleted
Level: NaN


Posts: 38/-8234
EXP: NaN
For next: 0

Since: 07-26-07


Since last post: 10.0 years
Last activity: 7.0 years

Posted on 10-19-09 02:10:17 PM (last edited by TheKinoko at 10-19-09 02:12 PM) Link | Quote
I'm forced to give another clue
The tool will let you add and remove files into NARCs, among other features
I'm already aware of the existence of your NARC explorer. If my tool did the same thing, I would not bother making it

If the file IDs inside the NARCs and all the shyt are really hardcoded, then we are going to need ASM hacking
But I prefer being optimistic
dirbaio
For future reference, "Responsible disclosure" isn't "acting like a douche about an exploit and demanding compensation".
Level: NaN


Posts: 128/-1288
EXP: NaN
For next: 0

Since: 07-28-09
From: Spain

Since last post: 6.0 years
Last activity: 5.0 years

Posted on 10-19-09 02:38:36 PM Link | Quote
well

I really think that this is NOT going to work. Do it, it will still be useful for other games that do not have hardcoded file IDs. But I am really convinced that this is NOT going to work

Good luck!
Ninji

Boomboom
Why did my user title say I'm a toaster anyway
Level: 84


Posts: 667/1988
EXP: 5459031
For next: 202921

Since: 07-26-07
From: Rogueport

Since last post: 161 days
Last activity: 152 days

Posted on 10-19-09 02:43:26 PM Link | Quote
Originally posted by dirbaio
well

I really think that this is NOT going to work. Do it, it will still be useful for other games that do not have hardcoded file IDs. But I am really convinced that this is NOT going to work

Good luck!

I agree with this pretty much.

Besides, shouldn't we try to have basic MP stage hacking working without problems first? Once we get that, we can try focusing on more advanced hacking involving it.

Even then, I'm unsure how much it's worth putting effort towards. There's a very small amount of people with two flash carts who are interested in hacking NSMB's multiplayer levels. Co-op would be interesting.. but I just don't see it happening.
Tanks

360? Yessum.
Level: 115


Posts: 3570/4170
EXP: 16620336
For next: 191028

Since: 07-09-07
From: VA

Since last post: 5.0 years
Last activity: 5.0 years

Posted on 10-19-09 02:45:39 PM Link | Quote
I, too, do not think it will work from what I understand... Maybe if you just came out and explained to us what you're planning, we could actually get to the bottom of this.

As of right now, here's what I think: The file limit within the NARC is set. Unless you completely crack the format, I don't think it will be of use. And plus, once you get more files inserted, how do you expect MvL to read the extra files? It would require ASM.
dirbaio
For future reference, "Responsible disclosure" isn't "acting like a douche about an exploit and demanding compensation".
Level: NaN


Posts: 129/-1288
EXP: NaN
For next: 0

Since: 07-28-09
From: Spain

Since last post: 6.0 years
Last activity: 5.0 years

Posted on 10-19-09 02:46:40 PM Link | Quote
for me basic MvsL works fine. I have been playing a multiplayer hack with a friend and it works like a charm with multicarts. I will try to test the tileset replacement with him soon
dirbaio
For future reference, "Responsible disclosure" isn't "acting like a douche about an exploit and demanding compensation".
Level: NaN


Posts: 130/-1288
EXP: NaN
For next: 0

Since: 07-28-09
From: Spain

Since last post: 6.0 years
Last activity: 5.0 years

Posted on 10-19-09 02:47:43 PM Link | Quote
Originally posted by Sucatraps
I, too, do not think it will work from what I understand... Maybe if you just came out and explained to us what you're planning, we could actually get to the bottom of this.

As of right now, here's what I think: The file limit within the NARC is set. Unless you completely crack the format, I don't think it will be of use. And plus, once you get more files inserted, how do you expect MvL to read the extra files? It would require ASM.


yeah, exactly. and adding files will be very hard. it will require to rebuild the FAT and the FNT and calculate all the new offsets... and I doubt the game will load the new files.
Ninji

Boomboom
Why did my user title say I'm a toaster anyway
Level: 84


Posts: 668/1988
EXP: 5459031
For next: 202921

Since: 07-26-07
From: Rogueport

Since last post: 161 days
Last activity: 152 days

Posted on 10-19-09 02:50:06 PM Link | Quote
Originally posted by dirbaio
Originally posted by Sucatraps
I, too, do not think it will work from what I understand... Maybe if you just came out and explained to us what you're planning, we could actually get to the bottom of this.

As of right now, here's what I think: The file limit within the NARC is set. Unless you completely crack the format, I don't think it will be of use. And plus, once you get more files inserted, how do you expect MvL to read the extra files? It would require ASM.


yeah, exactly. and adding files will be very hard. it will require to rebuild the FAT and the FNT and calculate all the new offsets... and I doubt the game will load the new files.

It actually doesn't seem that hard to me. Adding them to the NARC won't be the hard part - getting the game to use them will be.
dirbaio
For future reference, "Responsible disclosure" isn't "acting like a douche about an exploit and demanding compensation".
Level: NaN


Posts: 131/-1288
EXP: NaN
For next: 0

Since: 07-28-09
From: Spain

Since last post: 6.0 years
Last activity: 5.0 years

Posted on 10-19-09 02:53:10 PM Link | Quote
yeah...
but maybe there is some code that handles file loading that could be hacked to load files from the main nitro filesystem even in multiplayer mode. it would not be that hard and it would unlock all the things for multiplayer levels
Deleted User
Original user deleted
Level: NaN


Posts: 39/-8234
EXP: NaN
For next: 0

Since: 07-26-07


Since last post: 10.0 years
Last activity: 7.0 years

Posted on 10-19-09 02:55:00 PM Link | Quote
You're so pessimistic... I don't like pessimistic people. They depress me.
We'll see, I said.

I may be wrong, though, but I think NSMB relies on filenames when it is NARCs.

Yeah, I may be wrong, seeing as the files in the level NARCs are always stored in the same order:
- Tileset object conversion data
- Level header and BGDAT
- Tileset change data
- Rear background data
- Front background data
- Tileset data
- Tileset Map16 data

That makes me hesitate on my statement. The file IDs for that could be hardcoded. But if it's the case, then it is possible to put different tileset/background files... as long as they have the same IDs as the old ones.

But it is going to be problematic for sprites... if the game also uses hardcoded IDs for them. Unless we can find the table or whatever it is using to map sprite numbers to file IDs... (by the way, what about sprites that require multiple files? how would such a table deal with that?)

The easiest way to find the answer to our questions is to try. This is the whole purpose of my tool.
Ninji

Boomboom
Why did my user title say I'm a toaster anyway
Level: 84


Posts: 669/1988
EXP: 5459031
For next: 202921

Since: 07-26-07
From: Rogueport

Since last post: 161 days
Last activity: 152 days

Posted on 10-19-09 02:57:29 PM Link | Quote
Originally posted by dirbaio
yeah...
but maybe there is some code that handles file loading that could be hacked to load files from the main nitro filesystem even in multiplayer mode. it would not be that hard and it would unlock all the things for multiplayer levels

This seems feasible (For multicart mode - Obviously not download play) but finding it is the problem.
No$GBA's multiplayer support is totally hosed and unusable so I don't know where I would find the code.

Originally posted by TheKinoko
That makes me hesitate on my statement. The file IDs for that could be hardcoded. But if it's the case, then it is possible to put different tileset/background files... as long as they have the same IDs as the old ones.

I thought I did say this.. You can already do this using NARC Explorer, and using the latest WIP editor.

Originally posted by TheKinoko
But it is going to be problematic for sprites... if the game also uses hardcoded IDs for them. Unless we can find the table or whatever it is using to map sprite numbers to file IDs... (by the way, what about sprites that require multiple files? how would such a table deal with that?)

I mentioned this earlier a few posts up as well.
Deleted User
Original user deleted
Level: NaN


Posts: 40/-8234
EXP: NaN
For next: 0

Since: 07-26-07


Since last post: 10.0 years
Last activity: 7.0 years

Posted on 10-19-09 03:01:29 PM Link | Quote
I don't think the sprites used for multiplayer are totally hardcoded. It would have been a pain for the Nintendo developers. Each time they decided to use another kind of sprite they would have to modify the game's code.

In the worst case, there's a table somewhere which maps sprites numbers or whatever to file IDs inside the NARC, and we'll have to find that table.

In the best case, the game relies on filenames. But there are chances that it isn't the case
Ninji

Boomboom
Why did my user title say I'm a toaster anyway
Level: 84


Posts: 671/1988
EXP: 5459031
For next: 202921

Since: 07-26-07
From: Rogueport

Since last post: 161 days
Last activity: 152 days

Posted on 10-19-09 03:03:51 PM Link | Quote
Originally posted by TheKinoko
I don't think the sprites used for multiplayer are totally hardcoded. It would have been a pain for the Nintendo developers. Each time they decided to use another kind of sprite they would have to modify the game's code.

In the worst case, there's a table somewhere which maps sprites numbers or whatever to file IDs inside the NARC, and we'll have to find that table.

In the best case, the game relies on filenames. But there are chances that it isn't the case

Perhaps they decided on the level designs before coding the actual system in?

It's possible but quite unlikely that there's a table which maps regular file IDs to file IDs inside the NARCs. The only issue however is that there are multiple NARCs - not just one.
Deleted User
Original user deleted
Level: NaN


Posts: 41/-8234
EXP: NaN
For next: 0

Since: 07-26-07


Since last post: 10.0 years
Last activity: 7.0 years

Posted on 10-19-09 03:06:31 PM (last edited by Sucatraps at 10-20-09 08:00 AM) Link | Quote
If that shit is totally hardcoded, it is going to be a huge pain... let's hope it isn't the case.

As I already mentioned, the best way to see that is to try out. Talking here doesn't code my tool. I should get it finished so we can test all that soon.
Ninji

Boomboom
Why did my user title say I'm a toaster anyway
Level: 84


Posts: 753/1988
EXP: 5459031
For next: 202921

Since: 07-26-07
From: Rogueport

Since last post: 161 days
Last activity: 152 days

Posted on 10-20-09 11:49:19 AM (last edited by Treeki at 10-20-09 11:50 AM) Link | Quote
I just looked back through some of my old docs and found a table to do with sprites which I had found when looking for the modifier data.

It's located at 0x20C22B8 in RAM once loaded. I'm not sure exactly what it does, but I wrote up a quick script to parse it into data (The first number is the sprite ID, the second number is the value in the table): http://treeki.shacknet.nu/romhacking/weirdspritetablelist.txt

This probably doesn't have anything to do with multiplayer - but it might help us understand more about the sprite system.
dirbaio
For future reference, "Responsible disclosure" isn't "acting like a douche about an exploit and demanding compensation".
Level: NaN


Posts: 132/-1288
EXP: NaN
For next: 0

Since: 07-28-09
From: Spain

Since last post: 6.0 years
Last activity: 5.0 years

Posted on 10-20-09 12:43:55 PM Link | Quote
hmmm... that makes me wonder. Is it possible that its a table of the addresses of the code that handles the sprites? because it doesnt seem a file id table, and sprites that do the same (unused or beta level sprites) have the same number...
Deleted User
Original user deleted
Level: NaN


Posts: 42/-8234
EXP: NaN
For next: 0

Since: 07-26-07


Since last post: 10.0 years
Last activity: 7.0 years

Posted on 10-20-09 12:45:17 PM Link | Quote
Interesting... those numbers could be entry indexes into another table.
For example, see the first 20 sprites. I tested them; the 10 first ones crash the game, the 10 last ones don't.
In your list, the 10 first ones have 21 as number, the 10 last ones have 352.

Probably, the 'other table' contains stuff like addresses of the initialization/rendering/interaction/... procedures and other interesting stuff... can you trace reads from the first table? It is quite possible that we manage to reverse engineer all the sprites with that Even if it doesn't help with multiplayer, it will atleast be a good step
dirbaio
For future reference, "Responsible disclosure" isn't "acting like a douche about an exploit and demanding compensation".
Level: NaN


Posts: 133/-1288
EXP: NaN
For next: 0

Since: 07-28-09
From: Spain

Since last post: 6.0 years
Last activity: 5.0 years

Posted on 10-20-09 12:57:35 PM (last edited by dirbaio at 10-20-09 01:02 PM) Link | Quote
yeah... What is its format exactly? I get this:

020C22B0 0A 00 00 00 18 00 00 00 15 00 15 00 15 00 15 00 ................
020C22C0 15 00 15 00 15 00 15 00 15 00 15 00 45 01 45 01 ............E.E.
020C22D0 45 01 45 01 45 01 45 01 45 01 45 01 45 01 45 01 E.E.E.E.E.E.E.E.
020C22E0 16 00 EF 00 45 00 17 00 18 00 19 00 1A 00 F8 00 ....E...........
020C22F0 23 00 73 00 2B 00 1C 00 24 00 ED 00 97 00 74 00 #.s.+...$.....t.
020C2300 25 00 28 00 29 00 72 00 27 00 09 01 2C 00 2D 00 %.(.).r.'...,.-.
020C2310 2E 00 0C 01 68 00 81 00 32 00 33 00 34 00 35 00 ....h...2.3.4.5.
020C2320 36 00 37 00 39 00 3A 00 41 00 42 00 83 00 44 00 6.7.9.:.A.B...D.
020C2330 45 01 45 01 85 00 84 00 49 00 87 00 F4 00 4A 00 E.E.....I.....J.
020C2340 A1 00 A2 00 A4 00 A5 00 A6 00 A9 00 AA 00 AB 00 ................
020C2350 AC 00 AD 00 AE 00 AF 00 B1 00 45 01 B3 00 F0 00 ..........E.....
020C2360 31 00 2F 00 B4 00 45 01 F5 00 5B 00 6F 00 B6 00 1./...E...[.o...
020C2370 4B 00 4D 00 5A 00 FE 00 2D 01 45 01 0E 01 B7 00 K.M.Z...-.E.....
020C2380 0F 01 14 00 67 00 4F 00 E1 00 E2 00 50 00 F2 00 ....g.O.....P...
020C2390 F6 00 6E 00 F7 00 E3 00 45 01 70 00 EA 00 B9 00 ..n.....E.p.....
020C23A0 51 00 05 01 EB 00 E4 00 63 00 45 01 64 00 65 00 Q.......c.E.d.e.


EDIT: using Desmume and the U rom...
EDIT: Ah, i see. unsigned 2byte shorts... I am going to test if changing the table at runtime breaks some sprites...
dirbaio
For future reference, "Responsible disclosure" isn't "acting like a douche about an exploit and demanding compensation".
Level: NaN


Posts: 134/-1288
EXP: NaN
For next: 0

Since: 07-28-09
From: Spain

Since last post: 6.0 years
Last activity: 5.0 years

Posted on 10-20-09 01:09:05 PM Link | Quote
yeah, it seems a pointer to some code. I go to the location of goombas and change its number to the Koopas and all goombas in game turn into Koopas. Awesome!
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19Next newer thread | Next older thread
Jul - NSMB Hacking (Archive) - Mario Vs. Luigi stage hacking New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 2f1bc75 [2017-08-27]
©2000-2017 Acmlm, Xkeeper, Inuyasha, et al.

27 database queries, 5 query cache hits.
Query execution time: 0.160551 seconds
Script execution time: 0.018863 seconds
Total render time: 0.179414 seconds