News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - luigi1er

Pages: [1] 2
Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: May 18, 2015, 11:05:24 am »
I like what you've done so far! Is there any way to figure out/modify what items enemies drop after a battle (and the rates of those items dropped), or how many turns an enemy is afflicted with a status ailment (Stop, Sleep, Shock, Dizzy, Shrink)? Just asking.

Thanks. I have never tried to see if we can modify enemies' drop after a battle and the rates either. The best way to do it would be to look for items' values nearby the enemy's formation or their code in areas data. As for turns caused by items, I'm pretty sure it's linked to their own data and not to enemies', so I'm not sure where you can do it because I think they are really far away each other.

Always nice to see some tools being made. Some advice I would give you would be to add a way to toggle what address the data is being read at, in case someone wants to move around the data in the game. I would suggest storing the addresses in an external file if you haven't already. Other than that you are doing a great job and keep up the good work!

Thanks. I let my adresses in an external file as you have mentioned, except they can be used to replace about twenty adresses in the same time, so your idea to make adresses visible somehow isn't a bad idea since I assumed people could figure out where the values go by refering to the files to locate them.

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: April 30, 2015, 09:23:13 pm »
Hi guys :D, I'm back with a new version of my tool. I added all or almost all enemies and their attacks with the status. I also added all badges shops with the unused badges, but as they have no descriptions it's still a little glitchy if you choose to take them in shops. Also, I verified what happens when you have two same badges in the menu : when you activate one, the other is also actived, so duplicating HP Plus or something like that is useless :(.

The assignment of descriptions is complementary, so I hope it doesn't trigger any bug when you will try it out. I want to make remember people that I don't know how to modify the cost of badges in Toad Town, that's why there is no slots for that. Now, my enemies module seems less big than this one, but they have much stuffs both. :laugh:

That's it. I'm not sure what I will do now. I don't think I will upgrade my tool soon (for major things in any case). If you find a bug which is untientional, you can write so I would be able to fix it. I will take a break and see if other hackers can bring other interesting things that I wouldn't know on the game. On that, good day :thumbsup:

Link :

EDIT : An item is mislabed in charts.xml and can main to a crash. To avoid it, just rename "Honey SYrup" by "Honey Syrup".

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: March 23, 2015, 03:33:57 pm »
Hi guys :D, today I bring along with me a nearly completed version of my tool. I fixed many things like : many defenses management, many hp, irregular attacks effects and the missing items... I still miss a few data of Bowser and Jr. Troopa 1, but everything is pretty done. Also, I locked some inputs when there are no data related to them to avoid issues.

With the recent news around PM64, I think I will stop upgrading my tool as many others will be able to do much more than what I can offer. Although, I will finish my list of enemies soon and after I will publish it like a tool I guess. See you next time 8)

Personal Projects / Re: Paper Mario Modding Suite -- Star Rod
« on: February 15, 2015, 07:07:29 pm »
Wow, this is amazing. I'm looking forward to seeing how much can be done with PM64 and your tool's features. It got my interest :)

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: February 09, 2015, 02:02:48 pm »
Hi guys :D, I know it's been a long time since I post my last post so I bring some news even if it's not something of big. To begin, I did some researches to change the areas' skybox, but I'm 100% sure now it's not inside the data block where is the music value. Also, I didn't succeed to find where are the level cap adresses, I just found the first one at 0x18cdab (if someone want to play with it) which only serves to get all star points even if you level up at the final level.

For the stats, I have done 60% of the collect. It's a bit annoying to do the rest (especially with the colored magikoopas) because enemies are in many spots. Furthermore, because some enemies have : no attacks, irregular attacks pattern, many defenses and many hp (colored magikoopas :() I will have to tweak a lot my program once I'll be done with the collect.

There is the point, hopefully it doesn't take too long. I will let my file since I progressed although. See you next time 8)

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: January 04, 2015, 08:33:47 pm »
Hi guys :D, today I complete my post about stats of chance with the fear and Up & Away and etc... For this, I will use this picture to explain what is generally enemies pattern, this is a regular goomba in Goomba's Village.

1st colors group :
    Black = Defense's Value
    Yellow = Stats Group
    Orange = Stats Pattern
    Brown = Respectively : Sleep, dizzy, shock and clock
    Blue = Other pattern below the group

In an enemy's data, you're supossed to find that. At the beginning, you can find the blue pattern to know where is the yellow one (before it). Because the 9 "d" can be "." you can use the orange pattern, vertically 09 04 0B 0A 1F, to know where is the first "d". Brown adresses are chances of enemies to be afected by status, "shock" means when enemies are paralyzed. I learned status are shared by attacks and items. Ex : Mamar's Lullaby's rate is the same than the sheep item one, Dizzy Dial is the same than Dizzy Toss from Kooper. The black adress is the defense adress. It's not always true, but, generally, it's two units above the orange pattern. Otherwise it's a bit above.

2nd colors group :
    Red = Respectively : Name, star points and HP
    Green = Respectively : Fear's % and Up & Away's %

Thanks to Scelux, I learned that star points are aside of HP. The name is litteraly the enemy name's id. Nothing to say about green adresses besides they seem to be always +0x20 after the HP's adress.

I think it's all I can say about the attribution of stats. There's unfortunately exceptions to that too. It seems modifying values in the yellow pattern doesn't change anything for the 6th Jr. Troopa. I don't think I will implement it sooner, I'm considering it's more important than I continue to search and complete my database. So, see you next time :)

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: December 17, 2014, 02:07:34 pm »
Hi guys :D, today I bring some new things. There is the new version of enemies file that contains more enemies in Chp 2, Chp 6 and here and there.

I have also found the stats for the luck to make running out enemies with fright jars and succeeding to use Up & Away. I tried to frighten Kent C. Koopa and even if it said nice he didn't run out. Looks like if the enemy doesn't have the animation with this item, it stays. :'( I'm not planning to integrate it soon, but it could be something to considerate to integrate in a tool. :)

I also tried to edit the level cap, but I didn't succeed. According to me, there are five stats for that : HP cap, FP cap, BP cap, level cap in a battle stage and in the overworld. The last two may be confusing. The first is when you are at 26 and you pass over 99 star points in a battle, the counter stops to 0. If you increase that stat, the counter doesn't stop at 0 if you have more, but there is an overworld level cap which reinitializes the counter when you actually level up to 27 (meanwhile the upgrade blocks appear or if you change manually your level in MSH anywhere). I just have the 4th, the 5th would be cool to catch.

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: November 20, 2014, 09:40:20 pm »
Hello guys :D I bring today an update of my data. You could overwrite the old XML file to see the new enemies. This is still incomplete but it's decently more filled than what it was before.

Just a little word about your answer Zoinkity, I'm not sure if it confirms or not my theory and I'm not familiar with pointers and instructions of that kind of thing. Also, I prefer editing the rom directly otherwise my founds would sound meaningless to me. Free to everyone to investigate on it :)

I will take this opportunity to clear some things about the defense, because there're a few people that are complaining about the fact there are wrong data while it's not the case. The first thing is obviously to take this sort of rom : Paper Mario (U) [!].z64, taking anything else is subject to lead to a crash. After, defense stats are really annoying since there can be 3 defenses for an enemy. It only happened on Koopas, I think, but changing a defense value can change one type of attack. So I may be wrong, but it can be for an other reason.

- Mario's Jump (with some partners attacks)
- Mario's Hammer
- Partner Attacks (verified with Parakarry's 2nd attack)

EDIT : Seems like I can modify Mario's Jump at some places by just 1 and I don't manage to check it everywhere, it's how defenses value hunting is :'( (at least for the 00 ones)

Unfortunately, some enemies couldn't join the list soon because they have different troublesome data. The different defenses are an example, but there's also the fact that a few attacks don't have the pattern I use to locate them, even none. The problem is attacks status aren't at the same distance of attacks than normal ones, which cause a crash. As I'm more focusing on collecting data than my tool it will take a moment before I add Jr. Troopa 1 and Ultra Bowser.

Last thing, enemies attacks on partners are alike to attacks on Mario (damages amount = stun turns). Changing status effects doesn't seem to change anything, so it's included as well.

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: November 11, 2014, 10:17:57 am »
Hi guys :D, I bring today a new of my research. However, it's not what we can call a discovery because there are no ways to test it. So, it's more like a question I'm asking to advanced hackers than a new thing. To begin, I was looking for the number of bars you need to use a Star Spirit attack and as I get exhausted I decided to do somehing else than looking randomly adresses. With text groups, I know titles and descriptions data of : items, badges, allies, places, Spirit Stars. I supposed there are data alongside them, ex : Fire Flower (title = 00260000) would be near 03 because it does 3. As I began, I found interesting things at around 0x60000.

Around there, there are maybe a full database. Here are a few examples :
Code: [Select]
0025 is the objects description
0026 is the titles group

Looking for items values

Fire Flower (0x63CE0-63CFF)
(00 26 00 00) 01 20 00 00 00 00 80  02  00 04 00 00
(00 25 00 00) 00 23 00 00 10 06 00 (03) 00 00 00 00

Shooting Star (0x63D40-63D5F)
(00 26 00 04) 01 24 00 00 00 00 80  02  00 0F 00 00
(00 25 00 04) 00 23 00 04 10 06 00 (06) 00 00 00 00

001D is a general group
Respectively the title's attack and its description

Looking for number of needed stars bars

Smooch (0x6AE10-6AE23)
(00 1D 00 19) 00 00 00 08 (00 1D 00 25) 00 00 00 00 0A (03 03) FF

Time Out (0x6AE24-6AE37)
(00 1D 00 1A) 00 00 80 02 (00 1D 00 26) 00 00 00 00 0A (02 02) FF

002B is the allies attacks titles group
0028 is the allies descriptions group

Looking for FP values

Power Bomb (0x6AFDC-6AFEF)
(00 2B 00 0A) 00 00 80 04 (00 28 00 1E)(00 28 00 25) 0B (06) 00 03

Mega Bomb (0x6AFF0-6B003)
(00 2B 00 0B) 00 00 80 02 (00 28 00 1F)(00 28 00 26) 0B (08) 00 03

So, as you can see it would be logical to conclude there is a bunch of useful adresses there, but there's a problem. No matter what I modify (even a 00 in the middle of nowhere) it says I'm in a loop and the emulator can't fix it. :huh: It's always like it around sub 0x200000. So I would like to know if it's normal and if these values can be useful or not. Otherwise, I would get back on my search, but it will have soon reached the state of testing each byte. :banghead:

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: November 05, 2014, 09:02:48 am »
In fact, the item slot format is more like : 00 00 00 8F 00 00 00 0A 00 24 00 26

And there is their function :
8F = Item ID (Sleepy Sheep)
0A = Item Cost (10)
24 = Text Group (Descriptions)
26 = Item Description

IDs and costs have 4 bytes (that would explain the holes between them). Also, IDs aren't increased from left to right. Example : Fire Flower is 0080 and not 8000. You're right, IDs and descriptions don't follow themselves correctly, but it's not like it's necessary to understand why. I fill up my list with these differences, it doesn't matter more than that.

I didn't talk about text groups for the moment because it's a very big subject. For any texts in the game you have to set a group and pick up a text. Here is a list of some groups :

23 = Objects Description
24 = Normal Objects Description
25 = Objects Description
26 = Items Name
28 = Allies Attacks Description
2B = Allies Attacks Titles
1D = Texts (a huge general group)

So it can explain what does "24".

My question is: is there any demand for these offsets? One could find them using information in this thread, but it's fairly time consuming. Is there an existing list of offsets for these levels (and their attributes like exit destinations and music tracks) that already exists?

For the music there is already someone who gathered all musics IDs, check in past posts. Also, I already have a big list of exits so it's likely I have what you got. But if you want to help, you can use these both files to make easier the collect of data. Don't hesitate if you have others questions. for Areas Data for Areas ID

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: October 26, 2014, 12:02:30 am »
Hi guys :D, today I can post a WIP of my tool to get feedback from you. Of course, my tool isn't finished yet because I don't have all enemies' stats so it can't be used for an accurate hack. Also, it will allow me to know if there are bugs.

I should precise a thing (though I can talk about it in a Readme.txt), but attacks that can make Mario frozen have a glitchy rate. Example : if you can mess with rate of poison and the number of turns Mario is sick, modifying rate of freezing make the number of turns you're affected always at 3, nonetheless what is the turn byte's value. For this reason, I lock this feature when the status equals "Frozen", if it's a bad idea I would like to know. :)

So there is the link, unfortunately I have some issues with Ultra Bowser and Kent C. Koopa. Ultra Bowser's attacks status are in an arbitrary-like place unlike normal attacks, exception call. :P For Kent C. Koopa (it's not limited to him), attacks that make Mario's ally stunt isn't a status but an attack as well, so I don't know if I will add an attack for Mario and the ally or add an extra counter for this attack... :-\

I will have to adjust my tool again (changing the name maybe?), but I hope that you will enjoy that tool. If you have an idea to improve it or to report something you can PM me or posting, it would be great than my tool get better and be able to be reused anywhere else. 8)

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: October 09, 2014, 08:59:19 am »
Hi guys :D, since I got a PM encouraging me to continue my hacking tool, I get back to work and bring today a new about it.

I added a shops' feature where you can change the item, the price and the description which is independant. This works for all 9 shops in the game. However, for the description I will ask to testers to give me feedback because changing descriptions is a little bit tricky. :P

Description for items in shops needs 3 bytes. The 1st one is for the type of text you want : 24 is shop's descriptions, 26 is the label of objects, these 2 include badges as well. The 2 others are to specify the text itself. [0000] is Fire Flower and [002a] is Fright Jar. The problem is when you change the description for a item which is not normally in a shop, the text is either "no data" or "nothing". However, if you change the 1st byte to 23, it's the same excepted the text is there for all items. I cannot tell if it's a really big matter if I decide on purpose to change 24 to 23, but without that users couldn't choose items from recipes because of the descriptions issues.

I will probably wait some time before posting a pre-released version because I feel my software's structure is really bad and I want to continue to optimize it. Also, if shops' data were easy to gather, my ennemies' data are very fragmentary and I didn't work on it since the time I posted the first screenshot of it on this topic.

So that's all, I hope my changes won't take so long, see ya folks. ;)

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: September 24, 2014, 08:13:34 am »
Hi guys :D Today I will tell you all results about my researches about sprites in areas. This is a bit better than the last time because I can do many more things. So here we go :).

I will explain my stuffs with the code's image in the last post. A sprite's pattern has always 16 series of 4 bytes. I will pick up a serie and explain each byte because there is a utility for each one. The 1st [83] is the id of the "spritesheet", it's connected with the 2nd [00] which is a variant index of the "spritesheet". The two bytes decide which sprite will be shown. In this case, [83] is a normal Toad in Toad Town and [00] next to it decides he is red. With the second you can, generaly, change the color of the sprites like : Ninjakoopas, Shy Guys, Clubbas, etc... The 3rd [01] determines which animation will be played, [01] is generaly an idle animation. The 4th [00] separates two series. In function of which animation the sprite will play, it will load the approppriate serie.

When you enter into a area (or get out from a battle) the sprite will load its spritesheet once and from a specific serie. If you enter into an area (or run away) the sprite will load the #1 serie to play the idle animation. Afterward if the sprite chases you, it loads the #4 but don't refresh its spritesheet, but it DOES for the variant byte. You should just replace all of firsts 2 bytes if you want to deal easily with it. 8)

So, do we need all theses 16 series? The answer is I'm not sure, but I'm pretty sure there are similitaries for some of them. I do a list with all functions of them from 1 to 16 :

#1 : Idle & Run Away
#2 : Walk
#4 : Chase
#7 : Death*
#8 : Hit
#9 : Before Attack
#10: Attack
#11: After Attack

Death is only used to load the variant and the animation.

There can be more functions, I would need to do more tests. Notice, they are for ennemies, that involves exceptions. :P For NPC, there are functions to load animations which aren't in the patterns. Example : if you want to talk to a NPC, a function above the pattern will load an animation. In some cases, one function can load animations for many sprites.

Now, I will talk about the big issue you can have with messing with sprites. According to me, the game has a limit about the number of spritesheets it can load. More you load spritesheets, more it leads to a crash. Worse than that, some of spritesheets (especialy the bosses) are heavier than normal ennemies. That's means if you can load maybe 5 SS you can barely load 2 bosses (which explains why I was just able to load General Guy). However, the number of sprites which have a heavy SS doesn't matters and to have many variants with the same SS doesn't count as loadings.

I would add all that stuffs can be use to search data linked to animations in area's data and ennemy's data. That's all for now, there is a image of what it looks like if you're lucky, because of that limitation. See you next time :D.

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: September 13, 2014, 05:09:51 pm »
Hi guys :D, today I will announce an info about blue pipes and a new thing of possibilities.

To begin, I can say I'm able to fix the problems with moving a blue pipe. Did you remember my article about DD (direction data), it's the same thing execepted the measures are shifted. Example : if your blue pipe's X is [00 96] and DD's X is [43 16], making 96 to b6 makes 16 to 36. I also found where the blue pipe chooses its exit and its DD, but it's useless unless you want to create your own.

Otherwise, maybe I will begin the hack of sprites in areas, though it's very VERY difficult. :P All my knowledge is very basic, but it's already very good. On the next picture you can see what is a typical pattern of sprite in an area. Notice, sprites data are scattered throughout the area data, so it's impossible to get them very efficiently... What you see in black is a function which has 2 functions : the first byte is a id, "02" means it's the 3rd one in the row. The other is the two lasts bytes. I have theories but nothing of consistent. In red it's the position in XYZ, they are like blue pipe position setting. Finally, the hardest is the blue section where we have a bank of animations sticked together. "83" is the "spritesheet" used for the sprite. Example : 7f = Crystal King, 83 = Toad and 76 = General Guy. The byte after "83" is for variants like Ninjakoopas and Toad (colors). Others things are unknown, but in general only the first ones matter probably because there are always less animations than 16. Notice, if you can find the blue section in the right array, then you can easily find any others patterns. :)

Beside that, I tried to change an ennemy for an other, but it will be very difficult because data are not dynamic. So, if you want to change a pokey for a bandit, you will have to fix his : skin, hitbox, animations, behaviors, etc... I tried to show you what you can do with the next picture. Like you can see, I moved some toads in X and Y (he walks in air). I didn't mention it, you can see General Guy because I changed the "spritesheet" byte, but changing the "spritesheet" byte leads to a crash in 99% of cases. :o So that's all folks, it's an important source of search. I will continue slowly but surely. ;)

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: August 19, 2014, 11:47:32 pm »
Hi guys, there are some things I would like to say in this new. To begin, I would like to thank Rew for his work to make a full tracklist on Paper Mario 64, I invite everyone to look over at to see the results. So, I just want to say because I will come back to school I will have to slow down my researches for a long time. :P Here are the last things I have found on the game, others things aren't enough accurate to talk about them.

I managed to get all interactive objects we can find in any areas along with save blocks and health blocks :

It's not quite new because I already did a demo with the health blocks, but this time there're very many more objects to mess with. My next trial will be to understand the process of some of them because they just don't have only positions as paramaters, otherwise I would be able to switch a blue pipe into a tornado easily. I did some tests and that brings out some interesting things :
  • When you move a blue pipe, the trigger doesn't follow it.
  • If you move a wooden panel and let it intact, the hole leads you to an OOB.
  • If you tap a hammer block which was a spring box, you will be although ejected.
  • A star piece hole is independant from the ground.
Anyways I will continue to bring discoveries around theses objects. See ya folks :)


Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: August 04, 2014, 02:01:03 pm »
Hi guys, as promised I will provide infos about manipulating the destinations to change the maps of Paper Mario 64. So for this time I will give real adresses because I use more visual clues and because the patterns vary. The data are taken from "Windmill Area".

To begin, I will talk about "directions". The directions data (DD) are the scrypted moves of Mario when he enters or goes away from a loading zone. The DD are well written : each DD occupies a row and begins at the beginning. There are 4 params of 2 bytes separate by 2 [00] : X, Y, Z and Angle. The first 3 are the Mario's position in the new area and the angle is where Mario heads. This range is where they are : 0xbeec80-0xbeecbf. There are 4 : Windmill Door, East, West and Getting the card. Finally, they have an ID in number fairly recognizable : 00, 01, 02 and 03.

Notice, changing it is generally a bad idea, it messes up the process. The only example where it's interesting is when the exit is one way and doorless like when Mario falls from tornadoes.

And now I will talk about the manipulation of exits destination. For each exit, there's 2 bytes that have important functions... actually 3, but as the DD fit well with exits, they should remain with their exit. The first determines which destination will be loaded (ex: arn_08) and the second which exit Mario will go away in the new area. I will explain later how that can be interesting. Here is a table for all the matter :


The adresses are where the datas are. The destinations are where the exits lead. The values are the values at the adresses. There are kind of pointers which go to find destinations at the end of area data. They are ascending and fit with the order of this general pattern, in this case 4 leads toward kmr_23 and arn_03 and c toward arn_08 and mim_12 :

Code: [Select]

Finally, exits correpond at the exits ID in the new area. Ex: 02 at kmr_23 means you will have the Getting Card cutscene with Skolar because he is the third Star Spirit. They are always 4 bytes after the adresses over there.

Now I will just give some examples of what you can do with all this news. Like you can see, destinations are written once, but in Forever Forest many ways can lead you at the beginning. It means multiple ways lead at one mim_01 at a specific exit where you can easily go out of the forest. So you can change it to make all exits correct or just one. In more, if you have an area which have 2 exits that lead toward a same area, you can make them pointing on two different areas.

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: July 27, 2014, 03:01:21 pm »
I will try to clear up all music stuffs within this reply : "Oasis" is unfortunately like dark areas setting which I'm blocked. I figure out in the oasis area you can play the normal music by switching 43 to 24, but if you do the opposite the game will crash, and I assumed it would work in both ways. :-[ It's not the only exception though, I have problems with "Lava Piranha's Fight" and "Heart Pillar" is tricky too because I found it without pattern and it's surrounded by a lot of strange bytes. Yeah I said there were many exceptions... I cannot explain them yet.

For the Toad Town variations it will be very tough to know for some reasons. 1st - It seems they are not affiliated to any patterns, so it's like the "Heart Pillar". 2nd - It seems they aren't main musics, they are surely variations. Even if I suspect they are in the tight section of the area (at the beginning), I don't know what searching as values so it's like I would find them by chance. It's not like there's nothing else to find out, I'm always looking for battle musics that are loaded within battles like chp 1 and 5. 8)

Otherwise, what do you mean about USF? I don't use it, I use many XML files for areas, musics and etc... and do my tests with them, so I don't know if you're interesting about a USF-like or a real USF file or if it's just a tip, just PM me to make it clear. :)

I will just add I will soon add new stuffs about area loading process, it will be surely the hardest thing I would have found but redoing the game maps will be very possible. ;D

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: July 21, 2014, 10:16:35 pm »
Thank you for your comment, I like sharing my knowledges for this game and giving tools for hackers. I'm currently hacking places though it's a RPG and it's not the best way to change the difficulty, but if it can contribute to your plans as well I'm satisfied.

So this is the new today, I make a short video where I changed some elements to make my finds a little bit consistent and for the entertainment. It can give an idea to people where the paper mario 64 hacking is going on.

I will probably continue to mess with places, my next challenge will be to figure out where is the setting for a room to be dark or not.

Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: July 14, 2014, 07:58:42 pm »
Hi guys, this time I'm providing a powerful thing that cannot be shown so easily. :o I'm talking about the music affectation. With a thorough work, I finally found where areas decide which music they will play and list them in a single room give me the feeling I was in a jukebox... Anyways, for this new I would say to go easy about what I will say, because there are exceptions and exceptions over exceptions. So let's go!

There are actually 3 patterns to find the byte that counts (but there are more) :
  • 05 80 2D 5D 4C
  • 02 80 04 48 9C
  • 03 80 2D 5F F8
The first one is used mostly for all musics (place music, themes and events). The second one is used for the incoming fights, when a battle is about to start the byte is after this pattern. The third is really rare, it's used to change the music for a theme when you talk to a NPC, I only see that on flowers in Chapter 6. For each pattern, the byte is 8 bytes after the pattern. However, the second one is 4 bytes after.

Here is a list of all musics of the game.

It's incomplete, but almost all is there. If you check it a little bit, you will notice there are "extras" on some of them, it's where things become difficult. :P Basically, one byte = one music, but sometimes there is a byte further which gives an other result.

Here are some examples :
  • 52 00 00 00 00 = Koopa Bros. Theme
  • 52 00 00 00 01 = With intro
  • 70 00 00 00 00 = Twink's Theme
  • 70 00 00 00 01 = Farewell Twink
The variation byte can change the music from the main byte. If you change that over a no-extra music, it causes either nothing or side effects. In more, it's different for the 17 which the variation byte is further.

With all my founds, I will try to record a short demo to make fun for people who wishes to make a hack for this game. :D To finish this new, I show you I'm able to modify data on Star Spirits' ability. Both of great finds were kind of tricky to find.

See ya later! :)


Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: July 05, 2014, 08:12:24 pm »
Hi guys :D I bring my new find. I was looking for allies' stats, but I didn't find them, so I was searching the dizzy data because Kooper can do it. I wasn't able to find the Kooper's stats, but I figure out how status work (the most of them). :)

I find a data pattern for each attack of ennemies. All attacks have 12 bytes before the number of damages [80 27 CC B4 FF FF FF 81 FE 36 3C ##], but the first four can be used as well. At the end of the 12 bytes, do +16 and you find the number of damages. However, by attack I mean an attack which involves Mario (heal and power-up must have an other pattern and I didn't find it) :(

## can be 80, 8A or 8F (don't know why)  :-[

For the status effects, there are 4 bytes for each, they are 7 bytes behind the number of damages. The first two define the status, there is a list of all of them :
  • [80 08] : Shrink
  • [80 04] : Dizzy
  • [80 02] : Poison
  • [80 00] : Sleep
  • [00 00] : Frozen
The remain has 2 functions : the first determines the number of turns you are affected and the second is the rate to be affected. However they are 3 different patterns for the first. This bytes is special because what it's important it's the second number and changing the other cancels the effect. Here is what that means :
  • 80 02 [03] 64 = Poison while 3 turns 100%
  • 80 00 [13] 14 = Sleeping while 3 turns 20%
  • 00 00 [42] FE = Frozen while 2 turns ???
You can edit a status effect and even add one where there was nothing and add damage points too. :o And Mario cannot be affected on a first strike.

So this is an example for all that stuffs. 8)

Dark Koopa Shell Toss = Mario fall asleep in 20% of cases and for 9 turns :laugh:
Before : 80 27 CC B4 FF FF FF 81 FE 36 3C 80 40 00 00 00 00 00 FF FF [00 00 00 00] 00 00 00 03
After :   80 27 CC B4 FF FF FF 81 FE 36 3C 80 40 00 00 00 00 00 FF FF [80 00 19 14] 00 00 00 03

Pages: [1] 2