Super Mario World 2: Yoshi's Island/ROM map

From Data Crystal
< Super Mario World 2: Yoshi's Island
Revision as of 05:36, 10 February 2024 by Lelegofrog (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Super Mario World 2: Yoshi's Island.

FUNCTIONS

CHECK BABY BOWSER'S DAMAGE
$0D/CB0D AC 62 10    LDY $1062  [$0D:1062]   A:0056 X:0040 Y:0040 P:envmXdizC
$0D/CB10 C0 03       CPY #$03                A:0056 X:0040 Y:0003 P:envmXdizC	check if=3
$0D/CB12 30 08       BMI $08    [$CB1C]      A:0056 X:0040 Y:0003 P:envmXdiZC	if=3 then end battle

$0D/F12F AC 62 10    LDY $1062  [$0D:1062]   A:008A X:0034 Y:0040 P:envmXdizc
$0D/F132 C0 02       CPY #$02                A:008A X:0034 Y:0002 P:envmXdizc	check if=2
$0D/F134 30 03       BMI $03    [$F139]      A:008A X:0034 Y:0002 P:envmXdiZC	if=2 then run last hit sequence

CHECK BURT'S HEALTH
$06/A860 BC 36 7D    LDY $7D36,x[$06:7D76]   A:0000 X:0040 Y:001E P:envmXdizc
$06/A863 88          DEY                     A:0000 X:0040 Y:005D P:envmXdizc
$06/A864 30 61       BMI $61    [$A8C7]      A:0000 X:0040 Y:005C P:envmXdizc	doesn't branch if Burt is hit
$06/A866 F0 5F       BEQ $5F    [$A8C7]      A:0000 X:0040 Y:005C P:envmXdizc
$06/A868 B9 00 6F    LDA $6F00,y[$06:6F5C]   A:0000 X:0040 Y:005C P:envmXdizc
$06/A86B C9 10 00    CMP #$0010              A:0010 X:0040 Y:005C P:envmXdizc
$06/A86E D0 57       BNE $57    [$A8C7]      A:0010 X:0040 Y:005C P:envmXdiZC
$06/A870 B9 38 7D    LDA $7D38,y[$06:7D94]   A:0010 X:0040 Y:005C P:envmXdiZC
$06/A873 F0 52       BEQ $52    [$A8C7]      A:0014 X:0040 Y:005C P:envmXdizC
$06/A875 BD E2 70    LDA $70E2,x[$06:7122]   A:0014 X:0040 Y:005C P:envmXdizC
$06/A878 38          SEC                     A:0094 X:0040 Y:005C P:envmXdizC
$06/A879 F9 D6 7C    SBC $7CD6,y[$06:7D32]   A:0094 X:0040 Y:005C P:envmXdizC
$06/A87C 85 00       STA $00    [$00:7960]   A:0017 X:0040 Y:005C P:envmXdizC
$06/A87E 49 FF FF    EOR #$FFFF              A:0017 X:0040 Y:005C P:envmXdizC
$06/A881 1A          INC A                   A:FFE8 X:0040 Y:005C P:eNvmXdizC
$06/A882 99 76 7C    STA $7C76,y[$06:7CD2]   A:FFE9 X:0040 Y:005C P:eNvmXdizC
$06/A885 DA          PHX                     A:FFE9 X:0040 Y:005C P:eNvmXdizC
$06/A886 BB          TYX                     A:FFE9 X:0040 Y:005C P:eNvmXdizC
$06/A887 22 4B B2 03 JSL $03B24B[$03:B24B]   A:FFE9 X:005C Y:005C P:envmXdizC

SUBTRACT/COMPARE HEALTH OF BURT
$06/A157 A9 05       LDA #$05                A:2E1D X:0040 Y:0000 P:envMXdizC
$06/A159 9D A2 74    STA $74A2,x[$06:74E2]   A:2E05 X:0040 Y:0000 P:envMXdizC
$06/A15C DE 02 79    DEC $7902,x[$06:7942]   A:2E05 X:0040 Y:0000 P:envMXdizC	decrement health by two
$06/A15F DE 02 79    DEC $7902,x[$06:7942]   A:2E05 X:0040 Y:0000 P:envMXdizC
$06/A162 30 10       BMI $10    [$A174]      A:2E05 X:0040 Y:0000 P:envMXdizC	check if health less than 0
$06/A164 A9 1A       LDA #$1A                A:2E05 X:0040 Y:0000 P:envMXdizC
$06/A166 9D 36 7A    STA $7A36,x[$06:7A76]   A:2E1A X:0040 Y:0000 P:envMXdizC
$06/A169 C2 20       REP #$20                A:2E1A X:0040 Y:0000 P:envMXdizC
$06/A16B A9 F8 FF    LDA #$FFF8              A:2E1A X:0040 Y:0000 P:envmXdizC
$06/A16E 9D 38 7A    STA $7A38,x[$06:7A78]   A:FFF8 X:0040 Y:0000 P:eNvmXdizC
$06/A171 C2 20       REP #$20                A:FFF8 X:0040 Y:0000 P:eNvmXdizC
$06/A173 6B          RTL                     A:FFF8 X:0040 Y:0000 P:eNvmXdizC

ADD/COMPARE DAMAGE TO BIG BOO
$04/B8A9 B5 16       LDA $16,x  [$00:79BA]   A:7018 X:0044 Y:0001 P:envmXdizc
$04/B8AB 18          CLC                     A:00C8 X:0044 Y:0001 P:envmXdizc
$04/B8AC 69 18 00    ADC #$0018              A:00C8 X:0044 Y:0001 P:envmXdizc
$04/B8AF 8D 5E 10    STA $105E  [$04:105E]   A:00E0 X:0044 Y:0001 P:envmXdizc
$04/B8B2 18          CLC                     A:00E0 X:0044 Y:0001 P:envmXdizc
$04/B8B3 69 30 00    ADC #$0030              A:00E0 X:0044 Y:0001 P:envmXdizc	add damage
$04/B8B6 C9 C1 01    CMP #$01C1              A:0110 X:0044 Y:0001 P:envmXdizc	check if damage is maxed out
$04/B8B9 30 24       BMI $24    [$B8DF]      A:0110 X:0044 Y:0001 P:eNvmXdizc
$04/B8DF 95 16       STA $16,x  [$00:79BA]   A:0110 X:0044 Y:0001 P:eNvmXdizc
$04/B8E1 F6 78       INC $78,x  [$00:7A1C]   A:0110 X:0044 Y:0001 P:eNvmXdizc
$04/B8E3 60          RTS                     A:0110 X:0044 Y:0001 P:envmXdizc

$06/97B5 A9 40       LDA #$40                A:0004 X:0058 Y:0000 P:envMXdizc	set Burt's pants Y coord
$06/97B7 9D 00 79    STA $7900,x[$06:7958]   A:0040 X:0058 Y:0000 P:envMXdizc
$06/97BA A9 0A       LDA #$0A                A:0040 X:0058 Y:0000 P:envMXdizc	set Burt's health
$06/97BC 9D 02 79    STA $7902,x[$06:795A]   A:000A X:0058 Y:0000 P:envMXdizc

CHECK SALVO SIZE/HEALTH
$06/866E AC 79 10    LDY $1079  [$06:1079]   A:0000 X:0058 Y:00FF P:envmXdiZc
$06/8671 C0 4C       CPY #$4C                A:0000 X:0058 Y:004B P:envmXdizc
$06/8673 B0 4B       BCS $4B    [$86C0]      A:0000 X:0058 Y:004B P:eNvmXdizc	set as dead if health less than #4C

SET INITIAL SALVO SIZE/HEALTH
$06/831E A9 00 B0    LDA #$B000              A:0100 X:0058 Y:000C P:envmXdizc
$06/8321 8D 78 10    STA $1078  [$06:1078]   A:B000 X:0058 Y:000C P:eNvmXdizc

INCREASE SALVO SIZE/HEALTH UNTIL IT REACHES #FFFF
$06/8B94 BB          TYX                     A:000E X:000E Y:0058 P:envmXdizc
$06/8B95 BD 96 7A    LDA $7A96,x[$06:7AEE]   A:000E X:0058 Y:0058 P:envmXdizc
$06/8B98 D0 12       BNE $12    [$8BAC]      A:0000 X:0058 Y:0058 P:envmXdiZc
$06/8B9A AD 78 10    LDA $1078  [$06:1078]   A:0000 X:0058 Y:0058 P:envmXdiZc
$06/8B9D 18          CLC                     A:B000 X:0058 Y:0058 P:eNvmXdizc
$06/8B9E 69 40 02    ADC #$0240              A:B000 X:0058 Y:0058 P:eNvmXdizc
$06/8BA1 30 03       BMI $03    [$8BA6]      A:B240 X:0058 Y:0058 P:eNvmXdizc
$06/8BA6 8D 78 10    STA $1078  [$06:1078]   A:B240 X:0058 Y:0058 P:eNvmXdizc

CHECK IF EGG STOCK MAXED OUT
$03/BEC4 AD F6 7D    LDA $7DF6  [$03:7DF6]   A:0003 X:0058 Y:0000 P:envmXdizc
$03/BEC7 1A          INC A                   A:000A X:0058 Y:0000 P:envmXdizc	increment current egg stock
$03/BEC8 1A          INC A                   A:000B X:0058 Y:0000 P:envmXdizc
$03/BEC9 C9 0E 00    CMP #$000E              A:000C X:0058 Y:0000 P:envmXdizc	check if maxed out
$03/BECC 90 47       BCC $47    [$BF15]      A:000C X:0058 Y:0000 P:eNvmXdizc	branch if not maxed out

0b:c720 f0 04 1e lm r0,($1e04)   r0=$0000 SRAM=00:1E04 ALT1=0	change to 1e06 to allow 7 eggs (add 2 for any extra egg stocks)
0b:c723 e0       dec r0          r0=$ffff S=1

CHECK IF EGG AT LAST RICOCHET
0a:da24 40       ldw (r0)        r0=$0003 SRAM=00:159A
0a:da25 15       to r5          
0a:da26 3e       alt2            ALT2=1
0a:da27 63       sub #3          r5=$0000 Z=1 CY=1 ALT2=0	#3 is maximum number of ricochets (change to 64 for 4 max ricochets)
0a:da28 0c 36    bcc $da60      

WHEN EGG HAS REACHED LAST RICOCHET, DISABLE IT
0a:da2a d0       inc r0          r0=$0005
0a:da2b f0 9e 00 iwt r0,#$009e   r0=$009e
0a:da2e 3e       alt2            ALT2=1
0a:da2f a0 3d    sms ($007a),r0  SRAM=00:007A ALT2=0
0a:da31 a5 0e    ibt r5,#$0e     r5=$000e
0a:da33 f0 c0 0e iwt r0,#$0ec0   r0=$0ec0
0a:da36 51       add r1          r0=$0f4c CY=0
0a:da37 b5       from r5        
0a:da38 30       stw (r0)        SRAM=00:0F4C

70159A	egg slot address for ricochet counter

SET INITIAL SPEED FOR YOSHI'S JUMP
0b:e0b1 f0 60 fb iwt r0,#$fb60   r0=$fb60
0b:e0b4 3e       alt2            ALT2=1
0b:e0b5 a0 55    sms ($00aa),r0  SRAM=00:00AA ALT2=0

LOAD OBJECT SEQUENCE
$03/9A90 BD 60 73    LDA $7360,x[$03:73BC]   A:9A8F X:005C Y:0010 P:eNvmXdizc	load object byte
$03/9A93 0A          ASL A                   A:00AD X:005C Y:0010 P:envmXdizc
$03/9A94 7D 60 73    ADC $7360,x[$03:73BC]   A:015A X:005C Y:0010 P:envmXdizc
$03/9A97 C2 10       REP #$10                A:0207 X:005C Y:0010 P:envmXdizc
$03/9A99 DA          PHX                     A:0207 X:005C Y:0010 P:envmxdizc
$03/9A9A AA          TAX                     A:0207 X:005C Y:0010 P:envmxdizc
$03/9A9B BF 2E 85 03 LDA $03852E,x[$03:8735] A:0207 X:0207 Y:0010 P:envmxdizc
$03/9A9F 85 00       STA $00    [$00:7960]   A:DAC3 X:0207 Y:0010 P:eNvmxdizc
$03/9AA1 BF 30 85 03 LDA $038530,x[$03:8737] A:DAC3 X:0207 Y:0010 P:eNvmxdizc
$03/9AA5 85 02       STA $02    [$00:7962]   A:1405 X:0207 Y:0010 P:envmxdizc
$03/9AA7 FA          PLX                     A:1405 X:0207 Y:0010 P:envmxdizc
$03/9AA8 E2 10       SEP #$10                A:1405 X:005C Y:0010 P:envmxdizc
$03/9AAA A8          TAY                     A:1405 X:005C Y:0010 P:envmXdizc
$03/9AAB 5A          PHY                     A:1405 X:005C Y:0005 P:envmXdizc
$03/9AAC AB          PLB                     A:1405 X:005C Y:0005 P:envmXdizc
$03/9AAD DC 60 79    JML [$7960][$05:DAC3]   A:1405 X:005C Y:0005 P:envmXdizc	jump to object sequence code
$05/DAC3 22 52 AA 03 JSL $03AA52[$03:AA52]   A:1405 X:005C Y:0005 P:envmXdizc

STORE NUMBER OF STARS TO SPAWN FROM A ? CLOUD
$03/C7F5 A9 05 00    LDA #$0005              A:0182 X:0182 Y:0028 P:envmxdizc
$03/C7F8 4C 6F C7    JMP $C76F  [$03:C76F]   A:0005 X:0182 Y:0028 P:envmxdizc
$03/C76F 85 08       STA $08    [$00:7968]   A:0005 X:0182 Y:0028 P:envmxdizc

STORE NUMBER OF STARS TO SPAWN FROM A RED EGG
$03/B42A A9 01 00    LDA #$0001              A:0002 X:0002 Y:0034 P:envmXdizc	numbers of stars equals this + 1
$03/B42D 80 03       BRA $03    [$B432]      A:0001 X:0002 Y:0034 P:envmXdizc
$03/B432 85 08       STA $08    [$00:7968]   A:0001 X:0002 Y:0034 P:envmXdizc
$03/B434 AD B6 03    LDA $03B6  [$03:03B6]   A:0001 X:0002 Y:0034 P:envmXdizc
$03/B437 C9 2C 01    CMP #$012C              A:006D X:0002 Y:0034 P:envmXdizc
$03/B43A A9 A2 01    LDA #$01A2              A:006D X:0002 Y:0034 P:eNvmXdizc
$03/B43D 90 03       BCC $03    [$B442]      A:01A2 X:0002 Y:0034 P:envmXdizc
$03/B442 22 77 A3 03 JSL $03A377[$03:A377]   A:01A2 X:0002 Y:0034 P:envmXdizc

MAXIMUM NUMBER OF EGGS GENERATED FROM EGG BLOCK
$05/FEE9 A6 12       LDX $12    [$00:7972]   A:0020 X:0009 Y:0000 P:envmXdiZC
$05/FEEB AD 0C 30    LDA $300C  [$05:300C]   A:0020 X:0058 Y:0000 P:envmXdizC
$05/FEEE C9 06 00    CMP #$0006              A:0000 X:0058 Y:0000 P:envmXdiZC	check if 6 eggs on screen
$05/FEF1 B0 3A       BCS $3A    [$FF2D]      A:0000 X:0058 Y:0000 P:eNvmXdizc
$05/FEF3 A9 25 00    LDA #$0025              A:0000 X:0058 Y:0000 P:eNvmXdizc	set green egg object
$05/FEF6 22 4C A3 03 JSL $03A34C[$03:A34C]   A:0025 X:0058 Y:0000 P:envmXdizc

OBJECT EDIBLITY
09:8321 47       ldw (r7)        r0=$68a2 SRAM=00:0FFC
09:8322 95       sex             r0=$ffa2 S=1
09:8323 0a 11    bpl $8336      			branch if not a painful object
09:8325 60       sub r0          r0=$0000 Z=1 S=0
09:8326 d0       inc r0          r0=$0001 Z=0
09:8327 3e       alt2            ALT2=1
09:8328 a0 af    sms ($015e),r0  SRAM=00:015E ALT2=0
09:832a a0 14    ibt r0,#$14     r0=$0014		object causes pain to tongue
09:832c 3e       alt2            ALT2=1
09:832d a0 b0    sms ($0160),r0  SRAM=00:0160 ALT2=0

CHECK IF CRAB HAS BEEN HIT
$05/86C8 BC 36 7D    LDY $7D36,x[$05:7D82]   A:05D5 X:004C Y:0000 P:envmXdizC
$05/86CB 88          DEY                     A:05D5 X:004C Y:0055 P:envmXdizC
$05/86CC 30 42       BMI $42    [$8710]      A:05D5 X:004C Y:0054 P:envmXdizC	branch if crab hasn't been hit
$05/86CE B9 00 6F    LDA $6F00,y[$05:6F54]   A:05D5 X:004C Y:0054 P:envmXdizC
$05/86D1 C9 10 00    CMP #$0010              A:0010 X:004C Y:0054 P:envmXdizC
$05/86D4 D0 3A       BNE $3A    [$8710]      A:0010 X:004C Y:0054 P:envmXdiZC
$05/86D6 B9 38 7D    LDA $7D38,y[$05:7D8C]   A:0010 X:004C Y:0054 P:envmXdiZC
$05/86D9 F0 35       BEQ $35    [$8710]      A:0018 X:004C Y:0054 P:envmXdizC
$05/86DB BB          TYX                     A:0018 X:004C Y:0054 P:envmXdizC
$05/86DC 22 5B B2 03 JSL $03B25B[$03:B25B]   A:0018 X:0054 Y:0054 P:envmXdizC

MOVE EGG TARGET
0b:e404 a0 77    lms r0,($00ee)  r0=$0400 SRAM=00:00EE ALT1=0
0b:e406 1e       to r14         
0b:e407 67       sub r7          r14=$de00 Z=0 S=1
0b:e408 09 07    beq $e411      
0b:e40a 01       nop            
0b:e40b f6 c0 00 iwt r6,#$00c0   r6=$00c0		speed of target
0b:e40e 0b 04    bmi $e414       r15=$e414
0b:e413 01       nop            
0b:e414 3e       alt2            ALT2=1
0b:e415 a6 78    sms ($00f0),r6  SRAM=00:00F0 ALT2=0
0b:e417 56       add r6          r0=$04c0 S=0
0b:e418 20       with r0         B=1
0b:e419 1e       move r14,r0     r14=$04c0 B=0
0b:e41a 67       sub r7          r0=$dec0 S=1
0b:e41b 3d       alt1            ALT1=1
0b:e41c c6       xor r6          r0=$de00 ALT1=0
0b:e41d 2e       with r14        B=1
0b:e41e 10       move r0,r14     r0=$04c0 B=0
0b:e41f 0b 03    bmi $e424       r15=$e424
0b:e423 01       nop            
0b:e424 05 1f    bra $e445       r15=$e445
0b:e444 01       nop            
0b:e445 3e       alt2            ALT2=1
0b:e446 a0 77    sms ($00ee),r0  SRAM=00:00EE ALT2=0

SET INITIAL POSITION OF EGG TARGET
0b:e5ec f7 00 04 iwt r7,#$0400   r7=$0400		position
0b:e5ef 3d       alt1            ALT1=1
0b:e5f0 f0 71 00 lm r0,($0071)   r0=$8000 SRAM=00:0071 ALT1=0
0b:e5f3 3e       alt2            ALT2=1
0b:e5f4 78       and #8          r0=$0000 ALT2=0
0b:e5f5 09 04    beq $e5fb       r15=$e5fb
0b:e5fa 01       nop            
0b:e5fb 60       sub r0         
0b:e5fc 3e       alt2            ALT2=1
0b:e5fd a0 70    sms ($00e0),r0  SRAM=00:00E0 ALT2=0
0b:e5ff 3e       alt2            ALT2=1
0b:e600 a7 77    sms ($00ee),r7  SRAM=00:00EE ALT2=0

CHECK IF EGG TARGET AT MAX DEGREE
0b:e434 f7 00 2e iwt r7,#$2e00  
0b:e437 67       sub r7          r0=$0000
0b:e438 0c 0b    bcc $e445      

COMPARE CURRENT HORIZ. SPEED TO MAX
0b:e250 ef       getbh           r8=$0300 ROM=0A:EC2C ALT1=0
0b:e251 3d       alt1            ALT1=1
0b:e252 a0 5a    lms r0,($00b4)  r0=$02f0 SRAM=00:00B4 ALT1=0

LOAD MAX HORIZ. JUMPING SPEED
0b:e0d0 f4 00 03 iwt r4,#$0300   r4=$0300

LOAD SPEED DECREMENT VALUE FOR VERT. JUMPING
0b:ce1b a7 28    ibt r7,#$28     r7=$0028

SET MAXIMUM FALLING SPEED
0b:ce2c f0 00 04 iwt r0,#$0400   r0=$0400
0b:ce2f 62       sub r2          r0=$ff60 S=1
0b:ce30 0d 03    bcs $ce35      

SET OBJECT FOR HOOKBILL TO SPIT OUT
$01/9047 A6 12       LDX $12    [$00:7972]   A:0020 X:0009 Y:0000 P:envmXdiZC
$01/9049 AC 0C 30    LDY $300C  [$01:300C]   A:0020 X:0044 Y:0000 P:envmXdizC
$01/904C C0 06       CPY #$06                A:0020 X:0044 Y:0000 P:envmXdiZC	check if six eggs on screen
$01/904E 30 27       BMI $27    [$9077]      A:0020 X:0044 Y:0000 P:eNvmXdizc
$01/9077 A9 25 00    LDA #$0025              A:0020 X:0044 Y:0000 P:eNvmXdizc	set green egg
$01/907A 22 64 A3 03 JSL $03A364[$03:A364]   A:0025 X:0044 Y:0000 P:envmXdizc

CHECK DAMAGE TO HOOKBILL
$01/8F03 EE 7C 10    INC $107C  [$01:107C]   A:0029 X:0044 Y:0000 P:envmXdizC
$01/8F06 EE 7C 10    INC $107C  [$01:107C]   A:0029 X:0044 Y:0000 P:envmXdizC
$01/8F09 AC 7C 10    LDY $107C  [$01:107C]   A:0029 X:0044 Y:0000 P:envmXdizC
$01/8F0C C0 06       CPY #$06                A:0029 X:0044 Y:0002 P:envmXdizC
$01/8F0E D0 0A       BNE $0A    [$8F1A]      A:0029 X:0044 Y:0002 P:eNvmXdizc

CHECK BASEBALL CATCHER/STRIKER DAMAGE
$07/A589 BC C0 77    LDY $77C0,x[$07:7814]   A:8001 X:0054 Y:00FF P:eNvmXdizC
$07/A58C C0 02       CPY #$02                A:8001 X:0054 Y:0000 P:envmXdiZC
$07/A58E B0 3A       BCS $3A    [$A5CA]      A:8001 X:0054 Y:0000 P:eNvmXdizc

COINS POP FROM BASEBALL CATCHER/STRIKER
$07/A5EF DA          PHX                     A:0004 X:0054 Y:00FF P:envmXdizC
$07/A5F0 A6 00       LDX $00    [$00:7960]   A:0004 X:0054 Y:00FF P:envmXdizC
$07/A5F2 BD E3 A5    LDA $A5E3,x[$07:A5E7]   A:0004 X:0004 Y:00FF P:envmXdizC
$07/A5F5 85 02       STA $02    [$00:7962]   A:FF00 X:0004 Y:00FF P:eNvmXdizC
$07/A5F7 BD E9 A5    LDA $A5E9,x[$07:A5ED]   A:FF00 X:0004 Y:00FF P:eNvmXdizC
$07/A5FA 85 04       STA $04    [$00:7964]   A:FE00 X:0004 Y:00FF P:eNvmXdizC
$07/A5FC FA          PLX                     A:FE00 X:0004 Y:00FF P:eNvmXdizC
$07/A5FD A9 15 01    LDA #$0115              A:FE00 X:0054 Y:00FF P:envmXdizC
$07/A600 22 4C A3 03 JSL $03A34C[$03:A34C]   A:0115 X:0054 Y:00FF P:envmXdizC

SET MAxIMUM NUMBER OF SEEDS/ICE/FIRE FOR A SUPER MELON
$01/DB5C A9 03 00    LDA #$0003              A:000E X:000E Y:0000 P:envmXdizc
$01/DB5F 8D 6A 61    STA $616A  [$01:616A]   A:0003 X:000E Y:0000 P:envmXdizc
$01/DB62 EE 62 61    INC $6162  [$01:6162]   A:0003 X:000E Y:0000 P:envmXdizc
$01/DB65 EE 68 61    INC $6168  [$01:6168]   A:0003 X:000E Y:0000 P:envmXdizc
$01/DB68 A9 5A 00    LDA #$005A              A:0003 X:000E Y:0000 P:envmXdizc	number
$01/DB6B 8D 70 61    STA $6170  [$01:6170]   A:005A X:000E Y:0000 P:envmXdizc
$01/DB6E A9 14 00    LDA #$0014              A:005A X:000E Y:0000 P:envmXdizc
$01/DB71 22 D2 85 00 JSL $0085D2[$00:85D2]   A:0014 X:000E Y:0000 P:envmXdizc

SET MAXIMUM NUMBER OF SEEDS FOR A MELON
$03/9BA3 A9 0A 00    LDA #$000A              A:001E X:0050 Y:0001 P:envmXdizC
$03/9BA6 8D 70 61    STA $6170  [$03:6170]   A:000A X:0050 Y:0001 P:envmXdizC

SET MAXIMUM NUMBER OF ICE/FIRE FOR A MELON
$03/9B9B A9 1E 00    LDA #$001E              A:0009 X:0058 Y:0001 P:envmXdiZC
$03/9B9E BC 02 74    LDY $7402,x[$03:745A]   A:001E X:0058 Y:0001 P:envmXdizC
$03/9BA1 F0 03       BEQ $03    [$9BA6]      A:001E X:0058 Y:0000 P:envmXdiZC
$03/9BA6 8D 70 61    STA $6170  [$03:6170]   A:001E X:0058 Y:0000 P:envmXdiZC

DECREMENT ICE/FIRE
0b:e8c8 a0 b8    lms r0,($0170)  r0=$0050 SRAM=00:0170 ALT1=0
0b:e8ca 3e       alt2            ALT2=1
0b:e8cb 6a       sub #10         r0=$0046 CY=1 ALT2=0
0b:e8cc 90       sbk            

SET STOMPING SPEED
0b:c930 f0 00 08 iwt r0,#$0800   r0=$0800
0b:c933 3e       alt2            ALT2=1
0b:c934 a0 55    sms ($00aa),r0  SRAM=00:00AA ALT2=0

SET EGG TOSSING SPEED
$03/BCAA A9 F0 07    LDA #$07F0              A:05A1 X:0058 Y:0034 P:envmXdizc
$03/BCAD 8D 0C 30    STA $300C  [$03:300C]   A:07F0 X:0058 Y:0034 P:envmXdizc

SET ACCELERATION FOR SHYGUYS WALKING
$04/8DF2 A9 05 00    LDA #$0005              A:059D X:0058 Y:0002 P:envmXdizc
$04/8DF5 9D 40 75    STA $7540,x[$04:7598]   A:0005 X:0058 Y:0002 P:envmXdizc

SET SPEED OF SHY GUY
$04/8DD4 B9 9C 8D    LDA $8D9C,y[$04:8D9C]   A:0000 X:0058 Y:0000 P:envmXdiZC
$04/8DD7 9D E0 75    STA $75E0,x[$04:7638]   A:FFA7 X:0058 Y:0000 P:eNvmXdizC

///////////////////////////////////////////////////////////////////////////////////

ROM ADDRESSES (these are all in lo-rom format)

03852E-038B2A	object field functions (3 bytes each)
these functions set the following parameters:
1.what to happen when Yoshi touches the object
2.movement/animation sequence
3.what to happen when hit by an egg
4.various properties such as what to generate when touched or hit

048D9C	speed of Shy Guy moving left (2 bytes)
048D9E	speed of Shy Guy moving right (2 bytes)

0585A3	jumping power of a large arrow (2 bytes)
05DABB	stretchy animation values for message box (2 values, 2 bytes each)

08AC98-08AD17	Yellow Bullet Bill speeds 0deg-90deg
08AE18	acceleration value for running

0A9220-0A931F	edibility bits 12-8 (8 bytes each)

0A9320-0A971D	object edibility (2 bytes each)
bit 15		hurts tongue
bit 14		does nothing
bit 13
bit 12-8	

0A971E-0A9B1B	what object does when it touches a wall
0A9B1C		object size?

0AEC2B	maximum speed for running right (2 bytes)
0AEC2D	maximum speed for running left (2 bytes)
0AF0B3	speed 1
0AF35D	maximum tongue extension (right)
0AF361	maximum tongue extension (left)
0AF36D	maximum tongue extension (upward)
098358	time limit for keeping something in mouth (2 bytes: 1200 frames / 20 seconds)

External links