• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Important Melee, Hacks, and You -- New Hackers Start Here, in the OP!

Cyjorg

tiny.cc/19XXTE
Joined
Nov 18, 2013
Messages
686
Location
Purdue University
#********************************************
# Enabling high memory use
#
#********************************************

#this one line makes it possible for us to use higher areas of
#memory (on the memcard) for whatever. This command is altering
#the buffer overflow exploit's code to zero out the memcard range.

#this is the original line:
#POKE 8045D984 60A5D71C

#the memory card usually ends at 8046B0EC, the array starts at 8045D9D0.
#we want it to end at 80469D3C, so the diff is C36C.
POKE 8045D984 60A5C36C

#In a normal game, this is (well, I guess it is) harmless, as it's just
#some random int inside of the name entry area.

#some tests:
POKE 80469D3C DDFFEEBB
@ _glook _glook @ Achilles1515 Achilles1515 @ Dan Salvato Dan Salvato

Was looking through the source for the crazy mod and wanted to make sure this hadn't been overlooked
 

_glook

Got a Passion for Smashin'
Joined
Sep 30, 2005
Messages
802
Location
Not UC Berkeley anymore
@ _glook _glook @ Achilles1515 Achilles1515 @ Dan Salvato Dan Salvato

Was looking through the source for the crazy mod and wanted to make sure this hadn't been overlooked
Well, it gives you an extra 13B0 bytes to inject code, but it doesn't look useful for DOL mods since for DOL mods, you have to inject it directly into the actual DOL, and that memory range is outside of the memory range that the DOL covers. For memory card hacks, this won't make any difference, and may actually hinder functionality if you plan on overwriting data in that upper range for your own use (like if you plan on saving name tags in that range), assuming the code no longer tries to save data in that range. It's probably most useful for gecko codes, but there's only so many lines of gecko code that can be loaded at once. If you want to use certain gecko codes while playing certain mods that use up the available free space, though, this could be useful.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
but there's only so many lines of gecko code that can be loaded at once.
IIRC, Brawl hackers found a way around this and have been able to use extremely large GCTs for quite a while now >_>
(I think the GCT could only hold 256 lines by default)

I mean, the FPC was large enough to cause problems for brawl hackers, what with the other codes that were commonly passed around with it...

I'll post a reference if I stumble across it again ;)
 
Last edited:
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
@ _glook _glook @ Achilles1515 Achilles1515 @ Dan Salvato Dan Salvato

Was looking through the source for the crazy mod and wanted to make sure this hadn't been overlooked
This sounds like it is only necessary for his version of the post-exploit loader. My version works totally differently and doesn't have the same issues as his. I can take advantage of the full memory range without having to worry about anything being overwritten.
 
Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
Well, it gives you an extra 13B0 bytes to inject code, but it doesn't look useful for DOL mods since for DOL mods, you have to inject it directly into the actual DOL, and that memory range is outside of the memory range that the DOL covers. For memory card hacks, this won't make any difference, and may actually hinder functionality if you plan on overwriting data in that upper range for your own use (like if you plan on saving name tags in that range), assuming the code no longer tries to save data in that range. It's probably most useful for gecko codes, but there's only so many lines of gecko code that can be loaded at once. If you want to use certain gecko codes while playing certain mods that use up the available free space, though, this could be useful.
There is a Gecko code limit because Gecko's default code list location is 0x80001800 - 0x80002800, where there is very limited space. You can put the code list anywhere in memory and have the Gecko code handler point to it. If using Gecko OS, you can use the parameters "codeliststart" and "codelistend" to specify where to put the code list. If you manually inject the Gecko code handler into memory (like I do with the memory card exploit), you can just modify a couple lines in the code handler to point to whatever location you like.
 

Myougi

My posts are gluten free.
Joined
Mar 14, 2014
Messages
484
Location
WEST COAST BEST COAST
Hey guys, I was wondering about how to change audio volume of already existing .hps files. Is it possible? Because I downloaded a few custom .hps files, some are too loud (I want to use them for all star mode, so decreasing music volume in game is not an option) Sorry if I missed a post explaining how to do it, I searched this thread but couldn't find much.
It's def possible, but I think the only way is writing your own ASM codes right now. Ask @ Dan Salvato Dan Salvato
http://smashboards.com/threads/reduce-dream-land-64-music-volume.413698/
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
It's def possible, but I think the only way is writing your own ASM codes right now. Ask @ Dan Salvato Dan Salvato
http://smashboards.com/threads/reduce-dream-land-64-music-volume.413698/
I would think it has to do with the ADPCM data...
this is the case with alot of looped audio not following the standard range...
the volume is less because the audio wave isn't maxed, while your issue with it being louder is either maxed or beyond maxed (amplification noise)

I've played with PCM data before with my currently failed attempt at a Pikachu voice simulator using PyAudio
(I never knew much about audio so I never got the voice generated)
^ I did generate the binary for a sine wave tho :p
 
Last edited:

gamerfreak5665

Smash Rookie
Joined
Dec 19, 2014
Messages
11

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
yea from what you're saying, the crown model is the 3rd root node ;)
anyways, find that bone struct in the DAT and edit the 3 scale values.
if that bone has no keyframes in the animations, you should be in luck with a working scale. ;)
Wait I have a question about models. If I didnt add an influence matrix would that explain why the hat doesnt move when I changed the scale/translation values of the bone.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
yea the influence is what transforms the hat, if anything it just needs a weight of 1.0 on the hat bone ;)

forgot about that >.>
that could get a bit complex...

EDIT:
yes, I do mean a bit as "a bit" and not over-exaggerating because complexity to me is 10x more complex than to anyone else :p

do you understand how melee weights work??

EDIT2:
here's a quick logical image if not :)
 
Last edited:

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
Anyone knows how to convert an integer to a float double? like transfering a number from r15 to f15?
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Anyone knows how to convert an integer to a float double? like transfering a number from r15 to f15?
Just an arbitrary example (partly pulled from my Magus physics code port).

input r22=int
output f1 = float
Code:
INT_TO_FLOAT:
lfd    f3,-29808(r2)    # 4d8570. loads magic double for int to float conversion
stfd    f3,0x20(r2)
sth    r22,0x26(r2)    # 0x43300000800000xx. put 1st int at end of magic double
lfd    f1,0x20(r2)
fsubs    f1,f1,f3    # subtract 0x4330000080000000 for converted int
Instead of storing at 0x20(r2), you could do -0x20(sp), which would change the 0x26(r2) to -0x1A(sp). Assuming that area in the stack is free at your injection point.
 
Last edited:

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
I've checked some old codes on arcentral http://arcentral.net/ssbm/ssbmV12/v12crazy.html

Some of the codes have some 0A instead of 04, I checked the Gecko documentation and it's written nowhere what it does. It seems to do nothing when input as action replay code, and it doesn't work as gecko code. Anyone have any ideas?

Example of code input:
0A46B108 00000041
0437A2EC 60000000
0A46B108 00000042
0437A2EC C0DC0008

edit: found some here: https://github.com/dolphin-emu/dolp...ubtype-2--add-code-can-be-called-08-09-and-0a
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
I've checked some old codes on arcentral http://arcentral.net/ssbm/ssbmV12/v12crazy.html

Some of the codes have some 0A instead of 04, I checked the Gecko documentation and it's written nowhere what it does. It seems to do nothing when input as action replay code, and it doesn't work as gecko code. Anyone have any ideas?

Example of code input:
0A46B108 00000041
0437A2EC 60000000
0A46B108 00000042
0437A2EC C0DC0008
If the halfword at 8046b108 = 00000041, then write 60000000 to 8037A2EC.

If the halfword at 8046b108 = 00000042, then write C0DC0008 to 8037A2EC.

(so that is monitoring P1's button inputs)

Code:
Action Replay

08XXXXXX YYYYYY is the "If equal execute next code" generic value for a BYTE
comparison.
For halfwords, it'll be 0AXXXXXX YYYYYYYY, and for words 0CXXXXXX
YYYYYYYY...
Source.
 
Last edited:

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055

This may not look like much, but the crown being there is a huge relief for me. It means that while I cant remove object groups from characters (still havent tested more about why it worked for stages), I can add object groups to them instead of replacing current ones. Gonna go ahead and assume that bone structures cant be edited because they're referenced somewhere else. That being said I have a hunch that its because the entire structure needs to be made and in the right order. Same thing applied to making new area tables for stages.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
@ Z zankyou you can delete object groups, but you have to 0-fill them, since everything in the game (at least up to Pl**.dat files) is referenced by exact offset.

havn't really looked at stages, but I would assume they're the same as well.

btw, you can add data between the end of the data section and the relocation table so long as you update the data size aka the relocation table offset.

another thing you could do is redirect the crown object to use your hat mesh and material
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
@ Z zankyou you can delete object groups, but you have to 0-fill them, since everything in the game (at least up to Pl**.dat files) is referenced by exact offset.

havn't really looked at stages, but I would assume they're the same as well.

btw, you can add data between the end of the data section and the relocation table so long as you update the data size aka the relocation table offset.

another thing you could do is redirect the crown object to use your hat mesh and material
Thats what the first hat was done doing. Replacing the crown. What I tried was deleting the pointers entries for the pointer to the next object but it broke the game.
On another note, Ive now deemed importing from brawl is easier than importing from other characters in melee. Not enough is understood to really do it.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
yea, you don't want to change the base structure. ;)
you can add objects though and possibly bones, but if you want to add vectors, you'll need to move them to the end of the data.

the only things that need to stay where they are are the bones and I do believe the materials (maybe textures).
I do believe everything else can be moved around ;)
(that's all I can think of that I know would need to be referenced for animation)


and yes, I can agree importing from Brawl is many times easier :p

EDIT:
also, I was wrong about Pl**Aj files.

I'd thought it was just 1 dat file holding dat files...
nope, it turned out to be an array of dat files just stacked on top of each other.
 
Last edited:

Itaru

MasterGanon
Joined
Jun 25, 2014
Messages
279
Location
日本 茨城県
Legal Bigblue
スクリーンショット (2943).png

Download

GrBb.dat

C6EF8: Ground moving speed
C6EB8: Cars height
C6F1C: Gray stuff height
C6F58: Fryer height
C6F80: Black UFO height

BTW, This stage has a issue.
Game start platform is on the fryer.
Help me! @ Cyjorg Cyjorg
 
Last edited:

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Just wasted 8 hours trying to figure out what I was misunderstanding when I forgot I cut a corner somewhere.
Its definitely related to shininess though. Not quite sure how the color node works along with it. Maybe it sets a max shininess or something? Anyone who knows more about this stuff works please chime in.
 
Last edited:

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Imported over Jigglypuff. I cant stop laughing. Im going to have to take a break from model hacking since its so time consuming but Im going to try and make this stage before.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Imported over Jigglypuff. I cant stop laughing. Im going to have to take a break from model hacking since its so time consuming but Im going to try and make this stage before.
The stuff you are doing is crazy, zankyou. It would be SO awesome to have that stage. Make another pot of coffee and keep going!
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
This cracks me up. If you guys havent ever looked at how the verts are stored in melee you should.

????
So the Meta Crystal is Purin's hat?


Not exactly. I just added it to her object groups. Doing so meshes up certain animations though such as part of marths sword becomes sheathed. I should really test if you can add root structures though. Should be a quick test since the answers most likely no. But first I gotta figure out this undocumented color structure.
 
Last edited:

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
What is the ASM way of converting a hex number to decimal number and vice-versa? like having a number shown in decimal for the user (in the debug menu), but converted to use as a hexadecimal for the code?
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
The stuff you are doing is crazy, zankyou. It would be SO awesome to have that stage. Make another pot of coffee and keep going!
Thanks for the pep talk. I was about to give up character model imports because I was running into so many problems but you inspired me to give it one more shot.
Finally got part of a character to import properly. These are jiggs ears.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
The problem Im having isnt completely my fault. I dont know how to deal with an undocumented exception in the mdl0 file. I cant progress until either @ Tcll Tcll returns or one of the brawl box devs answers my question. I got so far only to be stopped by 2 bytes.
GALE01-53.png
 

DRGN

Technowizard
Moderator
Joined
Aug 20, 2005
Messages
2,178
Location
Sacramento, CA
Imported over Jigglypuff. I cant stop laughing. Im going to have to take a break from model hacking since its so time consuming but Im going to try and make this stage before.
So I was thinking about something as I came into this thread, but that was suddenly interrupted by 'HOLY CRAP!' as I scrolled down to this. I don't even have the slightest clue what I was thinking about before....

But that's amazing. Did you add a part of a stage to a character file? Does... does that thing move?

Just wasted 8 hours trying to figure out what I was misunderstanding when I forgot I cut a corner somewhere.
Its definitely related to shininess though. Not quite sure how the color node works along with it. Maybe it sets a max shininess or something? Anyone who knows more about this stuff works please chime in.
Which data structure contain these flags you're referring to? I mean, there are a lot of unknown flags in several of them.
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
So I was thinking about something as I came into this thread, but that was suddenly interrupted by 'HOLY CRAP!' as I scrolled down to this. I don't even have the slightest clue what I was thinking about before....

But that's amazing. Did you add a part of a stage to a character file? Does... does that thing move?


Which data structure contain these flags you're referring to? I mean, there are a lot of unknown flags in several of them.
There should only be 1 unknown in the material structure. And yes, it moves. Ive been juggling that and jigglypuff for the past month.
 
Last edited:

DRGN

Technowizard
Moderator
Joined
Aug 20, 2005
Messages
2,178
Location
Sacramento, CA
There should only be 1 unknown in the material structure. And yes, it moves. Ive been juggling that and jigglypuff for the past month.
So, taken from the melee dat format thread, you mean one of these below?
Code:
struct MATERIAL_COLORS
{
// 0x00
uint32 unknownColor0x00 <format = hex>; // diffuse?
uint32 unknownColor0x04 <format = hex>; // ambient?
uint32 unknownColor0x08 <format = hex>; // specular?
float  unknown0x0C;
// 0x10
float  unknown0x10;
};
One of these unknowns at 0x0C or 0x10? And since those are floats, are you able to increase or decrease the shinyness to varying degrees? Is there a minimum/maximum that you've noticed? I wonder if giving a negative value would do anything weird (dunno if those ones are signed).
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Im fond of this documentaion. http://wiki.tockdom.com/wiki/HAL_DAT_(File_Format). Itd be the mobj by that documentation.
Thats a color node. I believe the unknown at 0x10 is normally 42480000 and that the game sets the max shininess value based on the unknown in the material structure. But its very likely Im wrong.
 
Last edited:

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
I was able to get the arms at least. But the normals seem flipped...
GALE01-54.png

So yeah. Anyone know an easy was to reverse this.
 
Last edited:

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Couldnt sleep because I was getting so close. Its not perfect because I didnt take the time to adjust every bone to be the same as melees but its enough for a proof of concept. 2 more things to figure out still though.
GALE01-56.png

 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
So many things could be wrong. For now unless someone wants to help look into transparency with me Ill have to stay away from anything that uses it.
GALE01-58.png
 

DRGN

Technowizard
Moderator
Joined
Aug 20, 2005
Messages
2,178
Location
Sacramento, CA
If at any point you guys think of functionality that would be useful for working with textures, please post the ideas here.
So many things could be wrong. For now unless someone wants to help look into transparency with me Ill have to stay away from anything that uses it.View attachment 73145
For what texture type? Or do you mean for an object, like a flag of some kind? I've been curious about the latter for a while now.
 
Top Bottom