Register FAQ Search Today's Posts Mark Forums Read
Go Back   JazzJackrabbit Community Forums » Open Forums » General Jazz Jackrabbit Talk

How Do You Make JJ1 Custom Animated Tiles(With Custom Tilesets)?

Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 1, 2011, 01:22 PM
Love & Thunder is offline
Reply With Quote
Question How Do You Make JJ1 Custom Animated Tiles(With Custom Tilesets)?

Well, the name says it all, really. I have JJ1 MOD, and it says nothing about animations for custom BLOCKS/Tilesets. Also, since it extracts the images as .BMP(Which doesn't support animations in the same way .GIFs do), it's unlikely that the animations are stored in the images via layers like GIMP allows(I use GIMP 2.4.6, it's the best image editing program, because it's free and can do anything Photoshop can do ). Does anyone know how to do animated JJ1 Tiles?
__________________
cooba cooba's Avatar

JCF Veteran

Joined: Jan 2004

Posts: 7,812

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Oct 1, 2011, 01:47 PM
cooba is offline
Reply With Quote
JJ1's animations don't work the same way JJ2's do. All the "animated" tiles, like waterfalls or rain or lava, are drawn with colors placed in certain indices of the tileset's palette. The tile itself doesn't change a pixel but its colors do. (This article explains it in more depth). The tilesets' animated ranged are hardcoded, here's a list of them.
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 1, 2011, 02:20 PM
Violet CLM is offline
Reply With Quote
That list, I think, is from before we actually had a level editor for JJ1, so it's kind of outdated. JJ1 tile animations are all palette swaps, as cooba says, but just saying they're hardcoded simplifies the issue a little. In the (Level) Properties window in J1E, you'll see an option called Background Effect. This controls various things related to the palette, including, although this isn't actually documented anywhere, which sequences of colors in the palette are animated. 112-115, 116-123, and 124-126 are always(?) animated, whereas other sequences are only animated for certain settings of Background Effect. For instance, Battleships has a setting that animates 128-191 and 192-223, and Fanolint has a setting that animates 192-223 and treats 128-191 as a tiled parallax background of the type seen also in Tubelectric, Crysilis, and Ceramicus. Documentation for Background Effect is limited and sometimes inconsistent, so... play around.

(All animations that are not simple palette swaps, like the spikes in Exoticus, are animated sprites.)
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 1, 2011, 04:27 PM
Love & Thunder is offline
Reply With Quote
Question Are J1E And HH95 Incompatible?

Thanks a bunch! This'll help me with my new J1E Project. At the moment, I'm making the SPRITES and BLOCKS files. I've got another question while this thread remains active, though, whenever I make a Jazz 1 level using J1E and run it using Holiday Hare '95, it crashes and says:
Quote:
Error: Unable to load level file.
Press Enter to exit...
or something along those lines. Am I doing something wrong? I was using:

Holiday Hare '95 running through DOSBox at Maximum Cycles setting(Because otherwise it runs too slow... Excuse the unintentional pun...) on VISTA, with a level made in J1E that's just a box made with the Diamondus Tileset using the Diamondus Sprites. It had nothing inside the box. This happened again with the same thing, except it was Medivo Sprites and Tiles. I tried making something else in J1E, this time using Medivo Sprites and Diamondus Tiles, I ran it OpenJazz, and it made me fall through the floor with Medivo Tiles and Medivo Sprites(I chose Medivo Sprites because I wanted to make you play as Devan in his Machine). I don't really care about that 3rd scinario much(I think I know what I did wrong), but I really want to know what happened the other two times. Can you guys help me? I'd be really grateful if you can.
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 1, 2011, 08:06 PM
Violet CLM is offline
Reply With Quote
Four points come to mind:
  • Build off of an existing level whenever possible, which is 100% of the time. You may not need every event from the old level, but that's much preferable to having to make every single one of them from scratch, and I've never even come close to running out of events, so that shouldn't be a concern.
  • If you fell through a floor, that's probably a sign that the tiles aren't masked. Remember that masks are defined in J1E on a per-level basis, rather than being stored in the tileset file like they are in JJ2.
  • Playing as Devan in his machine, issues of sprite size vs. player mask size aside, requires SPRITES.018, not SPRITES.002, since the guardian sprites aren't used in the regular Medivo levels.
  • In response to your main question, I don't have HH95 installed right now, but you yourself can check whether they're incompatible simply by downloading someone else's level (made in J1E) and trying to run it.
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 2, 2011, 05:40 PM
Love & Thunder is offline
Reply With Quote
Thanks, I tried what you suggested, and it still came up with:
Quote:
Fatal error. Game halted.
read error LEVEL0.000
Please run HELPME.EXE for more information.

Press any key to exit.
_
But that's when I ran Jazz Jackrabbit Shareware Version, when I ran it with OpenJazz, it was fine, except it lagged like hell. This time, I was using Medivo as normal, but Jazz's sprites were all changed to other things. I'm using Windows Vista and it's running through DOSBox, Version 0.74 with default settings(When I wasn't using OpenJazz).
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 2, 2011, 06:25 PM
Violet CLM is offline
Reply With Quote
Are you getting that error running a LEVEL0.000 that you downloaded in HH95 and the Shareware, or one you made yourself? If so, which one; if the latter, can you upload it someplace so that other people can look at it and try to isolate your problem?
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 3, 2011, 06:57 PM
Love & Thunder is offline
Reply With Quote
I did build it, and all it is is a box(Made with J1E).
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 3, 2011, 07:42 PM
Violet CLM is offline
Reply With Quote
Huh. I downloaded HH95 and tried running a J1E-made (well, made with a variety of level editors, but J1E was included) level. It didn't crash, but a lot of the sprites from MAINCHAR.000 didn't show up at all. I guess there's some sort of incompatibility between HH95 and the specs J1E uses. A clean shareware version should work, though...
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 3, 2011, 07:47 PM
Love & Thunder is offline
Reply With Quote
Can you try it with standard Shareware Jazz, just make a 1-tile thick, hollow box, inside the box put the player and nothing else, and it WILL break. This happens on Shareware and HH95 for me, so can you test it(I have a feeling it might have something to do with my DOSBox Settings or my PC, so I don't want to test it, in case my computer is broken, which -- to be honest -- wouldn't surprise me much).
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 3, 2011, 07:54 PM
Violet CLM is offline
Reply With Quote
Tried it. Worked just fine.
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 3, 2011, 07:58 PM
Love & Thunder is offline
Reply With Quote
Huh. Strange. It works fine for me too... Try putting the box all the way at the bottom of the map. That's what I did. Oh, and the one I failed on used the Medivo Tileset and Sprites.
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 3, 2011, 08:16 PM
Violet CLM is offline
Reply With Quote
Go into Level Properties and try playing with the three numbers in "Level positioning," maybe? My best guess is that you're trying to run a LEVEL#.000 with resources from .002 or something, in which case changing the next world number to 2 instead of 0 should make the level run. In general, you should always use the blockset with the same extension as the level you're working on, to avoid problems like this. That said, I'm not actually sure if that's the problem based on reading your posts, since you're leaving out crucial information and you still aren't uploading the file that's giving you trouble even though it should be less than 5kb.
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 3, 2011, 08:39 PM
Love & Thunder is offline
Reply With Quote
Okay, I've tried all methods I could think of. One of them worked. It goes like this: Rename BLOCKS.002 and SPRITES.002 to BLOCKS.000 and SPRITES.000, then you make a level and save it as LEVEL0.000 and it'll run fine with Medivo stuff. I bumped into another bug, though. For some reason, if I spawn at the bottom of the map -- even if there's a block between me and the bottom of the map -- it bugs and instantly kills me and makes me fall through the floor. Any ideas?
EDIT: I just added some stairs that go really high -- they still act as if they aren't masked tiles. Is it mistaking the masks of Medivo for the ones on Diamondus or something?
__________________

Last edited by Love & Thunder; Oct 3, 2011 at 08:41 PM. Reason: See "EDIT:"
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 3, 2011, 08:57 PM
Violet CLM is offline
Reply With Quote
...well, if using BLOCKS.000 and SPRITES.000 and LEVEL#.000 all together works perfectly, then all is right with the world. Good to hear it. Don't try to crossbreed extensions unless you really know what you're doing -- if nothing else, there's little value to be gained in it. As for the bottom of the map, does it really matter? Put your start position a tile or two farther up and call it a day.

Masks: Two possibilities. Check your event list -- if they're Diamondus events, then yes, all your renaming got you in trouble and if you have an inherently Diamondus-style level using Medivo graphics. Otherwise, it's entirely possible that they are actually unmasked tiles. Tiles 44, 58, and 59, for instance, are unmasked (in LEVEL0.002, at least) despite looking like walls. This is because JJ1 has no real equivalent to layer 3 in JJ2. In order to go behind a tile, that tile must be unmasked and there must be a foreground event on it, and therefore many blocksets include maskless versions of some basic wall tiles to create secrets with. This is one of the advantages of using J1LES for the actual level layout (as opposed to setting up animations, events, etc.): it's much much easier to look at your level and check what is or is not masked.
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 4, 2011, 10:51 AM
Love & Thunder is offline
Reply With Quote
Okay, I've fixed the Mask issues. All I had to do was rename all .002 files to .000, then the first level was replaced with a custom Medivo Level, but I had to set the Level Positioning so the Next Planet Setting said 4(Guardian, I think), rather than 3(Medivo) or 2(Tubelectric). However, I'm still trying to get my head around how to have it so it thinks Medivo is Planet 1. Do you know how to fix this?
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 4, 2011, 01:11 PM
Violet CLM is offline
Reply With Quote
My best guess is that the world checksum is 208 instead of 210, because it was created after a vital renaming or something like that. Do you know how to check that with a hex editor? It's uncompressed, so it shouldn't be too hard to find if you do. Otherwise, try creating it as a New Level again and seeing if that changes things.
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 4, 2011, 01:25 PM
Love & Thunder is offline
Reply With Quote
Unfortunately, the closest things I have to a HEX Editor are Notepad and Notepad++. Also, I wouldn't even know how to use a HEX Editor.
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 4, 2011, 01:32 PM
Violet CLM is offline
Reply With Quote
Then your options on that front are a) uploading the level and letting someone else take a look at it for you or b) starting again and hoping for a better result. I don't know how J1E interacts with that checksum, so I can't be sure from afar if it's the problem or not.
__________________
Old Oct 4, 2011, 01:55 PM
Love & Thunder
This message has been deleted by Love & Thunder. Reason: I just tested my theory. It doesn't work.
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 4, 2011, 02:07 PM
Love & Thunder is offline
Reply With Quote
Unfortunately, I don't know anywhere to upload my level. I could upload it to Jazz2Online, but it would probably get taken down extremely fast due to the "Complete Stuff ONLY" rule .
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 4, 2011, 02:19 PM
Violet CLM is offline
Reply With Quote
http://lmgtfy.com/?q=file+uploading+site
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 4, 2011, 03:11 PM
Love & Thunder is offline
Reply With Quote
Okay, through some strange chance, I corrupted the level, so -- during the process of rebuilding it -- I found that I had to recreate my Editor Folder(I've got about 3 different copies of different Shareware Versions of Jazz, and 2 duplicates of the first one! XD), so I recreated it, and I found out I was doing something wrong, and I've fixed the Planet Order thing. I can't figure out what I was doing wrong, though. I guess we'll never know for sure. Anyway, I've got a new problem: How do I make Sucker Tubes? XD
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 4, 2011, 04:07 PM
Violet CLM is offline
Reply With Quote
I'm not going to give you the exact settings, because you can figure this out on your own. Whenever you want to make an event, there are two main resources that I know of. In this basic case, I would suggest the former; the latter is more in-depth, but still not complete, and it uses JCS'94 terminology for parameter names instead of J1E ones which can occasionally be confusing.
  • Open a level using the event that you want to replicate and see for yourself what its various parameters are. Since you're using a shareware version right now, you want Tubelectric. Find an instance of the event used in the level so you learn what its event ID is, then go to Tools-Events in the menu, go to that event ID, and check out how it works.
  • Jazz Graphics Pack, the predecessor to JJ1MOD, includes a list of Behavior and Modifier settings, with some information about how they interact with various parameters. Again, it's incomplete and occasionally flat out wrong, but I don't think we actually have a better list right now because I'm bad at writing things down.
Either way, you're going to end up having to do some experimenting. Change some numbers around, see how the effect changes, repeat until you get exactly what you want.
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 5, 2011, 01:24 PM
Love & Thunder is offline
Reply With Quote
I'll try that, and thanks for all the help you've given me for J1E!
__________________
Newspaz Newspaz's Avatar

JCF Member

Joined: Jan 2001

Posts: 2,678

Newspaz has disabled reputation

Oct 7, 2011, 02:14 PM
Newspaz is offline
Reply With Quote
Sorry I couldn't help you out with some support. I don't go here often anymore. But I see Violet has been his usual helpful self.

I would recommend that if you want to prevent having these issues again, it would be better to refrain from renaming any files in the future. I haven't tested many non-standard J1E cases so it's probably wisest to stick to the sprite and blocks files that have the same extension as the level.

I'm still piecing together a new version of J1E that should do a better job (and also incorporating multiple tile select, and much better memory use) but it's still going to be a while.
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 7, 2011, 04:02 PM
Love & Thunder is offline
Reply With Quote
It's okay. I completely understand that you're very busy with J1E. Good luck with that, by the way. Oh, and can you make Bosses more customisable? I was trying to get my head around them a while ago, no luck. Anyway, J1E is completely awesome, and good luck with the next version!

Oh, and -- before I forget -- is it possible to make custom J1E bosses? If so, how?
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 7, 2011, 04:19 PM
Violet CLM is offline
Reply With Quote
Absolutely. Create an event with the "Boss" modifier, and destroying it will end a level, and a boss health bar will appear on the screen whenever it's nearby. (You'll need to set up the Devan's head animation at the top of the bar, since non-guardian levels don't come with it. Do what I do, open up a guardian level, write down everything about the animation, and recreate it from scratch.) You can then use pretty much any behavior, just like any other event. It might not work so well with the behaviors that don't actually generate sprites, like some of the wind/tube stuff, but why would you want it to?

If you're thinking about the behaviors used by the actual bosses in JJ1, they tend not to be incredibly customizable. Pretty near all of them make reference to a certain row or column within the level, so it's hard to put them anywhere but the upper left corner, and some even reference hardcoded animation numbers. The Medivo guardian is actually pretty good... it does have to be above a certain row, but other than that you're allowed to meddle with a good number of its settings, including the space that it travels around in during its first phase. The Megairbase guardian is pretty similar to Float L/R but I guess it has that secondary rock-throwing attack if you can figure out how to get that to work. Most of the rest are just hard to work with.
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 7, 2011, 04:30 PM
Love & Thunder is offline
Reply With Quote
Thanks! Oh, and I don't have the full game of JJ1 just yet, so I can use the Medivo one, but not whatever boss you were talking about.

Oh, and is there a specific tool that can make tilesets for JJ1 with Animations and everything? It would really help.
__________________
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 7, 2011, 05:04 PM
Violet CLM is offline
Reply With Quote
I redirect you to these three posts. Use any graphics program capable of producing a paletted bitmap file, and turn it into a blocks file using J1E, JJ1MOD, Jazz Graphics Pack, or good old bmp2blox if you can find it. (Really, though, just use J1E.)

As for behaviors, I'm pretty sure the shareware includes behaviors used in later levels, it's just harder to know what they do since all you have to work from is DD's brief notes. But that's a minor point.
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 7, 2011, 07:23 PM
Love & Thunder is offline
Reply With Quote
Okay, thanks. I'll try that. I have another question, though: I want to make it so when you touch the Lava from Medivo, it damages you, how do I make a Hurt Event(The Lava Tiles aren't masked, either)? Oh, and -- before I forget -- is it possible to make text appear in levels? If so, then how?

EDIT: Also, how do you do Warps?
__________________

Last edited by Love & Thunder; Oct 7, 2011 at 08:18 PM.
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,978

Violet CLM has disabled reputation

Oct 7, 2011, 09:49 PM
Violet CLM is offline
Reply With Quote
Event 126 is always Hurt, just like 125 is always partial foreground ("Foreground2"), 124 is always full foreground, and 123 is always waterfall. If a tile with the hurt event is partially masked, touching that masked part will hurt the player; if it is totally unmasked, contact with any part of the tile will hurt the player. So just use the hurt event you already have in the level with the tiles you already have in the level, as you could have done by experimenting instead of asking.

JJ1 does not have text like in JJ2. You can include a picture of text in the tileset or as a sprite, but there is no fundamental support for it.

Warps: Look at that list I already linked you to. "Multi-purpose" and "Y-axis" are called "Variable #1" and "Variable #2" in J1E. (J1E has an issue that it displays all parameters as signed bytes, whether or not they are actually used that way by the chosen behavior/modifier (or ever), but type in 200 for x/y for a warp event and it'll be interpreted by JJ1 as 200 even though J1E renders it as a negative number.)
__________________
Love & Thunder Love & Thunder's Avatar

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Oct 7, 2011, 10:03 PM
Love & Thunder is offline
Reply With Quote
Thanks. I'll save that list in Notepad. I'll read it later. If I have any more questions, I'll edit this post.

EDIT: Okay, I have a question: What's J1E's version of "Magnitude" and "Y-Axis" and also, are there any other JCS94 variables that are different for J1E, and what are their J1E versions?
__________________

Last edited by Love & Thunder; Oct 9, 2011 at 03:44 PM. Reason: Question.
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump

All times are GMT -8. The time now is 06:08 AM.