Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Super Mario World hacking: labmaster | 3 guests
Acmlm's Board - I2 Archive - Super Mario World hacking - SMW ROM addresses | |
Pages: 1 2 3 4 5 6 7 8Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
cpubasic13
17 years old now. Time to buy some M rated games by myself!
Level: 54

Posts: 869/1346
EXP: 1206934
For next: 26936

Since: 03-15-04
From: Blame my parents, Eddy

Since last post: 2 days
Last activity: 1 day
Posted on 03-09-05 04:25 AM Link | Quote
...mike, you are the data man! Your data could make a whole lot of adjustments to everything SMW.

And please post some sprite stuff. You know, how to make a brand new sprite using sprite 12 for example or something. I mean, I know you released the data, but I mean a brand new sprite... not an edit of another...
Glyph Phoenix

Level: 39

Posts: 85/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-09-05 08:24 AM Link | Quote
MikeyK, you are just about the hackingest person around.

I am going to take all this new information and make a totally new hack that will make SMI look even more of a pile of puke than Trashy's Ninji hack made it look like.

Yes, that is what I will do.

Probably. Sometime. Later.

Maybe.

I guess. And on another note, Atma's timer disable seems to work well enough but smallhacker's graphic disabler just gives you black timer tiles and other such garbage. I will edit my old post to show this.


(edited by Glyph Phoenix on 03-08-05 11:36 PM)
The Kins

Kodondo
Level: 38

Posts: 319/595
EXP: 354733
For next: 15714

Since: 03-15-04
From: Melbourne, VIC, Australia

Since last post: 2 days
Last activity: 9 hours
Posted on 03-09-05 10:08 AM Link | Quote
Originally posted by mikeyk
Trashy, I believe this is what you are looking for. I'll post a bunch more having to do with the Bowser battle when I get a chance.

0x1AAEE - [74] - Sprite Princess Throws
Holy shit. Thank you very very much.
tuna
...
Level: 3

Posts: 287/2
EXP: 51
For next: 77

Since: 12-02-04

Since last post: 1 day
Last activity: 1 day
Posted on 03-10-05 12:29 PM Link | Quote
That's because there are tiles written there before the timer is. That code disables the graphic drawing routine, so the tiles that were previously written (and are never supposed to show up since it's overwitten instantly) show through.

This could probably be remidied by fixing the initial status bar


And still no damn offset to change how fast the timer counts down
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 143/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 03-11-05 10:57 PM Link | Quote
Originally posted by Alexa

And still no damn offset to change how fast the timer counts down


Actually there is. Look for the thread titled "the timer..."
Xkeeper
The required libraries have not been defined.
Level: NAN

Posts: -2404/-863
EXP: NAN
For next: 0

Since: 03-15-04

Since last post: 2 hours
Last activity: -753366 sec.
Posted on 03-11-05 11:35 PM Link | Quote
That's the RAM address of the counter, not the initial value in ROM
Schwa

Green Birdo
The Embodyment of Good,
infused with the Living Assets

"Alpha Psibeam!" (echo effects)

Level: 66

Posts: 1186/2214
EXP: 2457091
For next: 4760

Since: 04-25-04
From: Spanaway, WA

Since last post: 1 day
Last activity: 13 hours
Posted on 03-14-05 03:03 AM Link | Quote
Hi guys, I was wondering... On the first post of this thread it gives one offset for Morton, Roy and Ludwig's HP and another offset for Lemmy and Wendy's HP. But the latter is a 6-digit number starting with 7, and it's nonexistent in the Rom. I was thinking it may be a typo. Could anyone either A) fix it to give me the real address, or B) if it's not a mistake, explain to me why I'm acting like such a nOOb.

Thanks guys. --Schwa
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 180/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 03-14-05 03:44 AM Link | Quote
The latter would be the RAM ddress for the health, I think. I looked at it in a hex editor by removing the 7E and checking. Looking at it with the 7E, the value was just 00.
Glyph Phoenix

Level: 39

Posts: 99/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-15-05 01:19 AM Link | Quote
I copied the address from Atma X's notes. I went over my post and was going to replace it the real one, but first I'd have to figure out what the real address is. :p
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3710/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-15-05 07:58 AM Link | Quote
I come bearing addresses!

0F8B - Timer speed (0-7F, higher = slower)
112C - # of coins for 1up
13AC - # of coins for 30-coin bonus block
4C2C - Set to 00 to disable midway points (they'll still make you big though)
5341 - How long flashing invincibility (when you get hit) lasts - note for those of you who are planning to be just plain evil and disable this; doing so will make Mario die any time he gets hit, because he'll hit the enemy about 60 times a second.
8094 - Initial fireball X speed facing left
8095 - Initial fireball X speed facing right
80B6 - Fireball sound effect
80C5 - Initial fireball Y speed (already found but what the hell)
AD1B - How long blue (and probably silver) POWs last
C781 - How long stars last
C786 - Probably what music to play when you get a star
153C3 - Lowest tile # that acts as a berry
153C7 - Highest tile # that acts as a berry plus one

Some ASM traces related to these, if anyone's interested.
-----Getting coins-----
00:8F25 EE BF 0D INC $0DBF - Increments coins when you get coin (any method)
00:8F28 AD BF 0D LDA $0DBF - Gets coins to check for 1up
00:8F2B C9 64 CMP #$64 - # coins for 1up
00:8F2F EE E4 18 INC $18E4 - Does 1up @ 100 coins
00:F37A EE 20 14 INC $1420 - Increments Yoshi Coins
00:F343 EE 22 14 INC $1422 - Inrecments other Yoshi Coins

00:F1A7 AC C0 0D LDY $0DC0
00:F1AA F0 24 BEQ $24 - Checks bonus block counter

05:B357 CE C0 0D DEC $0DC0 - Decrements bonus block counter when getting coins

00:91AB A9 1E LDA #$1E
00:91AD 8D C0 0D STA $0DC0 - Sets counter for bonus block


-----Timer fun-----
00:8D8A A9 28 LDA #$28
00:8D8C 8D 30 0F STA $0F30 - Writes timer frame count @ level start

01:C580 A9 FF LDA #$FF
01:C582 8D 90 14 STA $1490 - Sets star timer
01:C585 A9 0D LDA #$0D
01:C587 8D FB 1D STA $1DFB - Writes to SPC700 port (star music?)

01:AB1A A9 B0 LDA #$B0
01:AB1C 99 AD 14 STA $14AD,y [14AD] - Blue POW timer (Y probably = 1 for Silver POW)
01:AB1F A9 20 LDA #$20
01:AB21 8D 87 18 STA $1887

00:C563 DE A8 14 DEC $14A8,x [14AD] - Blue POW timer

00:D140 A9 7F LDA #$7F
00:D142 8D 97 14 STA $1497 - Flashing invincibility ('ghost') timer when hit


-----Midway point-----
00:CA20 8E C6 13 STX $13C6 - marked as 'unknown, boss-related' X = 4C
00:CA23 A0 18 LDY #$18
00:CA25 8C 00 01 STY $0100
00:CA2B A9 01 LDA #$01
00:CA2D 8D CE 13 STA $13CE - Sets midway point flag


-----Berries-----
02:D1B4 A7 05 LDA [$05] [7F:C96B]
02:D1B6 8D 93 16 STA $1639
02:D1B9 E6 07 INC $07
02:D1BB A7 06 LDA [$05]
02:D1BD D0 31 BNE $31 [$D1F0]
02:D1BF AD 93 16 LDA $1639
02:D1C2 C9 45 CMP #$45 - Red berry tile
02:D1C4 90 2A BCC $2A [$D1F0]
02:D1C6 C9 48 CMP $48 - one past Green berry tile
02:D1C8 B0 26 BCS $26 [$D1F0]
02:D1CA 38 SEC
02:D1CB E9 44 SBC #$44
02:D1CD 8D D6 18 STA $18D6 - Writes eaten berry type


-----Fireballs-----
00:FEB5 A9 06 LDA #$06 - Fireball sound effect
00:FEB7 8D FC 1D STA $1DFC
00:FEBA A9 0A LDA #$0A
00:FEBC 8D 9C 14 STA $149C
00:FEBF A9 05 LDA #$05
00:FEC1 9D 0B 17 STA $170B,x [1714]
00:FEC4 A9 30 LDA #$30
00:FEC6 9D 3D 17 STA $173D,x [1746] - Fireball Y speed
00:FEC9 A4 76 LDY $76 - Must be Mario's direction (0=Left, 1=Right)
00:FECB B9 94 FE LDA $FE94,y [00:FE95]
00:FECE 9D 47 17 STA $1747,x [00:1750] - Fireball X speed (hehe, FECE)

00:FF00 AD F9 13 LDA $13F9 - Mario Goes Behind Stuff flag
00:FF03 9D 79 17 STA $1779,x - Fireball Goes Behind Stuff flag


-----Misc Stuff-----
00:9CEA A2 00 LDX #$00
00:9CEC 4C 3A 9D JMP $9D3A
00:9CEF 8E 0A 01 STX $010A - Save file #

00:9E08 A0 04 LDY #$04
00:9E0A 20 CB 9A JSR $9ACB
00:9E0D 8E B2 0D STX $0DB2 - 2-player flag

OK, so the <code> tag is a piece of shit that keeps eating my posts despite how many times I close it, so copy all that into Notepad or something to see it right.

[edit] Been working with the Map16 a bit. Here's a bunch of useless info:
00:BAD8: Table of 3-byte addresses of Map16 top-left corner for each screen (low byte)
00:BC40: Table of 3-byte addresses of Map16 top-left corner for each screen (high byte - totally pointless, you can just read the low byte and change 7E to 7F )

$01/94E7 BD E0 14 LDA $14E0,x[$01:14E4] - Gets something
$01/94EA 69 00 ADC #$00
$01/94EC 85 0B STA $0B - Stores it at 7E000B

$01/9429 A5 0B LDA $0B - Copies 7E000B to 7E009B
$01/942B 85 9B STA $9B

$00/BF14 A5 9B LDA $9B - Uses 7E009B to find offset into table
$00/BF16 85 07 STA $07
$00/BF18 0A ASL A
$00/BF19 18 CLC
$00/BF1A 65 07 ADC $07
$00/BF1C A8 TAY
$00/BF1D B7 04 LDA [$04],y[$00:BAD8] - Getting Map16 address
$00/BF1F 85 6B STA $6B

This shows how the game reads some variable, uses it as the index into that address table, and stores the address into 7E006B. It then uses that to calculate the exact address of the block it's about to change. Interesting, but all very pointless, since it doesn't tell us how to figure out a block's address or even coordinates. (And if we did know, it would be trivial to do some simple calculations based on the coords to find the address itself. 0x7EC800 + (Screen # * 0x20) + X Coord + (Y Coord * 0x200), though some changes would be needed for vertical or layer 2 levels.)


(edited by HyperHacker on 03-14-05 11:01 PM)
(edited by HyperHacker on 03-14-05 11:05 PM)
(edited by HyperHacker on 03-14-05 11:06 PM)
(edited by HyperHacker on 03-14-05 11:07 PM)
(edited by HyperHacker on 03-15-05 02:25 PM)
HabsoluteFate

Red Paratroopa
Level: 23

Posts: 116/179
EXP: 58525
For next: 9198

Since: 03-15-04
From: Ottawa, Ontario, Canada

Since last post: 10 days
Last activity: 2 days
Posted on 03-16-05 09:30 PM Link | Quote
7E1616 is the flag that tells us what item is in Yoshi's mouth
00: Nothing
01-07: Fireballs
8 and up either does nothing or weird stuff...i'm too lazy to do them all
Smallhacker

Green Birdo

SMW Hacking Moderator
Level: 68

Posts: 1388/2273
EXP: 2647223
For next: 81577

Since: 03-15-04
From: Söderhamn, Sweden

Since last post: 10 hours
Last activity: 9 hours
Posted on 03-16-05 09:36 PM Link | Quote
Originally posted by HabsoluteFate
7E1616 is the flag that tells us what item is in Yoshi's mouth
00: Nothing
01-07: Fireballs
8 and up either does nothing or weird stuff...i'm too lazy to do them all


I'm pretty sure that's a RAM address... This thread is for ROM addresses.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3769/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-17-05 09:27 AM Link | Quote
May as well post RAM addresses here too, as long as you clearly mark them as such. There isn't really any other place for them.

[edit] More address fun.
7E18E4 is a RAM address that handles 1ups; everything but the '1up' sprite. Write a 1 here, it gives you a 1up. Write a 7, it gives you a 7up. (Mmm, 7up...) Write 52, it gives you a 52up, and so on.

5356: Change to EE E4 18 EA 64 to turn the Mushroom into a 1up, but it'll still play the animation
74E2: Change to 0x80 to disable midway points making you big (or EA EA to make them always make you big, even if you have a better powerup )
74E5: What powerup midway points give you
74E9: What sound effect midway points play
C7F8: What powerup flowers give you
C799: What powerup feathers give you
12FD9: How many lives 1up Mushrooms give you
12FDB: How many lives 3up Moons give you
13003: Change to A9 xx EA to make 1up Mushrooms and 3up Moons give you xx lives

[ASM notes]
$00/F2E0 A5 19 LDA $19 - Get powerup
$00/F2E2 D0 04 BNE $04 [$F2E8] - Skip this if you have one
$00/F2E4 A9 01 LDA #$01 - Make you Super Mario
$00/F2E6 85 19 STA $19
$00/F2E8 A9 05 LDA #$05 - Sound effect
$00/F2EA 8D F9 1D STA $1DF9
$00/F2ED 60 RTS

$00/9E35 64 19 STZ $19 - This could be changed to give you a certain powerup when you start the game

$04/91C4 BD B8 0D LDA $0DB8,x[$04:0DB8] - X = 0 for Mario, 1 for Luigi
$04/91C7 85 19 STA $19 - Sets powerup when entering level

$01/C561 A9 02 LDA #$02
$01/C563 85 71 STA $71
[...]
$00/D156 E6 19 INC $19 - Makes you big when you get a 'shroom
$00/D158 A9 00 LDA #$00
$00/D15A 85 71 STA $71 - Action register (why not use STZ here?)
With some hacking, this could be made to give you a 1up or something, but it would still play the growing animation

$01/C5F7 A9 03 LDA #$03 - Flower
$01/C5F9 85 19 STA $19

$01/C598 A9 02 LDA #$02 - Cape
$01/C59A 85 19 STA $19

When getting hit as Fire Mario:
$00/F5FC A9 01 LDA #$01
$00/F5FE 85 71 STA $71 - Action
$00/F600 64 19 STZ $19 - Powerup

$00/D129 AD 96 14 LDA $1496 - Mario hurt frame counter
$00/D12C F0 12 BEQ $12 [$D140]
$00/D12E 4A LSR A
$00/D12F 4A LSR A
$00/D130 A8 TAY
$00/D131 B9 1D D1 LDA $D11D,y[$00:D11D] - Must be an image table
$00/D134 8D E0 13 STA $13E0 - Mario image

Pressing Start+Select:
$00/A284 A9 0B LDA #$0B
$00/A286 8D 00 01 STA $0100

Stuff written to $71
1 - Make Mario flash temporarily (invincible)
2 - Make Mario big (instantly)
3 - Remove Mario and disable most buttons until 0 is written
4 - Flash between normal and fire palette until 0 is written (can't move)
5 - Trigger screen exit
6 - Trigger exit, ignores slippery/water settings
7 - Shoot Mario WAAAAAY up
8 - Make Mario go up to heaven
9 - Kill Mario (ono!)
A - Ghost house entrance
B - Mario just stands there, controls disabled until 0 is written
C - Weird crash

Other fun stuff:
-Write 0x12 to $100 to fade the screen out, and $13 to fade back in. Mario can still move like normal.
-Write 0x0B to fade to overworld, 0x0F to enter the level


(edited by HyperHacker on 03-17-05 03:20 AM)
(edited by HyperHacker on 03-17-05 03:21 AM)
(edited by HyperHacker on 03-17-05 03:24 AM)
HabsoluteFate

Red Paratroopa
Level: 23

Posts: 118/179
EXP: 58525
For next: 9198

Since: 03-15-04
From: Ottawa, Ontario, Canada

Since last post: 10 days
Last activity: 2 days
Posted on 03-17-05 09:20 PM Link | Quote
Some ROM Trace Information:

The code starting here is used to actually throws yoshi's fireballs
$02/A1A4 BC 53 A1 LDY $A153,x[$02:A15A] A:9F03 X:0007 Y:0000 P:envMXdizc

The code starting here seems to increase the fireball size (from Fire Mario's size to
Yoshi's fireball size):
$02/9F71 A5 14 LDA $14 [$00:0014] A:9F00 X:0007 Y:002B P:envMXdizc

Seems to be Start of Sub Routine For Collision between thong/fireballs with enemies.
Without this fireballs do nothing on impact and yoshi cannot eat anything.

$02/A0B3 DA PHX A:9F00 X:0005 Y:0000 P:envMXdiZc
Without this Yoshi's facial animation stops after shooting fireballs and he cannot eat or shot fireballs
$01/EFEE A9 2A LDA #$2A A:0003 X:0008 Y:00D0 P:envMXdiZC
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3778/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-18-05 03:21 AM Link | Quote
I've almost figured out how to load a specific level. Check this out: Change 2DA9B to A9 xx 02 and the game will always load level xx when you enter from the overworld. Now if I had any idea how to specify 0xx or 1xx...
Glyph Phoenix

Level: 39

Posts: 113/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-18-05 08:28 AM Link | Quote
I made this a thread for ROM addresses only because I don't know a single opcode of ASM and I'm not experienced enough to make my own custom blocks... That way I wouldn't have to wade through tons of stuff I didn't understand in the least to get to something I was skilled enough to use. That, and we have that script someone made that lets you input addresses.

On another note, those powerup addresses are really useful! If I ever go back to Super Mario Illiad, I think I'll get rid of the fire flower and make the fire flower into the nunchuck powerup...
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3786/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-18-05 08:36 AM Link | Quote
Originally posted by mikeyk
12f78 - point multipliers
00 01 02 04 08 0A 14 28 50 64 C8 90 20 00 00 00
00

12f89 - points
00 00 00 00 00 00 00 00 00 00 00 01 03 00 00 00
00

By the looks of this, I would say 12F78 is the low byte, and 12F89 is the high byte. Notice how when they get to 400 (0x190), the first table has 0x90 and the second has 0x01, same with 800.
Glyph Phoenix

Level: 39

Posts: 115/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-18-05 08:49 AM Link | Quote
By HyperHacker:

Change address 0x74E2 to 0x80 to prevent the game from giving you a powerup when you hit the midway point.

Update:

Atma, you fool! Changing value 103F to 60 does bad things to the item reserve counter! Very bad things! Are you trying to sabotage us all? Are you?

But seriously, change it to 50 otherwise your item reserve counter won't work right.


(edited by Glyph Phoenix on 03-18-05 02:44 AM)
ExKay
Somebody set up us the bomb!
Level: 50

Posts: 556/1114
EXP: 908268
For next: 39049

Since: 03-15-04
From: Hannover, Germany

Since last post: 14 hours
Last activity: 1 hour
Posted on 03-18-05 07:00 PM Link | Quote
Changing it to 60 isn't good, because when you change it, the item will blink forever and it won't stop.
Smallhacker

Green Birdo

SMW Hacking Moderator
Level: 68

Posts: 1394/2273
EXP: 2647223
For next: 81577

Since: 03-15-04
From: Söderhamn, Sweden

Since last post: 10 hours
Last activity: 9 hours
Posted on 03-20-05 08:44 PM Link | Quote
The following strings can be found at $2B926 and the ~600 bytes following it:

MARIO A ...EMPTY
MARIO B ...EMPTY
MARIO C ...EMPTY
ERASE
ERASE
ERASE
END
MARIO A ...EMPTY
MARIO B ...EMPTY
MARIO C ...EMPTY
ERASE DATA
1 PLAYER GAME
2 PLAYER GAME
CONTINUE AND SAVE
CONTINUE WITHOUT SAVE
CONTINUE
END

The format is the same as the status bar and can be found in this thread.
Pages: 1 2 3 4 5 6 7 8Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Super Mario World hacking - SMW ROM addresses | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.036 seconds.