Banner
Views: 794,817,065
Time:
8 users online:  1UPdudes, Alice3173,  BTD6_maker, Isikoro, JamesD28, NextTactics, Oxidia, RPG Hacker - Guests: 30 - Bots: 155 Users: 41,483 (1,491 active)
Latest: GBSDYP
Tip: Don't remake levels from other Mario games, especially popular ones (SMB1/3 1-1, for example).Not logged in.
Posts by ThePat545
ThePat545's Profile - Posts by ThePat545
Pages: « 1 2 3 4131 132 »
Thank you! It turns out it already DID have that code but once you said the code is written every frame I realized I inserted it as a generator rather than a regular sprite. I made it a regular sprite and now it works perfectly!
Heya. I'm working on a boss and I'm pretty much almost done. During the "death" sequence (it's kinda unusual) I need the sprite to turn the tile in its current position into a map16 tile. Can anyone help me with this? Thanks.
Originally posted by WhiteYoshiEgg
To change a tile, you can either use SMW's routine at $00BEB0 (store to $9C first), or use this more sophisticated code to spawn any tile you want.

$98-$9B hold the X and Y positions the tile will be spawned at. (See the RAM map.) You'll want to set this to the same values as the sprite X/Y position beforehand, like so:

Code
	LDA $E4,x
	AND #$F0
	STA $9A
	LDA $14E0,x
	STA $9B
	LDA $D8,x
	AND #$F0
	STA $98
	LDA $14D4,x
	STA $99


It's crashing my ROM when I use this code:

Code
	dcb "INIT"	;initial code, doesn't do anything
	LDA $E4,x
	AND #$F0
	STA $9A
	LDA $14E0,x
	STA $9B
	LDA $D8,x
	AND #$F0
	STA $98
	LDA $14D4,x
	STA $99
	RTL
	dcb "MAIN"	;main code            
	REP #$10
	LDX.w #$025B
	JSR ChangeMap16
	SEP #$10
	RTL

	insert the rest of the map16 code I obviously copy-pasted here


What am I doing wrong?
Originally posted by Alcaro
Move that INIT code to MAIN. The values in $98-$9B don't stay between those two codes.

This is my (really long) code now.

And here's a video of the epic fail result.

I'm still doing something wrong >.<
Originally posted by Alcaro
Quote
dcb "INIT"
LDA #$00
LDA #$0000

TRASM assembles the latter one as LDA #$00, so crashes don't surprise me. Convert your sprite to xkas format.

I'm surprised that ChangeMap16 routine even assembles under TRASM.

I'm still met with "It is recommended that you abort Sprite Tool at this time." However, when I type "no" it says "dcb 'INIT' not found."

My new code.
Originally posted by Erik557
Open your sprite's CFG file and add an 1 at the end (in a new line).

Thank you so much! It doesn't crash, but it spawns the tile at Mario's position rather than the sprite's position.

I put this at the beginning:
Code
	LDA $E4,x
	AND #$F0
	STA $9A
	LDA $14E0,x
	STA $9B
	LDA $D8,x
	AND #$F0
	STA $98
	LDA $14D4,x
	STA $99
	REP #$10
	LDX.w #$025B
	JSR ChangeMap16
	SEP #$10
	RTL


So what am I doing wrong?
System restore ( ͡° ͜ʖ ͡°)
Everything that was here was scrapped so I nuked the first post lol.

Click here for my latest post.
Originally posted by mario and luigi
Hello! Some of the screenshots look decent, but some need work. For example, the overworld needs lots of work. Unless you are planning to change it, the bottom of the top cliffs are cutoff, the palette of some of the water appears green instead of blue, and some land tiles are using the wrong palette. Try looking at the original Super Mario World overworld and see how the tiles are placed there.

The first screenshot shows an interesting background palette.

The last three screenshots show a strange outline to the background clouds in the sky, including the sixth screenshot. Make sure to fix that unless you are planning to have a custom background later on.

And this is minor, but the palette for the blood-like ghost house should have a better red gradient for the background and foreground, including the spikes.

Lastly, the semifinal and final screenshots show empty level design. Try spicing it up a little bit by adding in question blocks, for example, or even decoration.

Good luck with this hack!


I see where one would mistake the overworld tiles for a miscolor, but the screenshots with the toxic waste are in a level tile near the green water. The discolored tiles are actually the toxic waste (the green water) and the dead grass/etc. (the brown ground).

The blood-like area is actually supposed to be darker and redder than the rest of the level.

As for the other stuff, I completely agree with you.
The outline is REALLY awkward and I actually haven't gotten to figuring out how to fix it yet. #smw{:trollface:}

The empty level design is something I've noticed and gotten to fixing.

Thanks a lot for the help!
So, I'm just making a level where there's a ton of 4th-wall breaks. At one point it's going to reset the game, and you'll need to go back to the level.

In the beginning of this particular level, there's a generator that checks if a certain RAM address is at a certain value and runs even more code if it is at a value. However, all of the "empty" RAM addresses that I see in the RAM map reset when the game resets, the title screen loads, or even when a level loads.

How do I make it so a RAM address stays a certain value even after a reset or title screen load?

Thanks in advance.
Originally posted by Thomas
Save it in SRAM instead. SRAM starts at $700000, and its length is defined by a value at $00FFD8.

Some portions of WRAM don't get cleared too, though (e.g. most of bank $7F), but since there's no way of telling whether you actually wrote to that address or if that's just how it ended up on power on, it's not recommended to try using it that way.


So would it be something like this?

Code
	LDA $7000000
	STA #$01


Then would I put this in the generator's code?

Code
	LDA $7000000
	CMP #$01
	BEQ Code
	RTL
Edit: Wasn't posted in the ASM and Related Topics subforum. R.I.P. me. Can mods move it there if it's a problem?

__________________________________________________________________


So what is SUPPOSED to happen is when Mario touches this block, it shows different messages depending on which emulator you're using. That part works flawlessly.

What I'm TRYING to get working is the part where the block increases $9C by 1. Even when I set it to 0 using a placeholder block (because that's the easiest way for me) it goes straight to the "Disappear" branch. The branch is supposed to bring up another message immediately after the second (it's set to act like tile 25).

I made it so it only changes the value from 0 to 1 using INC after it checks if the value isn't equal to 0, so what am I doing wrong?

Thanks in advance.

The code:
Code
db $42

JMP MarioBelow : JMP MarioAbove : JMP MarioSide
JMP SpriteV : JMP SpriteH
JMP Cape : JMP Fireball
JMP MarioCorner : JMP MarioHead : JMP MarioBody

MarioBelow:
	LDA #$9C
	CMP #$00
	BNE Disappear
        SED
        LDA #$FF
        CLC
        ADC #$FF
        CLD
	BVS Snes9x
        CMP #$64
        BNE Bsnes
	INC $9C
	LDA #$11
	STA $13BF
	LDA #$01
	STA $1426
	RTL
Disappear:
	LDA #$12
	STA $13BF
	LDA #$02
	STA $1426
	LDA $58
	STA $01
	PHY
	LDA #$02
	STA $9C
	JSL $00BEB0
	PLY
	RTL
Bsnes:
	INC $9C
	LDA #$12
	STA $13BF
	LDA #$01
	STA $1426
	RTL
Snes9x:
	INC $9C
	LDA #$11
	STA $13BF
	LDA #$02
	STA $1426
	RTL
MarioAbove:
	JMP MarioBelow
MarioSide:
	JMP MarioBelow
SpriteV:
	RTL
SpriteH:
	RTL
Cape:
	RTL
Fireball:
	RTL
MarioCorner:
	JMP MarioBelow
MarioHead:
	JMP MarioBelow
MarioBody:
	JMP MarioBelow
Thanks for the help. #tb{^V^}
So right now I have an invisible sprite that doesn't move because I've yet to learn how to do that.

At the moment I'm trying to make it throw projectiles, alternating from a bone to a Reznor fireball. This is the code.

Ignore my init code because the seemingly irrelevant code is used for other purposes in the level. #smw{:trollface:}

So what I got here is this:
Code
    LDA $14
    AND #$40
    BNE Return
    LDA $5C
    CMP #$00
    BEQ Projectile1
    LDA $5C
    CMP #$01
    BEQ Projectile2
    RTL


It checks for $5C (free ram) and checks if its value is #00, and if it isn't it checks if it's #$01, and if it's not THAT then it just ends the code.

In the Projectile1 and Projectile2 branches it counts down 64 frames then runs the code that I totally didn't copy-paste from one of Nesquik Bunny's posts. After it spawns the bone/fireball it changes $5C's value and ends the code.

What happens in-game is that it just spawns a bone and doesn't even get to the fireball, and it does nothing afterwards.

What am I doing wrong? Am I epicly failing at branching without even knowing it?
I'm not too experienced at ASM but I think you'd need some serious ASM skills to make all this happen. Don't think that I know how to do any of the things I'm about to suggest #smw{:trollface:} but it's definitely a simple to-do list for you basically.


i.e. detect if it's a 2-player game, make a new fireball powerup that only Luigi can use, maybe even modify/tweak the fire flower sprite


You'd most likely even need to change Mario (yes he's a sprite too).


You'd definitely need to modify Yoshi.


As I said before I don't know how to do any of this, but I felt like what I said is at least a little helpful (hopefully). :3
I'm using this awesome tool because it's the most tedious part of coding a sprite (so I've heard, and experienced so far).

Thing is, it only exports to trasm, which (to my knowledge) can't be used with Romi's Spritetool.

I googled trasm to xkas converters with no luck. I googled tutorials so I could try to do it myself with no luck. Every archived thing on SMWcentral was a "file not found."

Can anyone help? Thanks.
Originally posted by MarioFanGamer
Originally posted by ThePat545
Thing is, it only exports to trasm, which (to my knowledge) can't be used with Romi's Spritetool.

It can be used but since TRASHM is pretty outdated (in fact, sprite tool is the only tool which use this), it's not recommend to.

Originally posted by ThePat545
I googled trasm to xkas converters with no luck. I googled tutorials so I could try to do it myself with no luck. Every archived thing on SMWcentral was a "file not found."

You mean Trashkas?

Thanks a lot! You helped me with everything I needed!

You cleared a couple misconceptions up for me too. ;P
Originally posted by leod
Didn't even know that a graphics tool like that exists.
Even more surprised that Jack would make a tool output trasm code when trasm was already frowned upon when he made that!


Okay, so I wanted to add sounds to SMW but I don't know how to convert sounds into a .brr file, let alone make a block or sprite run ASM to actually play it. Anyone know how to do this? Thanks.
Originally posted by DiscoTheBat
Well, you need to put this code on your block/sprite/UberASM code:

Code
LDA #$xx
STA $1DFy


XX = The number of the music/sound you want to play.
Y = The sound bank you want it to play. It could be $1DFC | $1DF9 | $1DFA and if you want to play music, you use $1DFB.


But how do I add a sampled sound, i.e. a voice? And can that same code be used for those kinds of sounds?
Pages: « 1 2 3 4131 132 »
ThePat545's Profile - Posts by ThePat545

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2019 - SMW Central
Legal Information - Privacy Policy - Link To Us


Total queries: 7

Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • SMBX Community
  • ROMhacking.net
  • MFGG