Author Topic: Sprite Aseembly Tutorial  (Read 4213 times)

Vargose

  • Chrono Trigger Threads of Time
  • Guardian (+100)
  • *
  • Posts: 170
    • View Profile
Sprite Aseembly Tutorial
« on: August 14, 2006, 03:22:39 pm »
I am going to be working on a sprite assembly tutorial. This will be my work space. The sprite below will be the finished product of the tutorial.

[attachment deleted by admin]
« Last Edit: August 14, 2006, 03:26:36 pm by Vargose »

Vargose

  • Chrono Trigger Threads of Time
  • Guardian (+100)
  • *
  • Posts: 170
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #1 on: August 15, 2006, 09:49:26 am »
I got the first few steps done last night. When I am finished I will post a word version with pictures.

Read the basics here. http://www.chronocompendium.com/Forums/index.php?topic=2872.0

Sprite Assembly in Chrono Trigger
By Vargose

Needed Tools
1.   A Hex Editor of your choice. I used Translhextion.
2.   TileMolester
3.   The sprite you intend to import.
4.   Irfanview
5.   Paint and/or Microsoft Photo Editor
6.   The Chrono Trigger Offsets Guide
7.   An Unheadered rom of Chrono Trigger
8.   Lots of Patients

History
   Vehek researched and discovered the inner workings of sprite assembly. I learned what I know from his post on the Chrono Compendium Forums. This is for sprites of size type 0 (Chrono Tweaker), which include the playable characters.

Definitions
•   Tiles – 8 pixel by 8 pixel squares.
•   Tile Group – a group of four tiles used in sprite assembly
•   Frames – a single sprite, made up of 4 four tile groups in the case of size 0 sprites.
•   Animations – a sequence of frames.

GOAL: Successfully import a custom sprite into Chrono Trigger

STEP 1: Prepare the custom sprite for importing
•   You have 4 tile groups to work with. That’s mean you will have to size the sprite to fit into any configuration of four 16 by 16 pixel squares.
•   For this tutorial I have chosen to use a sprite from Final Fantasy Tactics, specifically Cloud Strife. I also made a 16 by 16 sprite of the top of his buster sword for demonstration purposes.
•   The original sprite itself was 37 pixels tall. The CT playable characters are 32 pixels tall. 32 is 86% of 37, so I shrank the sprite by 86% using the stretch/skew command in Paint.
•   CT playable characters have 12 colors one of which is transparent. Make sure the background color is not used in the sprite itself, because it will be replaced by the transparent color later (green screen trick). Open the sprite in Irfanview and decrease the color depth to 12 using the decrease color depth tool in the image menu.


STEP 2: Changing the color Palette
•   Open the sprite in Irfanview. Click edit palette in the palette submenu of the image menu. Click on each color (except your green screen transparency color) and record the RGB values (should be 11 colors). Divide each number by 8 to get the corresponding Chrono Trigger RGB value, or in SNESPal enter each RGB value into the search boxes with the auto-convert check box checked, and then uncheck it to get the corresponding values. 
•   Open the rom in SNESPal and edit the palette of the sprite you intend to replace. For this tutorial we will replace Crono. The offset to the character palettes, according to the Chrono Trigger offsets guide, is 240000. The first palette is Crono’s. Each palette contains 11 colors that last of which is transparent. Input each of the RGB values and save.
•   Now Open the rom in Zsnes, and when Crono appears on screen with his new palette make a save state.



[attachment deleted by admin]
« Last Edit: September 07, 2006, 10:41:53 am by Vargose »

Chrono'99

  • Moderator
  • God of War (+3000)
  • *
  • Posts: 3605
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #2 on: August 15, 2006, 12:43:32 pm »
May I give a small tips? In SNESPal there's a button to convert RGB values to CT values (and vice versa), it's quicker than using the calculator.

Vargose

  • Chrono Trigger Threads of Time
  • Guardian (+100)
  • *
  • Posts: 170
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #3 on: August 15, 2006, 01:34:58 pm »
Thanks and yes feel free to give tips. I don't claim to know all.

justin3009

  • Fan Project Leader
  • God of War (+3000)
  • *
  • Posts: 3296
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #4 on: August 21, 2006, 11:55:52 am »
I'm guessing this tutorial is partially complete.

Vargose

  • Chrono Trigger Threads of Time
  • Guardian (+100)
  • *
  • Posts: 170
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #5 on: August 21, 2006, 12:08:27 pm »
I'm guessing this tutorial is partially complete.

I got the first few steps done last night. When I am finished I will post a word version with pictures.

Yes, This tutorial is only partially complete. I will add STEP 3 and 4, which is importing the graphics, and STEP 5 and 6 are the actual sprite assembly. I will also include any tips and tricks I can think of at the end.
« Last Edit: September 07, 2006, 10:20:18 am by Vargose »

Vargose

  • Chrono Trigger Threads of Time
  • Guardian (+100)
  • *
  • Posts: 170
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #6 on: September 07, 2006, 10:06:01 am »
STEP 3: Creating the tile groups
•   Now its time to create the tile groups. As I said before each tile group is made up of four tiles, which makes a 16 by 16 square. You have four of these tile groups to work with, which can be coordinated and positioned anyway you see fit.
•   For now just cut the sprite into four 16 by 16 squares. Just select the 16 by 16 area copy and paste it into paint and save each tile group into separate files. I enlarged a picture to show what I mean.

STEP 4: Importing the graphics
•   Open the rom in Tile Molester.
•   Use the Navigate Go To menu command to go to the location of Crono’s graphics which is 1272C0.
•   Use the Palette Import From menu command to import the palette from the save state you made earlier with the new palette. Scroll through the palettes at the bottom until you find the right one.
•   Now Use the Edit Paste From command to paste in each of the tile groups you saved to files over Crono’s graphics. Do not however paste over the empty tile, which is the first tile, because it is needed. Use the dropper to select the transparent color and replace your green screen color. Here is an enlarged picture of what I mean.
•   You’ll notice some empty tiles. You only need one empty tile, so at this time rearrange the 8 by 8 tiles to conserve space.

STEPS 5 and 6 still to come!


[attachment deleted by admin]
« Last Edit: September 07, 2006, 10:54:33 am by Vargose »

Vargose

  • Chrono Trigger Threads of Time
  • Guardian (+100)
  • *
  • Posts: 170
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #7 on: February 21, 2007, 12:51:39 pm »
I wanted to give you guys an update.

The spriters are doing awesome work with Glenn.

I, on the other hand, have not been able to make time to add the sprites into the game. Sprite assembly is time consuming and tedious at best. As such, I do not recommend depending on only myself to do Glenn's sprite assembly. Having said that I am also aware that I am one of only a few that really know how to do it. This requires that I actually finish the sprite assembly tutorial. So my next coarse of action will be to finish the sprite assembly tutorial so others can learn and so we can actually see Glenn get finished.

justin3009

  • Fan Project Leader
  • God of War (+3000)
  • *
  • Posts: 3296
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #8 on: February 21, 2007, 04:49:11 pm »
I was actually going to ask you about that so we could help input the sprites into the game without you overstressing yourself.

Zakyrus

  • Entity
  • Magical Dreamer (+1250)
  • *
  • Posts: 1363
  • "Bouncy, bouncy, bouncy... --!!"
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #9 on: February 22, 2007, 07:20:51 pm »
 Sweet. This is what I have been looking for... :)

Looks promising, I'll go through it when I get some time.

Vargose

  • Chrono Trigger Threads of Time
  • Guardian (+100)
  • *
  • Posts: 170
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #10 on: February 27, 2007, 02:53:06 am »
I am regretfully resigning from the Crimson Echoes Team and the Rom Hacking scene. Please understand that this is a matter of morality and conscience for me. To continue in the project I would have to continue to possess an illegal copy of Chrono Trigger, and participate in the creation of a derivative work. Both of which I can no longer morally justify.

That means I am leaving Glenn and the Sprite assembly Tutorial incomplete, but I am confident that others can learn Sprite Assembly by studying Vehek's original findings and my own work on Glenn.

And ChickenLump's Sprite Assembly Application will do wonders for those learning.
http://www.chronocompendium.com/Forums/index.php?topic=3025.msg61116#msg61116

Here is my most up to date work
http://www.chronocompendium.com/Forums/index.php?topic=3025.msg59092#msg59092
http://www.chronocompendium.com/Forums/index.php?topic=3025.msg59167#msg59167
http://www.chronocompendium.com/Forums/index.php?topic=3025.msg58661#msg58661

Those seeking to learn and follow in my steps, read these threads
http://www.chronocompendium.com/Forums/index.php?topic=2872.0
http://www.chronocompendium.com/Forums/index.php?topic=3236.0
http://www.chronocompendium.com/Forums/index.php?topic=3025.0

I fully enjoyed working with all of you. Thank you and good luck.


Vehek

  • Errare Explorer (+1500)
  • *
  • Posts: 1761
    • View Profile
Re: Sprite Aseembly Tutorial
« Reply #11 on: May 19, 2007, 02:20:23 am »
I'm crappy with explanations, but hopefully this will help a little bit.