(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-07-24 06:03 AM
0 users currently in SMW Hacking.
Acmlm's Board - I3 Archive - SMW Hacking - ASM hacks / Custom Blocks / Custom Sprites Requests New poll | |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21Add to favorites | Next newer thread | Next older thread
User Post
MadMikeXP 3



 





Since: 11-24-05
From: Georgia

Last post: 6299 days
Last view: 6297 days
Posted on 09-27-06 02:48 AM Link | Quote
1. asm hack
2. turn trader block

(1.) Is it possible that when mario picks up any colored shell and if a koopa is on the same screen with mario the koopa will chase and attack mario until he lets go or destroys the shell ? 2 examples: 1. SMB2 phanto chases mario when he picks up the key.... 2. you touch your dogs chicken leg or meat and he chases you until you drop it and leave.........

(2.) This might not work but would it be possible to make a block when hit what ever enemies on the screen will ignore mario for 30 seconds turn tail and fight one another ? example shell less koopa will fight a goomba or whatever it might run into.
Kailieann



 





Since: 11-18-05

Last post: 6287 days
Last view: 6287 days
Posted on 09-27-06 08:22 AM Link | Quote
1. You would have to find the shellless koopa's code, disassemble it, reprogram it, and reinsert it with sprite tool.

2. You would have to find all the enemys' code, disassemble it, reprogram it, and reinsert it with sprite tool.
Kiwisauce

Red Goomba








Since: 09-23-06

Last post: 6290 days
Last view: 6289 days
Posted on 09-27-06 11:41 AM Link | Quote
I don't suppose anyone could explain to me what exactly the reloc offset in blocktool is for? The other ones are all pretty simple but I'm stumped on this one. And why does it sometimes have multiple offsets?
MadMikeXP 3



 





Since: 11-24-05
From: Georgia

Last post: 6299 days
Last view: 6297 days
Posted on 09-27-06 04:19 PM Link | Quote
Ok let me ask 2 questions before I get started:

1.Where would I begin looking for all the enemys coding in a hex editor ?
2.what tool would I need to reprogram the enemys ? also when I have done this will I have the option to save it as a .cfg file ? so that I can import it to sprite tool ?

thanks again for any help.
Kailieann



 





Since: 11-18-05

Last post: 6287 days
Last view: 6287 days
Posted on 09-27-06 09:23 PM Link | Quote
Originally posted by Kiwisauce
I don't suppose anyone could explain to me what exactly the reloc offset in blocktool is for? The other ones are all pretty simple but I'm stumped on this one. And why does it sometimes have multiple offsets?

The reloc offset is for jump commands in the block code. I've never made use of them, so I can't explain in detail how they work, but I know it has to do with using the JSR command (Jump to SubRoutine, opcode 20) -- since the block code is inserted to a random part of the ROM, you can't automatically make it jump to a specific location, so the reloc offsets tells blocktool where the jumps are in the code, so it can adjust them when they get inserted.

Originally posted by MadMikeXP 3
Ok let me ask 2 questions before I get started:

1.Where would I begin looking for all the enemys coding in a hex editor ?
2.what tool would I need to reprogram the enemys ? also when I have done this will I have the option to save it as a .cfg file ? so that I can import it to sprite tool ?

thanks again for any help.

You wouldn't. You are asking how to make the game do things that it's not programmed to do. The only way to do this is to reprogram the game.

For finding the code, you'd have to either know how to use a disassembler or Geiger's SNES debugger. Either way you would need at least a cursory understanding of assembly, and some understanding of SNES code banks.

Then (assuming you used the much more reliable debugger instead of a straight disassembly) you'd need to know how to disassemble the code once you've found it.

As for reprogramming the sprites, the new code for the koopa wouldn't be too difficult. You'd just need to check the 'object held by mario' flag, see if it's a shell, and jump to the 'chase mario behavior'. You would, of course, also have to code said behavior, but if you've managed to get to this point, you should be able to just copy the code from a sprite that already chases mario, such as Monty Mole.

But for making sprites attack eachother?
No.

Even if BMF, MikeyK, and FuSoYa himself joined forces, it would probably still take them at least a solid week of coding.

You would have to make an entire new subroutine that makes enemies capable of damaging eachother, find a way to set attack priority so that two enemies don't just run into eachother and end up both dead, and then, assuming you could make such a routine compatible with every single enemy, you would then need to go through the code of every single enemy and insert the new subroutine.
And of course if you can't make it compatible with every enemy, then you'd need to write seperate subroutines for every enemy.

Now, I'm not trying to discourage you. Your first idea is a pretty good one, and it's actually an achievable goal if you put some effort into it. Start by reading the ASM Howto thread and see if you think you're up to the challenge.
But you have to know that there are limits to what the game, the system, and us humble hackers are capable of.
MadMikeXP 3



 





Since: 11-24-05
From: Georgia

Last post: 6299 days
Last view: 6297 days
Posted on 09-27-06 09:35 PM Link | Quote
Kailieann check your PM inbox. thanks again for your help.
Kiwisauce

Red Goomba








Since: 09-23-06

Last post: 6290 days
Last view: 6289 days
Posted on 09-27-06 11:36 PM Link | Quote
Thanks, Kailieann. Also, I have another, more complicated (I think) question. How would I program a block to change itself or another block? Is there a subroutine or something I should call, or is it simply a matter of changing a ROM value? I tried disassembling and modifying some of the code from some of the included blocks in BlockTool, but that didn't work... If this is too complicated, forget it; I'll just keep trying on my own.

Alright, I just figured out how to change a block to a block on Map16 page 01, but I still don't know how to change it to a block on any page.


(edited by Kiwisauce on 09-28-06 06:40 PM)
Link2006

Octoballoon








Since: 11-18-05
From: Kokiri Forest

Last post: 6296 days
Last view: 6288 days
Posted on 10-03-06 12:28 AM Link | Quote
Is there any way to disable Mario's spin jump anamation? (the whole spining thing) and remap the spin gfx routine to an unused spot (Mario's hammer-bashing the castle cutsene GFX). I want to make the spin jump look like a ground pound.
ibz10g

Spiny


 





Since: 08-10-06
From: Altoona, Iowa

Last post: 6332 days
Last view: 6332 days
Skype
Posted on 10-03-06 10:32 PM Link | Quote
I was thinking. You know what enemies I'd like to see?
These guys:

Image Hosted by ImageShack.us

I don't think the Snow enemy would be too hard. It would just need to be a 2 tile high enemy that "explodes" when stomped on, and forces Mario to spin-jump slowly down, as if he was using a cape.

Chuckya would be a different story. I don't know how you would go about creating him unless you had some kind of crazy extended knowledge of sprite ASM.
Kiwisauce

Red Goomba








Since: 09-23-06

Last post: 6290 days
Last view: 6289 days
Posted on 10-05-06 01:20 AM Link | Quote
For the Snow enemy, how would you get Mario to spin jump down slowly? You'd have to create some flag for slow spin jumping, and then check for that flag in Mario's falling code, wouldn't you? I guess that's not too difficult, as long as you really know what you're doing...
icegoom

Cheep-cheep








Since: 03-06-06
From: United States

Last post: 6294 days
Last view: 6294 days
Posted on 10-08-06 04:22 PM Link | Quote
OK, I've got a custom sprite request: I want a Birdo whose head Mario bounces off if Mario tries to stomp it. Neither character would be harmed. The same effect as the Frost Goomba sprite, basically.

I've tried copying pieces of code from the Frost Goomba over to Birdo with Rideable Egg's code, but seeing as I have no idea what I'm doing, I always end up with a sprite that won't assemble. Maybe someone who understands ASM could look at the code for both Frost Goombas and Classic Goombas, figure out what's different that makes the bouncing off effect, and apply that to Birdo with Rideable Egg. Or if that's somehow infeasible, could the "rideable" property from Mega Moles and the various SMB2 enemies be moved to Birdo?

I don't want Birdo to be killable with a simple stomp, but setting her to be unstompable with Tweaker bytes and hurting Mario if he jumps on her doesn't really make much sense.

Edit: Yay! I got it to work. I replaced this:

APPLY_SPEED JSL $01802A ; update position based on speed values

LDA $1588,x ; \ if hammer bro is touching the side of an object...
AND #$03 ; |
BEQ DONT_CHANGE_DIR ; |
INC $151C,x ; /

DONT_CHANGE_DIR JSL $018032 ; interact with other sprites
JSL $01A7DC ; check for mario/hammer bro contact
NO_CONTACT
RTS ; return


with this:

APPLY_SPEED JSL $01802A ; update position based on speed values

LDA $1588,x ; \ if hammer bro is touching the side of an object...
AND #$03 ; |
BEQ DONT_UPDATE ; |
INC $151C,x ; /

DONT_UPDATE
LDA $140D
BNE SPIN_JUMP
LDA #$01 ; set spin jump flag so mario bounces off flag
STA $140D

JSL $01A7DC ; check for mario/sprite contact

STZ $140D ; reset spin jump flag

RETURN2 RTS ; return


SPIN_JUMP LDA $1656,x
PHA
ORA #$10 ; allow mario to kill sprite
STA $1656,x
JSL $01A7DC ; check for mario/sprite contact

PLA
STA $1656,x

NO_CONTACT
RTS ; return


That's probably horrible code, but it seems to work all right.


(edited by icegoom on 10-14-06 06:30 PM)
Yoshi Master

Shyguy








Since: 11-18-05
From: That one place.

Last post: 6300 days
Last view: 6297 days
Posted on 10-15-06 04:28 PM Link | Quote
I need a venus fire trap with a second animation for looking up. I also need it in the tilespace within the blue square in this picture:
Image Hosted by ImageShack.us

I would greatly appreciate it.
pikaguy900

Sparky


 





Since: 08-10-06

Last post: 6300 days
Last view: 6287 days
Posted on 10-17-06 08:42 PM Link | Quote
I would like some Blocks that change the Gravity of all sprites until you leave the level. I don't mean BMF's Gravity-Change blocks that change the height Mario can jump and stuff. I mean blocks that change THE DIRECTION GRAVITY PULLS YOU IN. If I'm not being clear, try playing some Sonic games... Usually, the last Zones in them have points where you suddenly turn upside-down and start walking on the ceiling. Plus, there'd need to be 4 of them- Gravity Up, where you can walk on the ceiling, Gravity Right, where you start going to the right, Gravity Left, where you go to the left, and Gravity Down, which resets it. I'm sure it'd be especially hard to make blocks that change the gravity so you start falling towards the left or right sides of the levels, so all I really want is the ones to make you go upside-down and the one to reset Gravity back to normal, so you can walk on the ground. But... They should flip all sprites upside-down. It wouldn't look right if Mario walked on the ceiling with his HEAD on the ceiling, now would it?
Kailieann



 





Since: 11-18-05

Last post: 6287 days
Last view: 6287 days
Posted on 10-17-06 08:53 PM Link | Quote
*bashes head against the nearest wall*

No.

Why no?

Because no.

For reference, in case you weren't aware, there is no "reverse gravity" subroutine in SMW.
That means you would have to write it yourself.
The entire subroutine.
And change every sprite in the game so that they respond to that subroutine.
And change the graphics loading routine to invert the graphics of every sprite on the screen.

Just... no.
pikaguy900

Sparky


 





Since: 08-10-06

Last post: 6300 days
Last view: 6287 days
Posted on 10-17-06 09:15 PM Link | Quote
Okay. A simple "No" would've sufficed.
Pac

Bandit
Free Ice Man!








Since: 11-18-05
From: Ireland

Rate me

Last post: 6287 days
Last view: 6287 days
Posted on 10-21-06 04:07 PM Link | Quote
Yoshi Master, here ya go: venusbeta.zip

Note: The stem for it will now use tile 3E8, the falling goomba in that image.



And to anyone who's interested, I have another sprite. It's just a classic piranha plant, but the stem now uses palette D to save you from putting green colours onto palette C. Download here: piranha.zip

It's based off the SMB1 piranha plant that Smallhacker made for me, and he based that on mikeyk's Venus FT. So yeah, most credit to Smalls for this one; I only changed a few values.
Tatrion
<_<;


 





Since: 11-17-05

Last post: 6288 days
Last view: 6287 days
Posted on 10-24-06 06:34 PM Link | Quote
This isn't a "request" per se, but I would appreciate it if someone would explain this to me.

I salvaged this address from a google cache of a deleted SMW Central database (not the recent one, even before that). It's x01138. The description the finder gave seemed pretty straightforward - "Set coins after got 100 coins (0 Coins)" (yes, that was the exact wording).

So, as you may or may not know, the version that I submitted to the SMW Central ROM map reads as this- "What coins reset to after gathering enough for a 1-up (default: 00)". That was my wording on it.

This is the problem. The default value for x01138 is 8D. I had no idea what to make of it; if it was an ASM command, or a numeric value. I did change it to a few different values- IIRC, 8C made coins reset to 4 after getting 100, and 8E reset it to 25. 8F and 8B crashed it.

The original modification I made was to set it to 63, which is 99 in decimal. Under my best understanding, this would reset coins to 99 after getting 100.

It didn't. It made the counter ignore any bounds, and it counted all the way up to 255 before it reset to 0. Various other random values I tried did this too.

So here's my "request" - I don't know how 8D would make sense if the description is what it tells itself to be, unless it's a command. Could someone figure out what the meaning of it is?

Thank you in advance.
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6288 days
Last view: 6287 days
Posted on 10-24-06 06:59 PM Link | Quote
I woudl think that that is ASM. What are the bytes after that, and before it?
Tatrion
<_<;


 





Since: 11-17-05

Last post: 6288 days
Last view: 6287 days
Posted on 10-24-06 09:32 PM Link | Quote
Starting from x1100, it reads (In a clean ROM, w/o LM's hacks)

AD 37 0F 85 02 A2 14 A0 00 20 12 90 A2 00 BD 29
0F D0 0A A9 FC 9D 29 0F E8 E0 06 D0 F1 AD CC 13
F0 19 CE CC 13 EE BF 0D AD BF 0D C9 64 90 0C EE
E4 18 AD BF 0D 38 E9 64 8D BF 0D AD BE 0D 30 09
C9 62 90 05 A9 62 8D BE 0D AD BE 0D 1A 20 45 90
9B D0 02 A2 FC 8E 16 0F 8D 17 0F AE B3 0D BD 48
0F C9 64 90 0E A9 FF 8D 25 14 BD 48 0F 38 E9 64

Ending at x0116F.
Kailieann



 





Since: 11-18-05

Last post: 6287 days
Last view: 6287 days
Posted on 10-24-06 10:26 PM Link | Quote
8D is an STA command. The BF0D afterwards is $7E:0DBF (the address where the current player's coins are stored).

The actual code, which I believe starts at $00:8F1D, is this:

LDA $13CC -- Load 'add a coin' address
BEQ #$19 -- Branch over the coin code if the 'add a coin' address is empty
DEC $13CC -- Decrement 'add a coin' address
INC $0DBF -- Increment current player's coins
LDA $0DBF -- Load current player's coins
CMP #$64 -- Check if current player has 100 coins
BCC #$0C -- Branch over the 1-up code if the player has less than 100 coins.
INC $18E4 -- Increment 'number of lives to add' address.
LDA $0DBF -- Load current player's coins
SEC -- Set Carry
SBC #$64 -- Subtract 100 coins
STA $0DBF -- Store result to current player's coins
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - SMW Hacking - ASM hacks / Custom Blocks / Custom Sprites Requests |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.084 seconds; used 451.24 kB (max 582.08 kB)