Language…
20 users online:  Atari2.0, codfish1002, DanMario24YT,  Deeke, Domokun007,  Donut, gemstonezVA, iamtheratio, JezJitzu, Macrophaje, mario90, mathie, Maw, nonamelol1,  Ringo,  Segment1Zone2, SirMystic, synthie_cat,  Telinc1, xMANGRAVYx - Guests: 269 - Bots: 321
Users: 64,795 (2,375 active)
Latest user: mathew

Discussion of Tessera, my new Sprite Tool (updated)

Well, I have only one sprite left to code (except ones I don't plan on bundling with the tool). This means I'm on the verge of being ready to pester my testers again. Everything pretty much seems to be running smoothly (although carriable sprites are as big of a pain as ever) except for an odd hack in the middle of $0086DF that mysteriously appeared in my ROM and a persistent but tricky bug that pops up occasionally. Sometimes, for no apparent reason, some extra sprites will spawn in the level, such as Goombas and shell-less Koopas. Others have had this problem, but I don't know what causes it, and since its occurrence doesn't seem to follow a pattern, I can't figure out how to reproduce it.

Edit: And...that's it. I made the NPC, and, surprisingly, it was actually quite easy to code. The entire .asm file was only about 400 lines long. That was the last sprite I was going to bundle with the tool, so...now it's time for MORE TESTING!

Edit 2: Oh, and here is the newest link.

Edit 3: Would anyone be interested in helping me revamp old sprites to work in—and take advantage of—the new tool?

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Well, unless anyone still has anything to add or contribute, I'll probably release the tool shortly (as soon as I update the readme and check the Linux version).

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
I have not read through the entire thread, so I don't know if this has been suggested yet or not.

Either way, I will suggest the same thing I suggested for GEMS; to incorporate CFG files with the sprites list, and make a list editor instead


This way, you could keep track of the different files in a list MUCH easier, and you don't have to open up every CFG separately file if you feel like improving the sprites. hell, you'll practically get rid of the CFG files completely. Of course, you could make it so one can import a CFG file, so one doesn't have to copy over all the values by hand.

The other thing is the Master Properties idea. this is a box that combines all the different properties to one. So, if your first properties box is set to 11, and the next one to 3A, the Master Properties box would display "113A...". This way, you can easily copy entire CFG properties into a single string. This can be useful if you need many sprites with the same properties, or when you feel like sharing properties over the net. All you'd have to do would be to post the Master properties string in your post. Further more, down the road, CFG files could become completely moot, and one could instead simply post the Master properties in the readme.

Finally, the lists themselves would be text files, with lots of lines in a very simple format:
Code
[sprite number] [asm file] [master properties]

And then Tessera could insert the sprites with that.
example list:
Code
12 giantmole.asm 10FF639259
C3 shell2.asm 10FF43ABCD



Of course, I realize I am probably posting this too late, and that it would be too difficult to make Tessera work like this(if it even is beneficial at all), but oh well.
I think the "master properties" would have to be slightly longer then that.

If a config file is like:

1
d
0 c 36 3a 19 c4
22 5

Then we have:

1 d 0 c 36 3a 19 c4 22 5

or

010d000c363a19c42205

you would also need an xkas flag and anything else that might be put in a .cfg file in the future.

I guess it's still possible. Personally though I prefer it the way it is now. You can just send a whole bunch of config files with a sprite for different versions and don't have to copy and paste crap all over. I guess using both methods is possible.
Your layout has been removed.
I am concerned with something here:
These extra bytes in your case are extra bits, And in come cases, they have more options:
;; Bits 0-7: Index to data tables.
; The bits in this table goes as follows:
; Bit 0: 0 -> stationary, 1 -> moving.
; Bit 1: 0 -> spit fireballs in an arc, 1 -> spit straight up.
; Bit 2: 0 -> fall off ledges, 0 -> stay on ledges. (Has no effect if the sprite is stationary.)
; Bit 3: 0 -> don't face the player, 1 -> turn to face the player every so often. (Has no effect
; if the sprite is stationary.)
; Bit 4: 0 -> don't jump over shells, 1 -> jump over shells.
; Bits 5-7: Spit timer index.

The value I obtain doesn't go in the Extra Property bytes boxes. Where should it be assigned instead?
Are you talking about the extra byte or the table values? The extra byte value goes in the "Extension" field in Lunar Magic when you insert the sprite into the level. The table values go...well, in the tables. The extra byte is an index to these, so 00 would make it use the first byte in the table, 01 would make it use the second, etc.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
So it goes in the extension. I see. If extra bit=1, it will take the bit you assigned from the extra bitm and if it's 2, it will only take the bit assigned from the 2nd extra bit? Or both of them?
Sorry if my explanations aren't clear.
And extra bit 4 is replaced by extra bit 0 for some reason.
The only valid ones are 0,1,2 and 3.
Originally posted by Ripperon-X
So it goes in the extension. I see. If extra bit=1, it will take the bit you assigned from the extra bitm and if it's 2, it will only take the bit assigned from the 2nd extra bit? Or both of them?

Um...what? The extra bit has no effect on the extra bytes.

Originally posted by Ripperon-X
And extra bit 4 is replaced by extra bit 0 for some reason.
The only valid ones are 0,1,2 and 3.

Yeah.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
I think you need a GUI for this.
168 firebar.cfg

This is the only sprite I wanted to try. I put in a list named Tes.txt
I installed Active Perl and thenI typed in the command pronpt right in the program:
Tessera.pl -r Tessera.smc -l Tes.txt

And I get this message:


How can I fix this?
Originally posted by Ripperon-X


Don't type the "-l" or "-r". Just type the names.
I should get a new layout.

Probably won't, though.
No, actually, you are supposed to type the -r and -l if you aren't using the defaults. That is a bug, though...I seem to have put a 0 in a place that was supposed to have a 1. It should be fixed now.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
I got no message. I think it worked. Let's see.
Edit: No. It didn't. Now this pops up:


And errlist.txt just says: Patch applied with no errors.
Also, another bug is that after applying the command I wrote in command prompt and make it or not really, the ROM expands to 8 MB. I'm serious.
Originally posted by Ripperon-X
Also, another bug is that after applying the command I wrote in command prompt and make it or not really, the ROM expands to 8 MB. I'm serious.


Originally posted by the readme
4) Also, if you happen to have used the tool on a previous ROM with the same name as a new one (for instance, if you ran it on smwhack.smc, smwhack.smc somehow got corrupted, you deleted it, and now you have a fresh ROM also called smwhack.smc), you must delete the old "romname_spritedata.bin" file (it will be in the "sprite2" folder), or the tool will not work correctly. (In my example, it would be called smwhack_spritedata.bin.)


Originally posted by Ripperon-X


You have to replace all instances of "print "INIT ",pc" with "Init:" and "print "MAIN ",pc" with "Main:" in the sprite's ASM file. That should probably be in the readme, actually...
I should get a new layout.

Probably won't, though.
No. That's already done in the .asm file.
Oh, that sprite isn't in xkas format, is it? It's in TRASM format, which means it needs to be converted. Replace all "dcb" with "db", and make sure that all labels have a colon at the end. Constants (e.g. RADIUS = $28) also need an exclamation point in front of them (!RADIUS = $28). Finally, replace "dcb "INIT"" with "Init:" and "dcb "MAIN"" with "Main:".
I should get a new layout.

Probably won't, though.
Ok, I checked a little in detail and guess what: Those fixes are already there. This is annoying.
Ah yes, and after that, the ROM got expanded to 8 MB again.
What were the exact steps that you guys used to run the tool? That includes what you typed into the command prompt.

(Also, I still wish somebody who can program worth a darn would make a better version of this...)

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
In my case all I did was: Put Tessera.pl in the same location as Tes.smc and xkas along with the 2 .asm files mentioned in the notepad. Then I created a .txt file "sprites.txt" and put:
170 birdo.cfg
272 lakitu_smb3.cfg
Saved the notepad after that. I still don't understand the "duplicate" part.
I deleted the sprites mentioned from the ROM and expanded to 1 MB. Is it safe to expand up to 4 MB?
After that, I decided to apply NoMoreSpriteLimits.asm, sharedsub.asm, spritelockhack.asm(I think that's its name), subroutinedefs.asm and extendnstl.asm manually to my ROM with xkas.
And then I typed "Tessera.pl -r Tes.smc -l sprite thes.txt". I even tried without the "-l sprite thes.txt", becuas eI specified in Tessera.ini. And I mentioned early that it shows the things I posted before. The pictures tell the answer.
I don't think it's wrong.
I'm wondering about:

2) First of all, you may need to run the batch file or shell script (depending on your OS) to install a certain Perl module that is necessary for the tool.

Perl module? I installed active perl to make this work right. Is this the correct thing here?
Originally posted by imamelia
(Also, I still wish somebody who can program worth a darn would make a better version of this...)


I could, but it would be strictly Windows only (high school programming classes bleh), and I don't think you want that...(and by "strictly Windows only" I mean even Mono won't run my Visual Basic .NET abominations.)

Also, Ripperon-X, could you show us the exact .asm file you're using? I just want to make sure you converted it correctly (and please post a link to it from your file bin or Dropbox or something; it's annoying having a huge wall of code in a post).
I should get a new layout.

Probably won't, though.
Originally posted by imamelia
(Also, I still wish somebody who can program worth a darn would make a better version of this...)

I could try when I get home. I want BTSD gone too (its interface confuses the fuck out of me, and I don't like its lack of header support either), but much code should be sharable.

Originally posted by Ripperon-X
NoMoreSpriteLimits.asm and extendnstl.asm

I don't know how relevant this is, but are you sure those two are compatible?

Originally posted by Ripperon-X
subroutinedefs.asm

I don't think that patch edits the ROM in any way.

Originally posted by Kipernal
Visual Basic

nng
<blm> zsnes users are the flatearthers of emulation