Language…
7 users online: crocodileman94, isaix, Jordan, Maw,  patcdr, Shiki_Makiro, underway - Guests: 258 - Bots: 352
Users: 64,795 (2,377 active)
Latest user: mathew

Yellow Yoshi Ground Pound UberASM

OpenASM

Been wanting each of the 4 Yoshi (Green, Red, Yellow, & Blue) to have more distinction from each other, ability-wise. In fact, the hack I'm working on kinda depends on it. The "Super Mario Maker 2 Red Yoshi UberASM" by KevinM has helped things get closer to what I want. Now, I think it would be very interesting if someone made a similar UberASM patch with the Yellow Yoshi. Here's what I'm requesting:
Give Yellow Yoshi have the ability to ground pound without a shell in his mouth by holding 'down' while landing from a jump. I would also like to take away his ability to use his tongue (Pressing Y/X will have no function other than running). I'm sure most people would want an option to still use the tongue, so keeping that as an option in the patch would be great. I think "walk-by" eating fruit off bushes should still there as well.

The most important thing for my specific needs would be compatibility with KevinM's Super Mario Maker 2 - Red Yoshi and MarioFanGamer's Switch Blocks with Yoshi.
Let me know if you are interested or need more info! Thank you in advance!
Here's what I came up with:

Code
; Always Stomp Yellow Yoshi UberASM
;   based on Super Mario Maker 2 Red Yoshi UberASM by KevinM

; This code changes the behavior of Yellow Yoshi in the level it's inserted in:
; He always stomps as if he had a shell in his mouth. By default, he can't stick
; his tongue out

; NOTE: this code needs the DB to be set correctly. This means that if you want
; to merge it with other codes using the library method, you'll need to use the
; %call_library() macro, as explained in the UberASM FAQs on SMWCentral.

; Set to 1 to disable tonguing while on yellow yoshi
!DisableTongue = 1


!EnableButton = $04  ; stomp on down pressed when landing
; !EnableButton = $00 ; stomp always
; Button combinations are possible in this format: byetUDLR
; !EnableButton = $0c  ; stomp on either up or down


; Set to 1 to disable the enemy hit counter while riding yellow Yoshi
; Yellow Yoshi will not stomp the ground after bouncing on an enemy, or if Mario just mounted Yoshi
!DisableEnemyHitCounter = 0

main:
    lda $9D                 ;\
    ora $13D4|!addr         ;| If game is frozen, return.
    bne .return             ;/

    lda $13C7|!addr         ;\
    cmp #$04                ;| If Yoshi is not yellow, return.
    bne .return             ;/

    lda $187A|!addr         ;\ If not riding Yoshi, return...
    bne .continue           ;/
if !DisableTongue
    stz $14A3|!addr         ; ...but first, cancel tongue animation.
endif
.return
    rtl

.continue
if !DisableTongue
    lda #%01000000          ;\
    tsb $0DAA|!addr         ;| disable pressing X/Y.
    tsb $0DAB|!addr         ;|
    tsb $0DAC|!addr         ;|
    tsb $0DAD|!addr         ;/
endif

if !DisableEnemyHitCounter
    lda #0
    sta $7E1697 ; consecutive enemy hit counter
endif

.stomp_enable
if !EnableButton
    lda $7E0015
    and #!EnableButton
    beq .return
endif

    lda #1
    sta $7E18E7 ; enable yoshi stomp

    rtl


It's a bit strange when mounting Yoshi on the ground with !DisableEnemyHitCounter=1: with Yoshi hopping up and down, whether or not you get a stomp depends on if Mario mounts Yoshi while he is on the ground.
Your request has been automatically canceled and archived as it is older than 30 days and has not been claimed. More information on why this happens can be found here.

Please feel free to re-request it again by making a new thread, or request something else.

OpenASM