Hello! I am the MarioBros980. Also known as Kasami. I'm a regular user, also known as ASM, Patches, Tools, 65c816, etc... My native language is Portuguese, I understand English. I can improve with Google Translate.
I'm 21 years old and am currently on High School or whatever the equivalent of that is in my country. live in Brazil, Don't hesitate to PM, feel free to PM.
I'm just a regular SMW Hacker. I can design levels, overworlds, and code really simple stuff with ASM.
I learn ASM, coding, and more. I started hacking in sometime and I joined this website a couple years.
I hope enjoy your stay! See you around!
LDA -> Load Data to Accumulator. Load a value into the game. E.g. LDA #$2C or LDA $7E
STA -> Store whatever data was loaded into the Accumulator. E.g. STA $13CC
CMP -> CoMPare. Compare a value with A. E.g. LDA $14AF CMP $01
BEQ -> Branch if value in Accumulator is equal. Use a symbol right after it.
BNE -> Branch if value in Accumulator is not equal. Use a symbol right after it.
BCC -> Branch if value in Accumulator is less than or equal to what is compared. Use a symbol right after it.
BCS -> Branch if value in Accumulator is more than equal to what is compared. Use a symbol right after it.
BMI -> Branches if A is negative (80-FF).
BPL -> Branches if A is positive (00-7F).
BRA -> Always will branch, no matter what the values are. No CMP needed before it.
SEC -> Command used to subtract. Use SBC right after it.
SBC -> Right a value (in # or #$) to subtract it from the value in Accumulator.
CLC -> Command used to add. Use ADC right after it.
ADC -> Adds a certain amount to A (remember to use STA to store the new value).
INC -> Increase a value by one only.
DEC -> Decrease a value by one only.
STZ -> Set whatever address into it to zero. E.g. STZ $0DBF
TAX -> Put A into X
TAY -> Put A into Y
TXA -> Put X into A
TYA -> Put Y into A
TXY -> Put X into Y
TYX -> Put Y into X
JSL -> Jumps to a routine then follows whatever code is after it after the routine ends. RTL must be used here.
JSR -> Same as above, but RTS is used.
CPX -> Compare in the X register
CPY -> Compare in the Y register
RTL -> Used to end a code (after a JSL).
RTS -> Used to end a code (after a JSR).
REP -> Go into 16-bit mode.
SEP -> Go back into 8-bit mode.
INX -> Increment X by 1
INY -> Increment Y by 1
DEX -> Decrement X by 1
DEY -> Decrement Y by 1.
BRK -> Useless, crashes the ROM.
STP -> Freezes the game.
PLX -> Pull X
PLA -> Pull A
PLY -> Pull Y
PHX -> Push/Preserve X
PHY -> Push/Preserve Y
PHA -> Push/Preserve A
LDX -> Load into X
LDY -> Load into Y
STX -> Store into X
STY -> Store into Y
JSR -> Same as JSL, but RTS is used to end the code
JMP -> Jump to a label in the code (JMP label).
JML -> Same as JMP, but can branch if the address is in a different bank.
XBA -> Flips the value in A. (e.g if a = $1815 XBA makes it 1518).
ORA -> Used to set bits (e.g ORA #$80 sets the last bit) Also check if mutliple RAM Address are the same value (e.g. LDA $75 ORA $85 BEQ BothZero)
TSB - Much easier way of setting bits. LDA #$80 ;set bit 7 TSB $85 ; to RAM Address $85
TRB - Basically, the opposite of TSB. It will clear a bit. LDA #$80 TRB $1F2C will clear bit 8 of $1F2C.