• 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!

Completed Skip Results Screen (new code)

Joined
Oct 10, 2011
Messages
1,126
Location
Boise, ID
NNID
dansalvato
Code:
Skip Results Screen (v1.02) [Dan Salvato]
041b15cc 38800000

All this does is change the instruction that loads sub-scene ID 4 (results screen) to sub-scene ID 0 (character select screen).
This code may have the side-effect of not displaying trophy/special messages in between matches, because the message display is its own sub-scene that is negotiated after you leave the results screen.

Every scene has a sub-scene data table that lists sub-scene IDs, a pointer to their init data, and a pointer to their init function. Hopefully at some point I'll document that a little better in case anyone wants to mess with it.
 

nqztv

Smash Journeyman
Joined
Feb 25, 2014
Messages
499
nice and simple! is there an easy way for it to load into stage select and then have that spit into character select and *then* load the game, since typically stage selection is done before character selection during counter pick? or are there unforeseen problems that can arise from changing the order of sub-scenes?
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
nice and simple! is there an easy way for it to load into stage select and then have that spit into character select and *then* load the game, since typically stage selection is done before character selection during counter pick? or are there unforeseen problems that can arise from changing the order of sub-scenes?
Most of the time I'd say it's safe, but I have noticed a problem before.

I had the stage select option set to RANDOM and was skipping the results screen and going straight from match end to the stage select screen. So this would essentially be like going straight from match end into another match on a new stage. It worked 90% of the time, but would occasionally softlock the Wii. It seemed to always work on Dolphin, though, which sucks for the debugging process.

This was also over a year ago and involved modifying the original skip results screen code and not the address from Dan's above code. So it's hard to say for sure.
 

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
This was also over a year ago and involved modifying the original skip results screen code and not the address from Dan's above code. So it's hard to say for sure.
Ah, this is why "random" stage selection setting crashed on 20XX. Glad to see that the code of Dan fixes that.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Ah, this is why "random" stage selection setting crashed on 20XX. Glad to see that the code of Dan fixes that.
I wasn't saying that this new code fixes anything. I was just giving an example of when skipping a sub-scene caused problems, but it was a little more involved than ONLY skipping a sub-scene because I also had "RANDOM" on. This code might fix it though, idk.
 
Last edited:

Aerros11

Smash Journeyman
Joined
Sep 5, 2009
Messages
284
Hey~
Might there be a way to pair this with the "Show Games Won" star count code?


Edit: Screw the stars O:

Thanks for posting this code~
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Skip Results Screen (1.02) [Achilles]
041A5B00 3B600000

I noticed that Dan's new code does not skip the Results Screen for any mode other than regular VS. This code skips it for VS and Special Modes.



Skips Results Screen and KO Stars = Games Won [Deluxe] (1.02) [Achilles]
  • Skips Results Screen if:
    • Extra characters are in the match (Master Hand, Crazy Hand, Giga, Wireframes, Popo, Sandbag).
    • More than 4 characters are in the match.
    • [Optional] Debug Menu flag is active (see notes). This is not included in the Gecko code posted below, but can be enabled by uncommenting lines in the notes.
  • Opponent of the player who quit to the "No Contest" screen is awarded a KO star, as long as the match is being played in Stock Mode and the opponent is in first place or tied for first place.
New: 12/13/15
Code:
C21A5B00 00000020
3F808045 639C21F8
3BC00000 877C0E90
2C1B0003 41820014
3BDE0001 837CFFFC
2C1B001A 4080001C
3F608045 637B7958
7C1BE000 40A2FFD8
2C1E0005 40800004
3FE08046 63FFB6A0
8B7F24C8 577BDF7E
237B0001 7F7B0034
577FD97E 2C1F0000
41820090 3BE000FF
3F608045 839B2C6C
2C1C0001 40820018
8BFB2F2D 3BFF0001
2C1F0005 41800008
3BE000FF 3B600000
3B7B0001 2C1B0005
41820058 3F80804D
639C65A7 7F9CD8AE
2C1C0000 40A2FFE4
7C1BF800 41A2FFDC
1FDB0E90 3F808045
639C21F8 7F9CF02E
2C1C0003 41A2FFC4
3F80804D 639C672F
7FDCD8AE 2C1E00FF
41A2FFB0 3BDE0001
7FDCD9AE 4BFFFFA4
3B600000 48000008
3B600000 00000000
***********************
* Skip Results Screen *
***********************

Skip Results Screen (v1.02) [Dan Salvato]
041b15cc 38800000
- good, simple
- doesn't work in Special Modes



inject @ 1a5b00 - addi r27,r4,0
- works for Vs. and Special Game Modes
- r27,r28 available

CODE_START:
#check for extra chars that freeze game at results screen
lis r28,0x8045
ori r28,r28,0x21f8 # 0xe90 from 80453084 - P1 slot type
li r30,0

CHAR_CHECK_LOOP:

lwzu r27,0xe90(r28) # load slot type
cmpwi r27,3
beq- LAST_PLAYER_CHECK
addi r30,r30,1 # increment active players
lwz r27,-0x4(r28) # load external char ID
cmpwi r27,0x1a # master hand or another extra char?
bge- SKIP

LAST_PLAYER_CHECK:

lis r27,0x8045
ori r27,r27,0x7958 # P6 slot type ID
cmpw r27,r28 # gone through all six players?
bne- CHAR_CHECK_LOOP

cmpwi r30,5 # 5 or more active players?
bge- SKIP


DEBUG_FLAG:
#lis r28,0x8040
#lwz r28,-0x5C2C(r28)# load skip results screen debug flag (3fa3d4)
#cmpwi r28,0 # is skip results screen off?
#beq- DEFAULT


SKIP:
#Do not add stars if not in Stock Mode
#check if in Stock Mode
lis r31,0x8046
ori r31,r31,0xb6a0
lbz r27,0x24c8(r31)
rlwinm r27,r27,27,29,31
subfic r27,r27,1
cntlzw r27,r27
rlwinm r31,r27,27,5,31
cmpwi r31,0 # r30=0=no, 1=yes
beq- SKIP_FINAL



li r31,0xff # register flag for no ragequit star, 0xff means not a ragequit
lis r27,0x8045
lwz r28,0x2c6c(r27) # load current camera type
cmpwi r28,1 # is current camera type pause (ragequit)?
bne- SKIP_STARS
lbz r31,0x2f2d(r27) # load player who paused
addi r31,r31,1 # get to this code's player increment type (1-index)
cmpwi r31,0x5
blt- SKIP_STARS
li r31,0xff

SKIP_STARS:
#modify stars as games won
#4D6730 = kO star count (1 byte per player)
#804D65A8 = placements during/after match (1 byte per player)
li r27,0 # initialize player counter
PLACEMENT_LOOP:
addi r27,r27,1 # increment player counter
cmpwi r27,5 # gone through all four players?
beq- SKIP_FINAL
lis r28,0x804d
ori r28,r28,0x65a7 # player placements address minus 1
lbzx r28,r28,r27
cmpwi r28,0 # is placement 0 = first place?
bne- PLACEMENT_LOOP

cmpw r27,r31 # did this player ragequit?
beq- PLACEMENT_LOOP

mulli r30,r27,0xe90
lis r28,0x8045
ori r28,r28,0x21f8 # 0xe90 from 80453088 = P1 type
lwzx r28,r28,r30
cmpwi r28,3 # is player not in game?
beq- PLACEMENT_LOOP

ADD_STARS:
lis r28,0x804d
ori r28,r28,0x672f # load KO stars address minus 1
lbzx r30,r28,r27 # load KO stars for this player
cmpwi r30,0xff # 255 stars already?
beq- PLACEMENT_LOOP
addi r30,r30,1 # add 1 to star count
stbx r30,r28,r27 # store new star count
b PLACEMENT_LOOP

SKIP_FINAL:
li r27,0 # CSS ID instead of Results Screen (0x4)
b END

DEFAULT:
#li r27,4 # default code line, Results Screen ID, use this line and not the next if using a Debug Menu flag
li r27,0 # new default code line, always skip results and load CSS ID
END:
 
Last edited:

Aerros11

Smash Journeyman
Joined
Sep 5, 2009
Messages
284
Yes! Thanks for sharing this too (b'--')b

I'm pretty hyped for your codes
 

Noc

Smash Journeyman
Joined
Dec 30, 2008
Messages
225
Location
Galveston, TX
Achilles1515 Achilles1515 I really like the Skip Results Screen and KO Stars = Games Won gecko code with the opponent of the ragequitter gaining a star, but could you make a version of the code that always skips results screen and does not check if there are extra characters?
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Achilles1515 Achilles1515 I really like the Skip Results Screen and KO Stars = Games Won gecko code with the opponent of the ragequitter gaining a star, but could you make a version of the code that always skips results screen and does not check if there are extra characters?
Easiest way is to modify one line in the code notes above, and with the Results Screen skipped is the way the code was supposed to be posted. My b. At the very end, change the Results Screen ID (0x4) to the CSS ID (0x0). I did this to the above code, see notes, and also added a check for Stock Mode only. The Gecko code above should be up to date as well.
 
Last edited:

Noc

Smash Journeyman
Joined
Dec 30, 2008
Messages
225
Location
Galveston, TX
I tested the previous version of the Skip Results Screen and KO Stars = Games Won [Deluxe] code with the 4 at the end changed to 0 with Neogamma and it works, thanks for fixing. However, the 12/13 version seems to only skip the results screen without awarding KO stars whether in Stock mode or Time mode. Also just wondering, would it be possible to make it work for doubles, i.e. award a star to both members of the winning team (even if one teammate has lost all his stocks) and if one team ragequits, award a star only to members of the opposing team? Since I would like to incorporate the code in a gecko codeset I made that is already close to the maximum allowed number of lines for Neogamma (425), I was hoping the code would be closer to 18 lines like the original Sham Rock version, but I could delete other codes to fit this one in.
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
I tested the previous version of the Skip Results Screen and KO Stars = Games Won [Deluxe] code with the 4 at the end changed to 0 with Neogamma and it works, thanks for fixing. However, the 12/13 version seems to only skip the results screen without awarding KO stars whether in Stock mode or Time mode. Also just wondering, would it be possible to make it work for doubles, i.e. award a star to both members of the winning team (even if one teammate has lost all his stocks) and if one team ragequits, award a star only to members of the opposing team? Since I would like to incorporate the code in a gecko codeset I made that is already close to the maximum allowed number of lines for Neogamma (425), I was hoping the code would be closer to 18 lines like the original Sham Rock version, but I could delete other codes to fit this one in.
Sorry, I left the Debug Flag check in there. It is updated and now commented out in the notes. If you don't want the stuff at the beginning, then start deleting some of the code and re-running it through ASM-->WiiRD converter. You should be able to start at the SKIP: function.

You could do it for teams, it would just be more code.
 
Last edited:

Noc

Smash Journeyman
Joined
Dec 30, 2008
Messages
225
Location
Galveston, TX
The updated 12/13 code works for me now, thanks. I just got the PyiiASMH ASM-->WiiRD converter, but I don't know how to use it and have no experience with assembly. When I paste your ASM notes into PPC Opcodes box and convert to Gecko code it doesn't match the Gecko code above though it does start with C21A5B00.

It would be awesome if you could do it for teams even though it would be more code.
 

Vega$

Smash Rookie
Joined
Jul 30, 2016
Messages
16
that ssbm code tool is not there.
 
Last edited:
Top Bottom