Banner
Views: 784,703,118
Time:
12 users online: bandicoot, Bowser95, Falaflame, Flippn'Fences,  Giftshaven, h.carrell, Hiro-sofT,  Major Flare, NeptuneNeon, rvx, TheStellarstrix, westslasher2 - Guests: 34 - Bots: 247 Users: 41,034 (1,552 active)
Latest: Pulvanuller
Tip: Don't use glitched graphics.Not logged in.
Romi's Sprite Tool - LM 3.00 Compatibility
Forum Index - SMW Hacking - Resource & Tool Releases - Romi's Sprite Tool - LM 3.00 Compatibility
Pages: « 1 »
In respect to all SMW hackers that still uses Romi's Sprite Tool, either for personal reasons or for their already work in progress hacks (myself included), I have made a version compatible with Lunar Magic 3.00, so you can have custom sprites that works with the new dynamic levels and use the Goal Tape Point secret exit 2 and 3.

Download Regular ROM Version

Download SA-1 ROM Version

I attempted automatically adding Dynamic Levels support on the built-in Custom Sprites using a script (or well, Notepad++ find/replace), but for obvious reasons probably not all sprites will work.

If you find some issue with a certain sprite, please let me know and I will fix them for you.

Merry Christmas!

--------------------
GitHub - Twitter - YouTube - Blog - SnesLab Discord
Originally posted by Vitor Vilela
In respect to all SMW hackers that still uses Romi's Sprite Tool

*raises hand*

Thanks so much for making this, too! This is just what I needed.

What exactly has changed coding-wise? Do the sprite X/Y position addresses now work differently, or does the Y position just support more values? Do sprites that end the level need to be recoded?

--------------------


 
Fanatical like a Demon
Originally posted by Vitor Vilela
In respect to all SMW hackers that still uses Romi's Sprite Tool

We need more people that respect this kind of thing with other resources. Props to your hard work and always going above and beyond!
Major thanks to Suika Ibuki for layout!
SMAS Soundtrack Status: 100% finished
YI Soundtrack Status: 97%
YI Unsampled Soundtrack Status: 100%
NSMB Soundtrack Status: 7.89%
Killer Instinct Soundtrack Status: 14.63%
SPC Thread
From our family to you, keep your pants dry, your dreams wet, and remember, hugs not drugs.
I gave it a try, and I'd like to bring up a couple of points:

It seems like whenever I use Asar-specific features (if/then, sub-sublabels, etc.), Sprite Tool refuses to insert the sprite and instead gives me an Asar warning saying "Convert the patch to native Asar format instead of making an Asar-only xkas patch." Is this an issue on your end?



Is it true that the SubOffScreen entry points now only go from 0-3 instead of 0-7? If I previously used SubOffScreenX7, what do I replace it with?
(I forgot what the values do actually)



And at the risk of sounding nagging, I'd be grateful if you could confirm this:

Originally posted by WhiteYoshiEgg
What exactly has changed coding-wise? Do the sprite X/Y position addresses now work differently, or does the Y position just support more values? Do sprites that end the level need to be recoded?


--------------------


 
Originally posted by WhiteYoshiEgg
It seems like whenever I use Asar-specific features (if/then, sub-sublabels, etc.), Sprite Tool refuses to insert the sprite and instead gives me an Asar warning saying "Convert the patch to native Asar format instead of making an Asar-only xkas patch." Is this an issue on your end?

Sprite Tool defaults to Asar in xkas-emulation if the sprite is made for xkas. That can be changed if you open the CFG file and change the 1 at the end of the file into 2.

Originally posted by WhiteYoshiEgg
Is it true that the SubOffScreen entry points now only go from 0-3 instead of 0-7? If I previously used SubOffScreenX7, what do I replace it with?
(I forgot what the values do actually)

The values are used for the index. Specifically, each index are the position relative to the camera when the sprite despawns and most of the values are used, in fact.

--------------------
Okay, my layout looks ugly.
Originally posted by MarioFanGamer
Sprite Tool defaults to Asar in xkas-emulation if the sprite is made for xkas. That can be changed if you open the CFG file and change the 1 at the end of the file into 2.

That worked, thanks!

Originally posted by WhiteYoshiEgg
The values are used for the index. Specifically, each index are the position relative to the camera when the sprite despawns and most of the values are used, in fact.

Alright, but is there a reason why the routine in this version only includes X0-X3, not X0-X7? Does it have to do with the new level height system? Can I just add X4-X7 back myself, or should I replace every call to X4-X7 with a call to X3?

--------------------


 
I actually have considered switching back several times, so thank you
Many thanks for making this!! This will definitely be useful.
@WYE no quotes because I don't know what I am doing.

Old suboffscreen configs should follow this standard: https://www.smwcentral.net/?p=viewthread&t=77473

All new LM3 support code does is check if the sprite is offscreen (+ the vertical check) for then to run these checks (the old checks thingie).

With love from pixi:
Code
		LDA !D8,x ; usual code
		if !EXLEVEL
			PHA ; keep register B intact
			; from the exsprite patch
			LDA !14D4,x
			XBA
			TAX
			PLA				; \ Get 16-bit Y position of sprite
			REP #$20				; /
			; screen size
			CMP.w $13D7|!Base2			; \ If it's beyond level boundaries...
			BPL .checkErase				; /
			SEC					; \ More than 224 pixels *after* screen
			SBC $1C					;  | boundary...
			; y range max
			CMP.w $0BF2|!Base2			;  |
			BPL .checkErase				; /
			SEC					; \ Or more than 224 pixels *before*
			; y range min
			SBC.w $0BF0|!Base2			;  | screen boundary...
			EOR.w #$8000				; /
		.checkErase						; \ We will return with N clear which means
			SEP #$20				;  | delete the sprite!
			PHP
			; keep register B intact
			TXA
			XBA
			LDX $15E9|!Base2
			PLP
		else
			CLC                     ; | 
			ADC #$50                ; | if the sprite has gone off the bottom of the level...
			LDA !14D4,x             ; | (if adding 0x50 to the sprite y position would make the high byte >= 2)
			ADC #$00                ; | 
			CMP #$02                ; | 
		endif
			BPL .erase              ; / ...erase the sprite ; usual code

Then after that, what comes is the usual code with the usual configurable check thingie.

tl;dr LM3 doesn't have much to do with the many different suboffscreen types.

This answer is sponsored by Vitor Vilela, I don't really keep track of the forums.
Ah, yeah, I just realized I copied the entire routine from a sprite that only had x0-x3. Keeping my old routine and copying only the changed part seems to have worked.

Thanks for the reply, and for linking to that thread!

--------------------


 
Pages: « 1 »
Forum Index - SMW Hacking - Resource & Tool Releases - Romi's Sprite Tool - LM 3.00 Compatibility

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

  • Talkhaus
  • SMBX Community
  • GTx0
  • Super Luigi Bros
  • ROMhacking.net
  • MFGG
  • Gaming Reinvented