Views: 843,394,590
21 users online: anoare, BanjoN64Fan, BuinggamerTv, Counterfeit, crm0622, Eduard, FlamesBoom5628, Green Jerry, HD_DankBaron, Janno27, JP 14, Kusrry, l337f00l, Leozoppi, Mario is the best,  MarioFanGamer, MrDeePay, Neuromancer,  Tahixham, ZeldaVerde, Zidan3 - Guests: 46 - Bots: 65 Users: 46,333 (2,850 active)
Latest: Lush_50
Tip: When using custom palettes, remember that certain colors in palettes 0 and 1 will also affect the status bar.Not logged in.
Posts by Lexi
Lexi's Profile - Posts by Lexi
Pages: « 1 2 3 426 27 »
Originally posted by I8Strudel
Though it's hard to tell exactly what's wrong since you didn't provide the code you're using, it looks like you're putting "$" instead of "#$" when you're making a value. "$" leads to an address, and "#$" is a number that goes into an address.

Example: You say you're using "$74" to load the value of a Mushroom sprite. However, since you're using "$", you're loading whatever value is currently present in address 74, which is the flag for "Mario is climbing". If you were to use #$74, you'd be loading the value of a Mushroom (though you still need to load that value into the right address).

Thanks for the help, but that's not what appears to be the issue. I agree, it's strange, but adding/removing the "#" doesn't change a thing. Here's the code:
;generates a sprite when touched by Mario with the below parameters
;by smkdan
;Act like whatever
JMP MarioBelow : JMP MarioAbove : JMP MarioSide : JMP SpriteV : JMP SpriteH : JMP MarioCape : JMP MarioFireBall
;don't touch those

;If you want to spawn a stationary shell, select a shelled koopa of the color you like and set INITSTAT to 09

!SPRITENUMBER = $00	;sprite # to generate
!ISCUSTOM = $00		;set to 01 to generate custom or 00 for standard
!INITSTAT = $01		;change only if the note told you so

!XDISP = $0020		;value added to block position on generation
!XSPD = $00		;speed values
!YSPD = $00


	PHY		;preserve Y
	JSL $02A9DE	;grab sprite slot
	BMI Return_l	;return if none avaliable
	TYX		;into X

	LDA #!INITSTAT	;set to initial status
	STA $14C8,x	;status

	LDA #!ISCUSTOM	;if custom set different type table
	BNE Custom

	LDA #!SPRITENUMBER	;sprite to generate
	STA $9E,x		;sprite type
	JSL $07F7D2		;clear
	BRA SkipCustom
	STA $7FAB9E,x	;custom sprite type table
	JSL $07F7D2	;clear
	JSL $0187A7	;load tables
        LDA #$88		;set as custom sprite
        STA $7FAB10,X
	REP #$20	;apply xdisp
	LDA $9A
	SEP #$20
	STA $E4,x
	STA $14E0,x

	REP #$20	;apply ydisp
	LDA $98
	SEP #$20
	STA $D8,x
	STA $14D4,x

	LDA #!XSPD	;store speeds
	STA $B6,x
	STA $AA,x

	LDA #$02	;erase self
	STA $9C
	JSL $00BEB0	;generate blank block

	PLY		;restore Y

That is "gensprite.asm", included with BTSD. I have edited SPRITENUMBER to equal $74, and that generates a Mushroom, despite lacking a "#" sign. I also changed XSPD to $05, and again, that works. But changing XDISP to $00, $0000, or even #$0000, always glitches the game. What gives?
Thanks a lot, MarioEdit! That part of the code wasn't mine, so I wonder why it was like that. Also, any idea why it worked with $0020 and nothing below that? I did figure out why the "#" wasn't needed, kinda stupid on my part.
Now, is there a way to make the mushroom come out of the block just like it does in-game? Is there a disassembly for blocks?

Thanks again!
Yeah, Objective-C's kinda strange, but I've finally gotten used to it. Unfortunately, it's the only programming language for iPhone development, so I don't have much of a choice.
FYI, I'm not trying to make a port to work with Wine, I'm trying to make a port that runs natively on Mac OS X.
I'm finally back at my computer and able to hack, so even though I don't have much new stuff to show off, I thought I'd take the opportunity to make a thread in the new subforum and show some videos!
First off, a video of level one, now with custom palettes:
<object width="480" height="385"><param name="movie" value=""></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
Now level two with custom palettes and an extended level:
<object width="480" height="385"><param name="movie" value=""></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
And a completely new level, though lacking in the custom palettes department. I'm working on it:
<object width="480" height="385"><param name="movie" value=""></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
Please note that all music is temporary.
Finally, though the OW is still a big work in progress, I thought I'd show a screenshot of it:

Also, in case anyone wants it: link to old thread.
I like the status bar, but my one problem is the item box. Why have the two lines below it? Either have no lines or four, enough to complete the bottom of the box.
Of course, this is just my opinion, it's your hack!
Wow, this hack is amazing. You've changed so much that it's no longer SMW, it's a completely new platformer! All-new graphics, new physics, new everything! The level design is amazing and innovative, and playing as a block is a cool idea. Can't wait till it's done!
Thanks for all the feedback!
I like the palettes, so I'm not going to change them, at least not much. Heck, it's mario. Things don't need to make sense. :P
Anyway, I do agree that I was allowing the player to get too many 1-ups, so I've fixed those sections, though the videos haven't (and will not) been updated.
As for new content, I just have this one level:
<object width="480" height="385"><param name="movie" value=""></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
I know there's a lot of lag around 2:13, I'm working on that. Please give feedback!
This hack looks AWESOME. My only issue is that I think the pre-rendered DKC and cartoony SMW graphics really clash in the fourth level. It's just that going from a cartoony world to a pre-rendered realistic one seems odd to me.
I want a background where some tiles appear in front of layer 1, but for some reason layer priority isn't doing a thing. I know I've seen it done before, but I can't remember where.
1. A level can have a custom palette that just applies to that level. Just go to Level -> Enable Custom Palette. Then click the star button on the toolbar or choose Level -> Change Palettes and Edit Colors. Then edit the palettes as normal.
2. You can use ExGFX to change graphics for just one level. Check out this ExGFX tutorial for more info.
I've seen lots of tutorials about editing GFX, and there are plenty about inserting ExGFX, but I haven't seen a good tutorial in making your own ExGFX. So, I hope this tutorial will be of use to those who haven't quite got the hange of it yet.

ExGFX stands for Extra Graphics. Basically, you can use it to change the graphics of a single level. This means you can have tons of different sets of graphics to be used in different levels.
In addition to Lunar Magic (obviously), you'll need a program called YY-CHR. You can get it here. YY-CHR let's you edit the graphics in Super Mario World. Once you've downloaded YY-CHR, extract the ZIP file and change the file called yychr.ENG to yychr.ENU (in caps). Otherwise, it won't be in English. Now we can begin!

1. Open your rom in Lunar Magic. Notice that there are four mushroom buttons on the toolbar.

Click the first three in order (red, green, blue). When you click the blue mushroom, a message will say no ExGFX are present in the ROM. This is normal, just click OK.
2. Open the folder where your ROM is. You'll notice you now have two folders there, Graphics and ExGraphics. Open the Graphics folder. You'll see one of two things: a bunch of files named GFX00.bin, GFX01.bin, etc., or you'll see a single file called AllGFX.bin. If you've ever edited the graphics of SMW you've probably used AllGFX.bin, but for ExGFX you'll want to use the many separate files. If you just see AllGFX.bin, go back into LM and uncheck Options -> Use Joined GFX Tiles. Then press the red mushroom again. You should now have all the separate GFX files.
3. Open YY-CHR. If you've never used YY-CHR before, I'll explain it here. First, open GFX00.bin (the one you just extracted in the Graphics folder). You'll notice the graphics change to a garbled mess. In the bottom-left corner of the window there is a drop-down list that says "1BPP (YX)". Change it to "4BPP SNES". Now the Graphics should look more like SMW graphics, but the colors are off. To fix this, make a save state in ZSNES while in a level. Then, go back into YY-CHR and press Palette -> Load Emulator State File. Then select your .zst file. Now things should look much better, though the opbjects may not all be in the correct palettes.

Now I'll explain how YY-CHR works.
There are two main viewing areas. The left side shows all the tiles in the GFX file. You can click on a tile to select it. The right side shows a close-up of the currently selected tile, and you can edit the tiles here. Also, below the right pane are the palettes. You can switch between palettes by clicking on them. Try clicking on different palettes to see how it affects the tiles on the left. On the far right, there is a list of buttons that switches between editing tools, such as the line tool, the pencil, and the rectangle tool. To choose a color to draw, click on the color in the palette. Then draw by clicking in the editor. In truth, it's not too much different from most graphics editors.
3. Now that you are (hopefully) educated in YY-CHR, let's actually edit some graphics. Let's say that you wanted to change the graphics of the mushroom for just one level. Admittedly, I don't know why anyone would want to do this, but I'll show you how as an example. First, save a copy of this file (go to File -> Save As...) and save it as ExGFX80.bin in the ExGraphics file created by Lunar Magic. ExGFX files must be named ExGFXXX.bin, where the XX is replaced by a number from 80 to FF. DO NOT use anything out of this range. Now that we've made a copy of this file, we can continue editing.
4. Select the mushroom palette (it's palette C) and edit the GFX file to anything you want. I made mine upside down and modified the eyes a bit. I was feeling unimaginative, sue me.

Save the file and exit YY-CHR.
5. Click the yellow mushroom to insert your new ExGFX. now we need to tell Lunar Magic what level we want to use our new graphics. Open the level you want and click the red poison mushroom to open the Super GFX Bypass window. Check the box that says "Enable bypass of standard FG/BG/SP GFX and the older bypass methods for this level." All the dropdown menus will become available.

Notice the one that says "SP1: 00". Hey! That's the same number as the graphics file we edited. Change it from 00 to 80 (the number we named our ExGFX file) and click OK. Save your level and test it out. The mushroom will be replaced with your new graphics! Try a different level. Notice that the mushroom graphics still look like the original SMW graphics. This is the power of ExGFX.

This is the end of how to make ExGFX, but I'll give you some more tips on how to put this to full use. First, you'll notice we edited GFX00.bin. This contains sprites, which is why it was listed as SP1: 00 in the Super GFX Bypass (SP standing for sprites). If you wanted to edit the ground, notice that it says FG1: 14. This means that the ground probably uses GFX14.bin. To edit this file, you'd do the exact same process, but save it as ExGFX81.bin (or something like that) and insert the ExGFX again using the yellow mushroom button. It's that simple. Finally, let's say you need graphics for a custom block, but this block will only be used in a select few levels. Just make an ExGFX file for it and replace the GFX of something you don't need with your custom block GFX. Then, assemble the tiles using Map16. This is one of the most powerful features of ExGFX.

I am considering expanding this tutorial to include ExAnimation, so tell me what you think and I'll update it accordingly!
Originally posted by Livin4Jesus
One quick question: I'm trying to make ExGFX for the extra Map16 blocks (300 and over), but I don't see a special slot for them, just for the normal ones. Is there a way to apply ExGFX to the custom blocks? If so, how? Thanks in advance.

Just so you know, the SNES can only load a certain number of GFX at a time. ExGFX doesn't change this, it just adds more GFX that can be loaded. So, to make custom block GFX, you need to replace something else. For example, let's say you have a one-way block. Open up, say, GFX17 and replace some of the bush tiles with your own custom graphics (I rarely use the SMW bush). Then save it as an ExGFX file. Now bypass the GFX and use the 8x8 tile editor to assemble your custom block using the Map16 tile editor.
I don't think I'll do a separate ExAnimation section because making ExAnimation ExGFX files is really about the same as regular ExGFX files and there's a perfectly good ExAnimation tutorial already out there. But maybe I'll add this to the main tutorial (with pictures) soon.
Glad my tutorial has helped! :)

EDIT: Oops, someone beat me. WHAT? Ninja protection FAILED!? What can it mean?
But I do want to use the background tiles as well. Is there no way at all to use layer priority with an image?

EDIT: Also, layer 2 level won't work. I want to use lava but the palette gets shifted. Is there a way to turn off palette shifting?
If you edit the regular GFX files (without making them into ExGFX files) then it will apply to the whole hack. Remember when I said to uncheck "Use joined GFX Tiles"? Well, if you check it and click the red mushroom, it will generate a file called AllGFX.bin in the Graphics folder. This holds all the graphics in SMW in one file. Open this in YY-CHR and edit the AllGFX file. Then insert it with the green mushroom button. This will edit the graphics permanently (unless of course you make an ExGFX file to override it). Keep in mind though, if "Use joined GFX Tiles" is unchecked, it will insert the smaller GFX files when you click the green mushroom, and when checked AllGFX will be inserted.
Originally posted by Livin4Jesus
That would only apply to normal graphics, which is 1FF and below. :/

Err... no? You can use the normal SMW graphics for blocks above 1FF. I don't really see the issue here. What are you trying to do?

Originally posted by RivalNightmare
I'm re-naming the file yychr.enu but it won't work.. It's still in japanese..

Make sure you're actually CHANGING the file extension. Sometimes, OSes will hide extensions, you can turn this off. If you are definitely editing the extension, then I don't know what to say...
Oh. My. God.
I love this. The Map16 features are really nice. Plus, my hack seems to be compatible so far. Happy birthday LM.
Pardon me if I don't understand, but Map16 blocks don't change level to level. So you wouldn't have to reassemble anything. And if you edited the graphics without using ExGFX, you wouldn't have to change anything for each level.
I found something that could be a bug. In the new palette editor, colors A-F in palettes 5-7 are black. Also, when I try to edit them, LM gives me this error: "The color may be hardcoded by ASM." The only way I can edit these colors is if custom palette is enabled, but I want to use it for my whole hack. If I open my ROM in 1.71, the colors appear correctly. What gives?

EDIT: I found where my colors were going. They seem to have moved to the overworld. However, no matter how I edit them, they still show up as black in-game.
Oh. Didn't realize that. :P Anyway, it's fixed now, fortunately I was only using that space for one color. Me and my brilliance...
Originally posted by A-l-e-x-99
And on a related side note, I wonder what made FuSoYa want to start working on Lunar Magic again in October 2009 after proclaiming that version 1.63 (which was current as of September 2005!!!) would be the final version? 8>

Yeah, but I'm sure everyone here is sure glad he changed his mind! :)
Pages: « 1 2 3 426 27 »
Lexi's Profile - Posts by Lexi

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

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


Follow Us On

  • YouTube
  • Twitch
  • Twitter


  • Super Mario Bros. X Community
  • Mario Fan Games Galaxy