 |
|
 |
|
| Posts by tehaxor69 |
|
|
|
|
|
|
| (restricted) | | (restricted) |
|
|
@Zeldara109
Changing the scene at the end of a boss battle is a little more difficult
because all of the bosses are hard coded to preform the transition events.
To enable keys for all bosses, change:
ROM 0x016264 SNES 0x02E064 from [F0 27] to [EA EA]
The X-4 scene is shorter than the X-8, it will cut off after the wipe out effect.
You could get the complete key scene with burt by changing
ROM 0x0324BA SNES 0x06A2BA to [A9 2D 00 9D 60 73 A9 0B 00 95 76 6B]
Burt is still a little glitchy with this one, untransformed burt will jump in again because it reloads him.
Prince Froggy is not compatible with the key, but his SFX render area could be moved to fix it.
Edit:
To get Burt's scene fully functional change ROM 0x0324BA SNES 0x06A2BA to
BD E2 70 85 00 BD 82 71 38 E9 10 00 85 02 22 A3
E1 02 A9 C0 00 9D 96 7A
EA EA EA EA EA EA EA EA EA EA EA EA EA EA EA EA
EA EA EA EA EA EA EA EA EA
All Boss Key Modifications:
To give Burt The Bashful a key, change:
ROM 0x0324E8 SNES 0x06A2E8 to 0xA3
To give Bigger Boo a key, change:
ROM 0x023D7C SNES 0x04BB7C to 0xA3
To give Prince Froggy A key, change:
ROM 0x077A10 SNES 0x0EF810 to 0xA3
To give Marching Milde A key, change:
ROM 0x032D59 SNES 0x06AB59 to 0xA3
To give Sluggy The Unshaven a key, change:
ROM 0x015970 SNES 0x02D770 to 0xA3
To give Tap-Tap The Red Nose a key, change:
ROM 0x07A7B6 SNES 0x0FA5B6 to 0xA3
To remove Salvo The Slimes's key, change:
ROM 0x030EB5 SNES 0x068CB5 to 0x9C
To remove Potted Ghost's key, change:
ROM 0x0107D4 SNES 0x0285D4 to 0x9C
To remove Naval Piranha's key, change:
ROM 0x0173F9 SNES 0x02F1F9 to 0x9C For Normal
ROM 0x0008D8 SNES 0x0086D8 to 0x9C For "OH, MY!!!" scene
To remove Hookbill The Koopa's key, change:
ROM 0x00A20B SNES 0x01A00B to 0x9C
To remove Raphael The Raven's key, change:
ROM 0x07B92D SNES 0x0FB72D to 0x9C
|
|
|
|
Here are all the tables used for the bonus levels.
ROM 0x081CB8 SNES 0x109AB8
0x0089 Bonus 1
0x008D Bonus 2
0x0091 Bonus 3
0x0093 Bonus 4
0x008F Bonus 5
0x008B Bonus 6
ROM 0x081CC4 SNES 0x109AC4
0x008A Bonus 1
0x008E Bonus 2
0x0092 Bonus 3
0x0094 Bonus 4
0x0090 Bonus 5
0x008C Bonus 6
ROM 0x081CD0 SNES 0x109AD0
0x0095 Bonus 1
0x0095 Bonus 2
0x0095 Bonus 3
0x0095 Bonus 4
0x0095 Bonus 5
0x0095 Bonus 6
ROM 0x081C88 SNES 0x109A88
0x401C Bonus 1
0x410C Bonus 2
0x41FC Bonus 3
0x4274 Bonus 4
0x4184 Bonus 5
0x4094 Bonus 6
ROM 0x081C94 SNES 0x109A94
0x4076 Bonus 1
0x4166 Bonus 2
0x4256 Bonus 3
0x42CE Bonus 4
0x41DE Bonus 5
0x40EE Bonus 6
ROM 0x081CA0 SNES 0x109AA0
0x2860 Bonus 1
0x2860 Bonus 2
0x2860 Bonus 3
0x2860 Bonus 4
0x2860 Bonus 5
0x2860 Bonus 6
ROM 0x081CAC SNES 0x109AAC
0x2860 Bonus 1
0x2860 Bonus 2
0x2860 Bonus 3
0x2860 Bonus 4
0x2860 Bonus 5
0x2860 Bonus 6
ROM 0x081F34 SNES 0x109D34
0x68D8 Bonus 1
0x68D8 Bonus 2
0x68D8 Bonus 3
0x68D9 Bonus 4
0x68D8 Bonus 5
0x68D8 Bonus 6
ROM 0x081E74 SNES 0x109C74
0x9E78 Bonus 1
0x9EF6 Bonus 2
0xA000 Bonus 3
0xA0BD Bonus 4
0x9FB5 Bonus 5
0x9F3F Bonus 6
ROM 0x082369 SNES 0x10A169
0xA26F Bonus 1
0xB5CE Bonus 2
0xCD4F Bonus 3
0xD181 Bonus 4
0xC497 Bonus 5
0xBD5D Bonus 6
ROM 0x082638 SNES 0x10A438
0x0058 Bonus 1
0x00E8 Bonus 2
0x0118 Bonus 3
0x00B8 Bonus 4
0x0088 Bonus 5
0xE0CE Bonus 6
|
|
|
|
Which bonus games are available for each world.
ROM 0x00C12C SNES 0x01BF2C
0x00 0x02 World 1
0x04 0x0A World 2
0x06 0x08 World 3
0x04 0x02 World 4
0x00 0x08 World 5
0x06 0x0A World 6
0x00 = Flip cards
0x02 = Scratch and match
0x04 = Drawing lots
0x06 = Match cards
0x08 = Roulette
0x0A = Slot machine
|
|
|
|
Here are some offsets for the controller options layout
ROM 0x0BEC3A SNES 0x17EA3A //Width of "Lock", "Grab / Spitout", "Jump"
Offset for the top outlines
ROM 0x0BEB87 SNES 0x17E987 "Lock"
ROM 0x0BEB8A SNES 0x17E98A "Grab / Spitout"
ROM 0x0BEB8D SNES 0x17E98D "Jump"
Offset for the bottom outlines
ROM 0x0BEB93 SNES 0x17E993 "Lock"
ROM 0x0BEB96 SNES 0x17E996 "Grab / Spitout"
ROM 0x0BEB99 SNES 0x17E999 "Jump"
Offset for "Lock" -no boarder
ROM 0x0BEC3F SNES 0x17EA3F
ROM 0x0BEC45 SNES 0x17EA45
Offset for "Grab / Spitout" -no boarder
ROM 0x0BEC4A SNES 0x17EA4A
ROM 0x0BEC50 SNES 0x17EA50
Offset for "Jump" -no boarder
ROM 0x0BEC55 SNES 0x17EA55
ROM 0x0BEC5B SNES 0x17EA5B
To Move "Lock" -no boarder
ROM 0x0BEC3F SNES 0x17EA3F to [CE 0A]
ROM 0x0BEC45 SNES 0x17EA45 to [0E 0B]
To Move "Grab / Spitout" -no boarder
ROM 0x0BEC55 SNES 0x17EA55 to [4E 0C]
ROM 0x0BEC5B SNES 0x17EA5B to [8E 0C]
The boarders might need to be graphically edited, or removed and added into the tabs themselves.
I still need to find the offsets for the sides.
You could hijack here to add the "X Stuff" panel.
ROM 0x0BEC5D SNES 0x17EA5D
The new tab can be written here in ram
0x000B8E for top
0x000BCE for bottom
Edit:
"Lock" Top left
ROM 0x0BEBCB SNES 0x17E9CB
"Lock" Bottom left
ROM 0x0BEBCE SNES 0x17E9CE
"Grab / Spitout" Top left
ROM 0x0BEBD1 SNES 0x17E9D1
"Grab / Spitout" Bottom left
ROM 0x0BEBD4 SNES 0x17E9D4
"Jump" Top left
ROM 0x0BEBD7 SNES 0x17E9D7
"Lock" Bottom right
ROM 0x0BEBDD SNES 0x17E9DD
"Grab / Spitout" Bottom right
ROM 0x0BEBE0 SNES 0x17E9E0
"Jump" Top right
ROM 0x0BEBE3 SNES 0x17E9E3
"Jump" Bottom right
ROM 0x0BEBE6 SNES 0x17E9E6
"Lock" Top right
ROM 0x0BEBEE SNES 0x17E9EE
"Grab / Spitout" Top right
ROM 0x0BEBF1 SNES 0x17E9F1
"Jump" Bottom left
ROM 0x0BEBF7 SNES 0x17E9F7
"A Action" Top left
ROM 0x0BEBFF SNES 0x17E9FF
"A Action" Bottom left
ROM 0x0BEC07 SNES 0x17EA07
"A Action" Top right
ROM 0x0BEC0F SNES 0x17EA0F
"A Action" Bottom right
ROM 0x0BEC12 SNES 0x17EA12
"A Action" Top right patch
ROM 0x0BEC1A SNES 0x17EA1A
"A Action" Top left patch
ROM 0x0BEC20 SNES 0x17EA20
"A Action" Bottom left patch
ROM 0x0BEC26 SNES 0x17EA26
|
| Last edited on 2012-04-13 08:16:23 AM by tehaxor69. |
|
|
|
|
The auto scroller coordinates are absolute, not relative, look at this post on how to edit them.
|
|
|
|
To remove the boarders for the objects on the left side(Lock, Grab/Spitout)
Sides
ROM 0x0BEBED SNES 0x17E9ED to [EA EA EA]
ROM 0x0BEBF0 SNES 0x17E9F0 to [EA EA EA]
ROM 0x0BEBDC SNES 0x17E9DC to [EA EA EA]
ROM 0x0BEBDF SNES 0x17E9DF to [EA EA EA]
ROM 0x0BEBD0 SNES 0x17E9D0 to [EA EA EA]
ROM 0x0BEBD3 SNES 0x17E9D3 to [EA EA EA]
ROM 0x0BEBCA SNES 0x17E9CA to [EA EA EA]
ROM 0x0BEBCD SNES 0x17E9CD to [EA EA EA]
Top
ROM 0x0BEB86 SNES 0x17E986 to [EA EA EA]
ROM 0x0BEB89 SNES 0x17E989 to [EA EA EA]
Bottom
ROM 0x0BEB92 SNES 0x17E992 to [EA EA EA]
ROM 0x0BEB95 SNES 0x17E995 to [EA EA EA]
The tilemaps of the left and right parts are these offsets +1.
|
|
|
|
Originally posted by Yoshis FanOne of these two things must be done to make him worthy to be 5-8's boss:
- Increase speed
- Make Sparks hit Yoshi on logs
I would be glad if someone could find something for me.
ROM 0x07AE23 SNES 0x0FAC23 [38] How high sparks are off the ground
ROM 0x07ADD8 SNES 0x0FABD8 [0003] How fast sparks move right
ROM 0x07ADDA SNES 0x0FABDA [FFFD] How fast sparks move left
ROM 0x07AE46 SNES 0x0FAC46 [80] Life time of sparks
ROM 0x07AE47 SNES 0x0FAC47 [90] Change to 0x80 to make sparks last forever
ROM 0x07B70D SNES 0x0FB50D [07] What health level uses method 1 movement rate [0001 FFFF]
ROM 0x07B711 SNES 0x0FB511 [0030] Method 2 movement rate frequency
|
| Last edited on 2012-04-18 06:22:21 PM by tehaxor69. |
|
|
|
ROM 0x07B70D just determines what health value he is calm.
ROM 0x07B711 is a pointer to a 16 bit value that is always incrementing,
depending on what the value is, it will cause Raphael to more 1X or 2X per frame.
|
|
|
|
Here is the way Raphael the Raven works
He has 3 hit points, health values: (0x07, 0x03, 0x01)
When he moves, the health value is read in, this value is compared with 0x07,
if so it does method 1, if not it does method 2.
Method 1 adds values 0x01 or 0xFF depending on the direction he is facing.
Method 2 does the same, but in addition it reads the value at 0x0030 that increments once per frame,
this value is AND with his health value, when the result of this is 0 he moves twice, other wise he moves once.
Health value 0x03 will have the pattern:
Cycle 0 1 2 3 4 5 6 7…
Pattern 2 1 1 1 2 1 1 1…
Health value 0x01 will have the pattern:
Cycle 0 1 2 3 4 5 6 7…
Pattern 2 1 2 1 2 1 2 1…
So the routine needs to be hacked to produce a different movement pattern.
You could change it so that it reads in the 0x0030 value AND with 0x03, this will be the table index,
1 table for each health level, each number in the table is the number of times to add the 0x7B689 values
Normal health values:
0x07:
1 1 1 1 100%
0x03:
2 1 1 1 125%
0x01:
2 1 2 1 150%
The values you wanted:
0x07:
1 2 2 2 175%
0x03:
2 2 2 2 200%
0x01:
3 2 2 2 225%
|
|
|
|
Here is a Xkas patch to modify the speed of Raphael the Raven.
Code
lorom
header
ORG $0FB509
PHX
LDA $0030
AND #$03
STA $00
LDA $7900,X
TAX
LDA HealthIndexTable,X
ASL A
ASL A
CLC
JSR $E056
PLX
RTS
ORG $0FE056
ADC $00
TAX
LDA Speed,X
TAX
LOOP:
JSR MOVE
DEX
CPX #$00
BNE LOOP
RTS
MOVE:
LDA $105D
CLC
ADC $B489,Y
STA $105D
RTS
HealthIndexTable:
db $00, $00, $00, $01, $00, $00, $00, $02
Speed:
db $03, $02, $02, $02 ;0x01
db $02, $02, $02, $02 ;0x03
db $01, $02, $02, $02 ;0x07
|
|
|
|
You could update the tables with:
Code
HealthIndexTable:
$00, $00, $00, $01, $00, $00, $00, $02, $00, $00, $00, $00, $00, $00, $00, $03
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $04
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $05
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06
Health:
db $03, $02, $02, $02 ;0x01
db $02, $02, $02, $02 ;0x03
db $01, $02, $02, $02 ;0x07
db $02, $01, $02, $01 ;0x0F
db $02, $01, $01, $01 ;0x1F
db $01, $01, $01, $01 ;0x3F
|
|
|
|
You can't make those changes to Hookbill the Koopa because of SNES hardware limitations with the mode 7.
It should be possible to render his shell as a SFX sprite to sprite slots (4-5) or (5-6) once the transformation starts,
won't be hard to convert the M7BG1 to 4BPP, because his palettes only use 10 colors+transparency.
|
|
|
|
Here is a code that will allow for spikes(or other objects) during Hookbill's battle.
This will modify HDMA channels 6-7 to allow layer 2 to show for the first 32 lines,
then switch to M7BG1 for 122 lines,
then switch back to layer 2.
I have explained in the Xkas what to change to move spikes down further if wanted.
Code
lorom
header
!TempVar = $7FE0
ORG $00813A
JML HookBill_HDMA_Hack
ORG $3FFD00
HookBill_HDMA_Hack:
PHP
REP #$20
LDA $7FFE ;Read Translevel Number
CMP #$(Insert Translevel Number Here)
BNE SKIP_CHECK
LDA !TempVar
CMP #$0000
BNE SKIP_CHECK
LDA $7E5040
CMP #$0770
BNE DONE
INC !TempVar
SKIP_CHECK:
LDA #NewChannel6
STA $4362
LDA #$003F
STA $4364
LDA #NewChannel7
STA $4372
LDA #$003F
STA $4374
DONE:
PLP
DEC $011B
JML $0080F1
;This data is for spikes at the top of the screen.
;Add 0x10 to the 0x20 and 0x7A for every tile you want to move down.
NewChannel6:
db $20, $12, $00, $7A, $11, $00, $01, $12, $00, $00
NewChannel7:
db $20, $49, $7A, $07, $01, $49, $00

The spikes are moved down one row in this image.
|
|
|
|
OK, use this code to fix the overworld bug.
Code
lorom
header
!TempVar = $7FE0
ORG $00813A
JML HookBill_HDMA_Hack
ORG $3FFD00
HookBill_HDMA_Hack:
PHP
REP #$20
LDA $0118
CMP #$000F
BNE DONE
LDA $7FFE ;Read Translevel Number
CMP #$(Insert Translevel Number Here)
BNE DONE
LDA !TempVar
CMP #$0000
BNE SKIP_CHECK
LDA $7E5040
CMP #$0770
BNE DONE
INC !TempVar
SKIP_CHECK:
LDA #NewChannel6
STA $4362
LDA #$003F
STA $4364
LDA #NewChannel7
STA $4372
LDA #$003F
STA $4374
DONE:
PLP
DEC $011B
JML $0080F1
;This data is for spikes at the top of the screen.
;Add 0x10 to the 0x20 and 0x7A for every tile you want to move down.
NewChannel6:
db $20, $12, $00, $7A, $11, $00, $01, $12, $00, $00
NewChannel7:
db $20, $49, $7A, $07, $01, $49, $00
|
|
|
|
You need to make sure that you read the translevel number $021A
or the area index $701FFE(&7FFE) with the patch Yoshis Fan made.
Code
LDA $7FFE ;Read Translevel Number
CMP #$(Insert Translevel Number Here)
BNE DONE
|
|
|
|
I had to hijack it after the OAM table update.
If you are using the $021A address, 0x13 would work.
@Yoshis Fan
If you are using this in your hack, just read $7FFE, and if you haven't changed what room Hookbill appears in then the value will be 0x86.
I'll look into the jump height.
|
|
|
|
Here is how to modify Hookbill's jump height, all values are 16bit signed.
Run then jump
ROM 0x00988C SNES 0x01968C [00 FB]
Jump up, pause, fall
ROM 0x009CA8 SNES 0x019AA8 [00 FA]
Bounce
ROM 0x009D91 SNES 0x019B91 [00 F8]
|
|
|
|
@doggy
You need to use:
Code
LDA $021A
CMP #$0013
|
|
|
|
|
|
|
|
|
|
 |
|
 |
The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.
Copyright © 2005 - 2013 - SMW Central Legal Information - Link To UsTotal queries: 27
|
|
|
|