Home Gallery Resources The Team Rules chat Login Register
  Show Posts
Pages:  [1] 2 3 4 5
1  Super Smash Bros. Brawl Hacking / Programming / Re: All-Star Special Versus Mode on: November 17, 2018, 06:54:39 PM
They're selected by character ID and pokemon trainer's pokemon are the non independant versions. I didn't type out pokemon trainer's for no reason you know. to add characters you edit this line

li r3,0x34   #sets paramater for value range to randomly select from to 0x00-0x34

to li r3,0x(1 greater than ID of highest character ID you want included in the random selection)

Then you need to add to those branches at the end to exclude at least the empty slots since they'll crash

Also you need to edit this

hook:806DEFD4
stwu r1,-128(r1)
stmw r2,8(r1) #create stack frame
lis r14,0x8058
ori r14,r14,0x8003 #loads ASV data bank address into r14
lis r15,0x9018
ori r15,r15,0x0FB8 #loads the address of player 1's mem2 character ID into r15
loop:lbz r18,-3(r14) #loads first picked char ID from player ASV data
cmpwi r18,0xCC
beq drc #branches to don't replace character if char ID is CC (sanity check for if you unpick all chars with the CSP's)
cmpwi r18,0x3D
bne nr1 #branches to not random 1 if char ID isn't 3D (my invented ID for random)
mflr r27 #preserves contents of link register in r27
bl -0xA8 #branch & links to random in the match part C2 code above
mtlr r27 #restores link register contents from r27
nr1:lhz r19,-2(r14) #loads first picked char costume & portrait ID's from player ASV data
stb r18,0(r15) #stores first picked char to mem2 char ID address
sth r19,5(r15) #stores first picked char costume & portrait ID's to mem2 char ID address +5
b co #unconditioal branch to continue on
drc:lbz r3,184(r24) #loads CSS character selection (original instruction at 806DEF94)
stb r3,152(r23) #stores char ID to be loaded at start of match (original instruction at 806DEF98)
li r6,0 #sets r6 to 0
sth r6,157(r23) #stores r6 as player costume & portrait ID (original instruction at 806DEFCC)
co:addi r14,r14,0xA0 #adds offset to next player ASV data
addi r15,r15,0x5C #adds offset to next player mem2 char ID address
addi r22,r22,1
cmpwi r22,6
bne loop #increments loop counter and allows escape once instructions have been run through for all players (?why 6 not 4?)
end:lmw r2,8(r1) #reloads previous register values back from the stack
addi r1,r1,128 #sets stack pointer back to where it was before now that the space is free again

And add 0x04 to the bl -0xA8 line for each line you add to the other code, you count in hex like 0, 4, 8, C, 10,14,18,1C,20 etc so for example if you added 5 line's you'd change it to -0xBC
2  Super Smash Bros. Brawl Hacking / Programming / Sinking Pirate Ship on: August 31, 2018, 05:48:29 PM
sinking pirate ship [wiiztec]
C0000000 0000000C
3D608059 3D809018
892C0F3B 2C090009
4082003C 3D808155
812C95BC 2C090000
4082002C C1CB82D4
812B82D4 5529653E
2C09042F 41820010
C1EB82D0 EDCE782A
D1CB82D4 D1CC958C
48000010 3D40C1A3
614A1581 914B82D4
4E800020 00000000
045882D0 3C23D70A
the speed of sinking is 3C23D70A(0.01 in float)
credit to spunit262 for the water level address

https://www.youtube.com/watch?v=PrAvDZxiUP4&t=7s
3  Super Smash Bros. Brawl Hacking / Programming / Re: All-Star Special Versus Mode on: August 27, 2018, 09:27:38 PM
You need to change the bottom part of this for random to not exclude the new characters then convert it to hex with asmwiird and replace the lines in your GCT starting with C277FB7C until the next line that starts with C2

hook:8077FB7C
stwu r1,-80(r1)
stmw r14,8(r1)   #Creates a stack frame so I can use all the registers without worrying about [censored]ing [censored] up
lis r14,0x8058
ori r14,r14,0x8003   #Loads the address of the beginning of my ASV memory bank +3 bytes into r14
lis r15,0x9018
ori r15,r15,0x0FB8   #Loads the address of player 1's mem2 character ID into r15 (changes character immeidately if poked with a diffferent ID)
lis r29,0x8058
ori r29,r29,0x8300
lwz r22,-0x0C(r29)   #Loads the address of player 1's mem1 character ID into r22 (reloads current character when poked with a different ID)
cmpwi r25,0x14   #r25 is 0x14 before a match starts and after it ends
bne mc   #Branch to main code if r25 is not 0x14, it's usually only 0x14 before the start or after the end of a match
cmplwi r26,0xBEEF   #on the rare occasion r25 is 0x14 in the middle of a match r26 will not have an address in it
blt mc   #branches to main code if r26's value indicates it's the middle of a match despite r25 being 0x14
loop:stw r7,0x99(r14)   #Clears next char offset, death counter, & stock head offset (r7 is always 0 when this instruction executes)
stb r7,0x68(r29)   #Clears counter for CSS portrait data
addi r14,r14,0xA0   #adds offset to next player ASV data
addi r29,r29,0x6C   #adds offset to next player CSP data
addi r9,r9,1
cmpwi r9,4
bne loop   #increments loop counter and allows escape once instructions have been run through for all players
mc:cmpwi r30,0x10B
bne end   #if current action is not unloaded branch to end
cmpwi r23,0xBD
bne end   #if previous action is not death branch to end
lwz r12,8(r31)
lwz r11,0x110(r12)   #loads alternate character ID into r11
cmpwi r11,0xF
bne co   #Checks if Ice climbers, branch to continue on if not
lhz r11,0xFC(r12)
cmpwi r11,1
beq end   #Checks if it was nana who died, branches to end to prevent swapping to next char if so
co:lwz r12,0x1C(r31)
lwz r12,0x28(r12)
lwz r12,0x10(r12)
lbz r12,0x55(r12)   #Loads player number ID into r12
lis r26,0x901C
ori r26,r26,0x4928
stbx r7,r26,r12   #Clears TSCD AD flag???
mulli r16,r12,0xA0   #multiplies the PNID by the per player ASV data offset and stores the result in r16
mulli r17,r12,0x5C   #multiplies the PNID by the per player character ID offset in mem2 and stores the result in r17
mulli r23,r12,0x80   #multiplies the PNID by the per player character ID offset in mem1 and stores the result in r23
add r16,r16,r14   #adds the current player ASV data offset to the address of the beginning of the ASV data bank and stores the result in r16
sub r22,r22,r23   #subtracts the -offset to the current player from the address of player 1's character ID in mem1 and stores the result in r22
lbz r20,0x99(r16)   #loads offset to next character from current players ASV data +0x99 into r20
rc:lbzx r19,r16,r20   #loads character ID into r19
cmplwi r19,0xCC   #checks if the character ID to be loaded is CC which is an indicator signifying the end of the picked characters
blt lc   #branches to load character if it's less than CC (all legitimite character ID's are less than CC)   
cmpwi r20,-3
beq end   #sanity check to prevent an infinite loop if the first char id in the ASV data bank is CC
li r20,-3   #sets next character offset to -3 to loop back to the first picked character after CC is encountered
b rc   #loops back to reload character ID
lc:lwzx r19,r16,r20   #loads character ID, costume ID, portrait ID, & next character ID into r19
srwi r18,r19,24   #shifts only character ID from r19 to r18
cmpwi r18,0x3D
bne nr2   #checks if character ID is 3D which I designated to signify random and branches to not random 2 if it's not
mflr r24
bl rndm   #preserves previous contents of link register in r24 and branch & links to random ASV subroutine
mtlr r24   #moves r24's contents back to link register
nr2:srwi r19,r19,8   #shifts next character ID out of r19
lis r11,0x8128
ori r11,r11,0xAE64   #Loads player 1 stock count address into r11
li r6,0x52
slwi r6,r6,12   #Loads player offset for stock count address into r6
mullw r6,r6,r12   #Multiplies player offset for stock count address by PNID and stores result in r6
lwzx r6,r11,r6
cmpwi r6,1
beq end   #Loads player stock count and branches to end if it's 1 preventing the results screen from showing the next character
lbz r23,0(r22)
cmpw r23,r18   #Loads the mem1 char ID(current character) into r23 and compares it to the character ID in r18(character to be swapped to)
bne dc   #if not equal branch to do code (really struggling to come up with branch names at this point)
li r23,0x12   #Loads character ID of sona into r23, sona is a character not selectable from the CSS so it will always for a reload
stb r23,0(r22)   #stores sona character ID to mem1 char ID address (force reload is necessary for stock heads to swap properly)
dc:stbx r18,r15,r17   #stores char ID to mem2 char ID address
addi r15,r15,5   #moves address in r15 up by 5 bytes
sthx r19,r15,r17   #stores costume and portrait ID's
addi r20,r20,3
stb r20,0x99(r16)   #increments next character offset by 3 and stores to current player ASV data +0x99
lbz r21,0x9A(r16)   
addi r21,r21,1
stb r21,0x9A(r16)   #loads player death count increments it by 1 and stores to current player ASV data +0x9A
end:lmw r14,8(r1)   #reloads previous register values back from the stack
addi r1,r1,80   #sets stack pointer back to where it was before now that the space is free again
lwz r3,44(r29)   #original instruction at code hook
b sr   #unconditional branch to skip random
rndm:stwu r1,-100(r1)
stmw r9,8(r1)   #creates stack frame for random ASV subroutine
lis r27,0x8003
ori r27,r27,0xFC7C   #loads address of brawl RNG function into r27
mflr r8   #preserves current link register in r8
mtctr r27   #moves brawl RNG function address into ctr
li r3,0x34   #sets paramater for value range to randomly select from to 0x00-0x34
bctrl   #branch to ctr and link (branches to brawl RNG function)
mtlr r8   #copies the contents of r8 back into the link register
lmw r9,8(r1)   #reloads previous register values back from the stack
addi r1,r1,100   #sets stack pointer back to where it was before now that the space is free again
mr r18,r3   #copies the contents of r3 (the random value the RNG function gave me is in r3) to r18
cmpwi r18,0x11
beq rndm   #if ID is sopo rechoose random ID
cmpwi r18,0x12
beq rndm   #if ID is sona rechoose random ID
cmpwi r18,0x1D
beq rndm   #if ID is pokemon trainer's charizard rechoose random ID
cmpwi r18,0x1F
beq rndm   #if ID is pokemon trainer's squirtle rechoose random ID
cmpwi r18,0x21
beq rndm   #if ID is pokemon trainer's ivysaur rechoose random ID
cmpwi r18,0x2C
blt blr   #if ID is less than 0x2C ID is good so branch to blr
cmpwi r18,0x31
ble rndm   #if ID is giga bowser, warioman, or alloys rechoose random ID
blr:blr   #branches to the address in the link register which should be the mtlr r24 above
sr:   #the codehandler puts a branch back to the line after the instruction I hooked here
4  Super Smash Bros. Brawl Hacking / General Hacking Discussion / Re: File Patch Code 4.1 release on: June 30, 2016, 08:32:55 AM
NOTE: YOU MUST BE ON AXNEXTFRAME FOR THIS TO WORK - NO EXCEPTIONS

Even beyond startup? PM has a code to switch to VBI after startup to greatly reduce lag, AXNextFrame runs the codehandler 6-7 times per frame and VBI only once
5  Super Smash Bros. Brawl Hacking / General Hacking Discussion / Re: [Official] Project M discussion: RIP on: December 02, 2015, 10:16:10 AM
It's not just a model

btw did I crash the site? it went down in the middle of my posting the codeset I wasn't sure if it went through
6  Super Smash Bros. Brawl Hacking / General Hacking Discussion / Re: [Official] Project M discussion: RIP on: December 02, 2015, 08:46:35 AM
I know you've all wanted this

http://www.mediafire.com/view/0p5px0c9c9jbt4c/Project_M_Codeset.txt
7  Super Smash Bros. Brawl Hacking / General Hacking Discussion / Re: [Official] Project M discussion: 3.5 coming soon! on: December 02, 2014, 10:55:09 PM
Dolphin or Wii?

Set your stock number, then select that number of characters. Example, 5 stocks, select 5 characters. Click on the CSP to reset your selections.

Make sure Random is NOT selected. You gotta go select all your characters, even for CPUs.

No CPU default random works now. and the amount of characters you can pick is not connected to stock count in any way
8  Super Smash Bros. Brawl Hacking / General Hacking Discussion / Re: [Official] Project M discussion: 3.5 coming soon! on: December 02, 2014, 10:33:38 PM
I am just happy that defensive collision isnt impossible with shown proof <3

Nothing is impossible
9  Super Smash Bros. Brawl Hacking / General Hacking Discussion / Re: [Official] Project M discussion: 3.5 coming soon! on: November 12, 2014, 02:18:45 PM
so, they successfully found out how to add reflecting collisions to characters huh?

Yeah Magus figured it out
10  Super Smash Bros. Brawl Hacking / General Hacking Discussion / Re: [Official] Project M discussion: Turbo Mode Contest and Alt Costume Tuesdays! on: October 24, 2014, 09:45:50 AM
that stage is too epic for words, it's amazing how you guys have remade this stage completely while keeping it's collisions...

The collisions are different
11  Super Smash Bros. Brawl Hacking / General Hacking Discussion / Re: [Official] Project M discussion: 3.02 patch on: July 12, 2014, 07:37:41 PM
While it is your personal opinion as you painstakingly made clear, Spex, my problem is your exaggeration of what I'm saying. Not everyone needs to learn, hell, I think it would make Project M rather lackluster and buggy if every single person on the team had input. Fact remains, 3, 4 or even 5 heads are better than two.

BrawlEX and the Clone Engine however, perform the same function. The result is adding more characters (or slots) that can be used for new characters or extra costumes. They are two different codesets achieving the same end through different means.

The problem with the Clone Engine as it stands is that it takes a very long time and the precision of a surgeon to edit it without causing problems, according to EY's earlier answer, and only two people know how to do that by any stretch. You're dragging your collective feet along simply because that's how you want it to be, the way you make it sound.

It doesn't matter how collectively smart the PMBR is if the trappings of your own decisions end up causing you problems that make doing the work a headache.

To clarify: I am impartial, despite the above, of whether you use the Clone Engine or BrawlEX, but the fact still remains: if you having a cumbersome code slows down your progress, then you should have other people fluent in coding look at it and let them suggest improvements. Being harder to edit doesn't make it more solid.


Nobody said our CE was cumbersome or badly coded, or took surgical precision to edit(lol) you inferred all this from EY saying only 2 people knew how it worked and it took a long time to edit, but believe me adjustments to our CE is not the bottleneck to churning out new characters faster, PSA coding, animating and balancing them to professional standards is
12  Super Smash Bros. Brawl Hacking / General Hacking Discussion / Re: [Official] Project M discussion: 3.02 patch on: June 28, 2014, 09:32:43 PM
https://www.youtube.com/watch?v=7zlQFR0Wcd4
13  Super Smash Bros. Brawl Hacking / Programming / Re: Project M Codes on: May 01, 2014, 02:39:15 AM
I was ignored when I said this:


Save it.

- Albafika.

I doesn't matter if they're together apart or even what order they're in
14  Super Smash Bros. Brawl Hacking / Character Vertexes and Textures / Re: Eisen's Textures [+NEBULA BOWSER AND WHITEHAIR NEBULA GANON (Updated 1/29/10)] on: April 03, 2014, 04:22:04 PM
wow thanks!
15  Super Smash Bros. Brawl Hacking / Character Vertexes and Textures / Re: Eisen's Textures [+NEBULA BOWSER AND WHITEHAIR NEBULA GANON (Updated 1/29/10)] on: April 03, 2014, 01:49:37 PM
Does anyone still have nebula ganondorf? the links are dead and Eisen said he doesn't have it anymore
Pages:  [1] 2 3 4 5