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

Request Player one automatically select character.

4viers

Smash Rookie
Joined
Jan 4, 2016
Messages
3
I would like to know how to boot to Versus screen and automatically select Dr. Mario on Dolphin, Thanks!!. Also if i could get a explanation as to how it works that would be awesome!
 

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
This probably doesn't work, if 0x803F0E0A is the correct address to modify (and could be better written). But based on memory, it's probably something like:

0x803F0E08 P1 Character Select Address

So, we know from that datasheet that this is 4 bytes indicating selection:
Example Read: 0x00010A0A
  • Byte 1 is player type (0x00 is hmn, 0x01 is cpu, 0x02 is demo, 0x03 is n/a), so the example means player 1 is human since the first byte is 0x00.
  • Byte 2 is costume id (goes from 0x00 to 0x03 or however many costumes a character has), so the example means player 1 has fox's orange costume since 0x01 is the associated ID.
  • Byte 3 and 4 indicate the character ID. 0x00 is dr. mario and 0x18 is roy, so the example means player 1 is fox since 0x0A is Fox's id. This is the order left-to-right, top-to-bottom position on the roster.
Therefore, we come up with the Gecko Code:

Code:
P1 Always Set to Dr. Mario [SinsOfApathy]
043F0E08 00000000
04 indicates a 32-bit write (or 4 bytes). Gecko codes are automatically started at 80xxxxxxx, so we just put in the 3F0E08 for P1's character selection. 00000000 will be the data we write to that address. That'll be Dr. Mario with his base costume set to a Human player.

Ideally, this would be a conditional code, so you'd change it to something like:

Code:
P1 Set to Dr. Mario on Boot [SinsOfApathy]
203F0E08 FFFFFFFF
043F0E08 00000000
E2000001 00000000
That'll check if 803F0E08 equals FFFFFFFF (FIXME: This should be the default value on boot. I have no idea what that actually is.), if the address has that then the code will execute.

Edit: Minor logic correction.

Also, as for booting to the Versus Screen, that's an already available code in Dolphin.

Edit 2: And it looks like this only moves the cursor without selecting the character. RIP
 
Last edited:

4viers

Smash Rookie
Joined
Jan 4, 2016
Messages
3
This probably doesn't work, if 0x803F0E0A is the correct address to modify (and could be better written). But based on memory, it's probably something like:

0x803F0E08 P1 Character Select Address

So, we know from that datasheet that this is 4 bytes indicating selection:
Example Read: 0x00010A0A
  • Byte 1 is player type (0x00 is hmn, 0x01 is cpu, 0x02 is demo, 0x03 is n/a), so the example means player 1 is human since the first byte is 0x00.
  • Byte 2 is costume id (goes from 0x00 to 0x03 or however many costumes a character has), so the example means player 1 has fox's orange costume since 0x01 is the associated ID.
  • Byte 3 and 4 indicate the character ID. 0x00 is dr. mario and 0x18 is roy, so the example means player 1 is fox since 0x0A is Fox's id. This is the order left-to-right, top-to-bottom position on the roster.
Therefore, we come up with the Gecko Code:

Code:
P1 Always Set to Dr. Mario [SinsOfApathy]
043F0E08 00000000
04 indicates a 32-bit write (or 4 bytes). Gecko codes are automatically started at 80xxxxxxx, so we just put in the 3F0E08 for P1's character selection. 00000000 will be the data we write to that address. That'll be Dr. Mario with his base costume set to a Human player.

Ideally, this would be a conditional code, so you'd change it to something like:

Code:
P1 Set to Dr. Mario on Boot [SinsOfApathy]
203F0E08 FFFFFFFF
043F0E08 00000000
E2000001 00000000
That'll check if 803F0E08 equals FFFFFFFF (FIXME: This should be the default value on boot. I have no idea what that actually is.), if the address has that then the code will execute.

Edit: Minor logic correction.

Also, as for booting to the Versus Screen, that's an already available code in Dolphin.

Edit 2: And it looks like this only moves the cursor without selecting the character. RIP
Do you know what the 16 bit player 1 select is on https://docs.google.com/spreadsheets/d/1JX2w-r2fuvWuNgGb6D3Cs4wHQKLFegZe2jhbBuIhCG8/edit#gid=12 <this Table?>
 

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
That's the 3rd and 4th byte of 0x803F0E08.
Code:
Hex goes:
08
09
0A
0B
So, 16 bits starting at 0A means 2 bytes, since 8 bits make a byte.

The spreadsheet sucks in that regard, and I should probably delete that field since it's documented further down more accurately.

The code I wrote will mouse over Dr. Mario, but it can't actually select him. The address on startup is actually, "00000000" meaning Dr. Mario would be auto-selected if that bit was set. There's another address handling that, since I couldn't flip any nearby bits to get any results.
 
Last edited:
Top Bottom