A while ago I submitted a block titled "Players," which would change player one to player two and vice versa. Here is WYE's removal log:
Originally posted by WhiteYoshiEggName: Players
Description: Blocks that switch player one to player two, and player two to player one.
Requested by cder3.
Author: tmercswims - Submitted by: tmercswims
Reasons
Let's start with the most unimportant issue:
Code BRA Return
Return: RTL
That branching command is useless here. Keep in mind that labels do not actually interrupt the program flow - the code would have gotten there anyway, with or without the BRA.
And now for something slightly more relevant:
The blocks don't work. When playing as Mario, the first block does nothing, and the second one disables all controller input for some reason. Most likely caused by you using a wrong RAM address:
Originally posted by RAM Map$7E:0DA0 1 byte Player Current Player (0 - Player 1, 1 - Player 2). Used by controller Routine.
Note that the highest bit (#$80) is the "controller 2 plugged in" flag, so you probably want to use $0DB3 instead.
No offense, but actually testing stuff oneself before submitting it would save all of us a lot of time.
To be honest, I don't think changing the current player is as easy as storing to $0DB3 or whatever address - there's just so much stuff you need to look out for when it comes to player changing, I'd say it's barely worth the trouble. Should you manage to do it, though, then I'd suggest not splitting it up into two ASM files - it'd be much more efficient to just have one block that changed Mario to Luigi and vice versa.
I believe there has been a misunderstanding - the blocks did exactly what they were supposed to. The first did nothing - you were already player 1. The other changed the game from accepting the player 1 input to accepting the player 2 - which is obviously different from player 1, so it appeared to disable the controls.
I did leave out the part that changes the graphics to Luigi though
. I have fixed that part, and, barring anything else, may I resubmit?
Other note: I could make a block that would do both, but since it runs every frame then every frame the player is touching it the player would be switching around.
Your layout has been removed.