Chrono Compendium

Kajar Laboratories - Fan Works and Submissions => Chrono Cross Modification => Topic started by: Grobycftw on January 02, 2021, 02:48:21 pm

Title: Tutorial - How to Make Dario a Playable Charater (In Progress)
Post by: Grobycftw on January 02, 2021, 02:48:21 pm
Hey guys, happy new year!
In this post I will provide the necessary tools and explain how to switch Dario with an existing Character, I think you can switch Dario with any Playable Character, (I haven't tested all of them, but so far it works for every Char I tested). This post will be updated upon request or if I manage a better way to explain it :)

In this Example I will switch Dario with Turnip. (like we intend to do in our hack!)

There are many things to change in order to have a fully workable PC :
1 ) Overworld Texture/Model
2 ) Battle Texture/Model/Weapons (if)/Battle Animation (.DRP)
3 ) In Game Menu Status Screen -> Same as Battle Texture/Model
4 ) In Game Menu Status Screen Description
5 ) Menu Big Rectangle Image
6 ) End of Battle Big Rectangle Image (turns out is it not the same, either this one or the Rename Character Screen Rectangle Image, I know one of them is smaller/less detailed)
7 ) Speaking Portrait Image
8 ) Default Name
9 ) Default Innate Color (If needed)
I think that's about it but I might forget something (remember the post is "In Progress"  :D )

(Concerning the In Game Menu Status Screen Models, The Battle Model is much bigger than in the Status Screen, for exemple I'll use Serge. Serge's Battle Model have 22 Different Animation while his Status Screen Model only have 4 (the 4 different you can see in the menu are :
1) Standing Still
2) Running to Enemy
3) Waiting on Attack
4) I believe it is the "weaken/Low HP" animation (but I am still working on it, atm I'm making Dario Model for the Status Screen (4 Anim instead of hmm I think it is also 22 Anim for Dario Battle)

So first thing first,
I will start with switching the Battle Texture/Model/Weapons/Battle Animation
In order to easily switch a PC, I use the ISO(or Img) Format 2048 (If you are not familiar with Format, see this page for more Info!
https://www.chronocompendium.com/Term/Sector.html

Basically there are 2 type of Format :
1) 2048  -> this format can't be read by most Emulator (so I only work with it to do the changes I need, then convert it to 2352.)

2) 2352 -> this format can be read by most Emulator (if not all of them?)

It defines the size of every sector.


So how can I get an ISO format 2048 to work with ? :
You need to use the famous PurpleCat Tools, here's a link to my PurpleCat tool , if I remember well there was an issue with dumping CD2 so I had to edit one of the file (maybe I'm wrong, but this version works 100% so it's fine)

https://drive.google.com/file/d/1QBY3n2BSiyfbolTJ2ncDHGaZaf9c7ZFC/view?usp=sharing

In order to make PurpleCat work, you need to have Perl (Perl (command line))
I think there are no tutorial/explanation on how to make Perl work on ChronoCompendium, so I'll explain in detail what needs to be done before being able to Switch any Character!

To install Perl, download and install this version (Perl 5.16.3.1)
(strawberry-perl-5.16.3.1-64bit.msi) you can either download it on their main website or from my google drive link (for Windows/I work with Windows) :

https://drive.google.com/file/d/129Ez8noRIWF9r4U9p5QX1INhb_pyhzNf/view?usp=sharing

(I am thinking of making a video tutorial for Perl Installation as it can get a bit tricky for those unfamiliar with CMD.exe/command Prompt, but I'll make it as simple as possible in this post!)

Once you have downloaded Perl 5.16 -> Installed it, you should be able to launch it from the windows start menu (press windows button , type : Perl
you should see :  Perl (command line)

now you have the black screen windows, you should see  the line
C:\Users\Username\Documents>
now type     perl -MCPAN -e "shell"
it will prompt you to the CPAN configuration, once it is done
Type     install List::MoreUtils
it will install the utilities needed to make PurpleCat works! (it take a couple of minutes, let it do his installation)

Once it is done you can start using PurpleCat! So in the PurpleCat Folder you should find
builder.bat (Use to build an ISO format 2048 from a Dumped ISO -> Using dump.bat)
and
dump.bat (Use to dump a regular ChronoCross Iso/Img)

(Whenever you are dumping/building CD1 or CD2 , make sure you Edit your Dump.bat and Builder.bat (can be edited in Notepad/Notepad++) so it correspond to the CD# you're working with. By default it is set for the CD1

Default dump.bat for CD1
 perl dumper.pl -iso=Chrono_Cross_CD1.img -tablefile=out_addrs.csv

if you want it to work for CD2 , put this line instead
 perl dumper.pl -iso=Chrono_Cross_CD2.img -tablefile=out_addrs_2.csv

Chrono_Cross_CD1.img      should be the name of your Original ChronoCross ISO
(I don't know If I can/have the right to provide a link for the Original CC Iso I am working with, I will ask ChronoCompendium if I can!)

Default builder.bat for CD1
 perl builder.pl -tablefile=out_addrs.csv

if you want it to work for CD2 , put this line instead
 perl builder.pl -tablefile=out_addrs_2.csv -cd2


So now that your builder.bat, dump.bat and Perl are ready, and you have an Original ISO/IMG of chronocross in your PurpleCat folder,   open Perl command
navigate to the PurpleCat folder in Perl, (let's say your PurpleCat folder is on your Desktop)
Type :     cd C:\Users\Username\Desktop\PurpleCat
you should see the new line

C:\Users\Username\Desktop\PurpleCat_
once you are here, type       dump.bat
(make sure you have your ISO named the same as in the dump.bat line! (mine is Chrono_Cross_CD1.img)

it will dump the CD1 into a folder name   "files" , inside it are all the .out files seen in the Modification Main Page
https://www.chronocompendium.com/Term/Modification.html
"File number"
I won't go into details as it is not what we are looking for (Switching Dario with Turnip!)
so once you have your "files" folder, go back in Perl command , and Type     builder.bat
now this will build a new iso in the PurpleCat Folder (always named cd1.iso , even if you build the CD2 , it will name it cd1.iso)

Now this cd1.iso is in Format 2048! Which We need to switch Dario and Turnip easily!
(I know this is a huge post , but every details are important! I couldn't just assumed everyone knows how to get a 2048 format so I'm making this as much detailed as possible, to avoid any confusion!, Let me know if there are things you aren't sure/understand so far!)

Now you need and Hex Editor (I use HxD) you can download it on their main website or from my link :
https://drive.google.com/file/d/1ijW7uIonQ_tgt-QMSskxxL6v3t6ikHgb/view?usp=sharing

super friendly to use, takes no place, works like a charm.
so once you have opened HxD  (see picture #1 at bottom of the post)
you can just drag and drop your "cd1.iso" in it  (see picture #2 at bottom of the post)

Now we are getting close to our goal!
If you look in the upper-left part in HxD you will see the   Offset (h)  this is the corresponding line , for exemple : Turnip Texture starts at Offset  1186E800 (press CTRL+G in HxD to get the "Go to Offset" tab -> Type in   1186E800 then enter, it will put you at the Offset)

You should see at this line 
Quote
02 00 00 00 10 00 00 00 3C 82 00 00 68 94 00 00

this is the first line of Turnip Texture.
Turnip Texture starts at 1186E800 and finish at 11878000 (9800 Long)
1186E800 + 9800 = 11878000

Oh and before doing that you need Dario Battle Texture/Model/Anim(.DRP)
here's a link to them, I have edited Dario original Battle Texture/Model in order to have it work perfectly use these :

https://drive.google.com/file/d/1nBdZei1TrZpYKR6TYm6MP8QI18s5e73A/view?usp=sharing

Ok so , to switch Turnip's Texture
1) Drag and drop Dario_Swordless.atim in HxD and press CTRL+A it should look like (See picture #3) , at the mid-bottom of HxD you can see the selected Length (Dario Texture Length is 8230 long)

2) go to line 1186E810  (yes 1186E810 , you need to leave the first line of the Texture intact. I will go in detail later on that, but for now , go to line 1186E810 then press  CTRL+E  (open the Select Block tab) in the tab you will see
Start-Offset:
End-Offset:
Length:

in length put   8230  , then press Enter, it will select 8230 from the beginning of Turnip Texture
Now , Copy and Paste Dario_Swordless.atim (8230 long) in the Offset selected in cd1.iso)
you can just do  CTRL+C  (Dario_Swordless.atim) -> CTRL+V (cd1.iso)
or right click then copy (Dario_Swordless.atim) -> right click then paste (cd1.iso)
(That's why I want to make a Tutorial Video  :P )

Okay once you have copied the data, simply Save (CTRL+S) the cd1.iso, and go to line 11878000  this is Turnip's Model first line
Quote
06 00 00 00 20 00 00 00 C0 64 00 00 80 67 00 00

Now do the same as the previous step for the Texture, but copy
Dario_Battle_Model_With_Weapon.out (F800 long)
in cd1.iso
from line 11878000 to 118877FF (F800 long)

this will replace Turnip's Model for Dario!

and you have to do it one more time for Dario_DRP (F000 long)
go to line  12BFA800   Turnip's Battle Animation
starts with
Quote
64 72 70 00 00 00 00 00 00 03 00 00 3C 00 00 00
same thing, copy past Dario_DRP in cd1.iso !

one more thing need to be done for Dario's Model to work,
Go to Offset 0000F338   -> you should see these four values  F0 30 02 A7
change the A7 for 84  , if you don't do this, the game will crash at the beginning of the battle!!
Doing this "enables" Dario model, I have no Idea why/how it works really, I know the first three bytes are the sector pointer (F03002 is readed as 0230F0 which is the sector at which Turnip Model is located, I have no idea what the fourth byte does, but I know that if you don't put 84 It will not work! (84 is from Serge Model, he has 84 and Dario works in it.. :o ) or 5A (Guile Model uses 5A and I think it worked for Dario too, but yeah we don't need further info on this hehe)


Alright, we are getting there everyone  :lol:  one more steps left.
Our last step is to convert our Iso (2048) back in Iso (2352)

there is one program I am familiar with for this, it's IsoBuster (I use version 4.6, Here's a link for it

https://drive.google.com/file/d/1gj5_NyKMd9tz-3sidVDs2q5NvCv-R1pN/view?usp=sharing

(Version 4.3 also works I think, there are probably other similar tools that would work but I only know this one)

(When you open IsoBuster, it ask for Registration Email, just hit cancel/remind me later,
another window pop too, just say no.)

once it is open, you can drag and drop your cd1.iso you should have (See Picture #4)
Now right click Session 1 -> Extract Session 1 <Content> -> Extract RAW data (2352 bytes/block) (*iso)     (choose the Last option)
it will ask where to create a new folder -> named "Session 1", inside it will be the new Iso named "Track 01.iso"

There you go you finally have you New Iso in format 2352 readable for most emulator.
And if you take turnip in your party and go in a battle, it will be Dario!  8)

I will definitely make a video tutorial for this, as this is only the first part, It is the most "complicated" but you pretty much have to do this for the other changes, like Overworld Texture/Model, In Game Menu Status Screen Texture/Model.

I will be making full Tutorial on this matter, for now let me know if this has been clear enough, if there are question/detail I should address, I am all ear!

*** Oh and if anyone is familiar on how to make a patch, just like the Magus Unmasked patch, it would be fantastic, it'll be much friendlier to use. I have no idea where to start to do such thing, so feel free if you want to make one  :)
Title: Re: Tutorial - How to Make Dario a Playable Charater (In Progress)
Post by: kolt54321 on January 10, 2021, 11:24:44 pm
Wow!! I've been away for too long, but this seems very helpful - and I'm so happy you've made this much progress down the road! Need to really brush up on customizing text dialogue and events to get used to beginner mods, but this is fantastic.
Title: Re: Tutorial - How to Make Dario a Playable Charater (In Progress)
Post by: dimitri33 on November 05, 2021, 01:52:45 am
Amazing it work ty you so much Grobycftw. Now part 2 i hope when you are  ready upload it ty
Title: Re: Tutorial - How to Make Dario a Playable Charater (In Progress)
Post by: PowerPanda on December 24, 2021, 11:51:24 pm
I found this on Youtube the other day, and decided to finally make a Chrono Compendium account. (I've been coming to this site for years.) I recently released my hack of Final Fantasy VI called Divergent Paths, which adds a 15th and 16th playable character (Leo being one of them) so this kind of thing is right up my alley.

This work is excellent, and I can help make a patch for this that includes the recruitment event, if you'd like to work together. The PPF patch format would be the best way to go.

Just a question: instead of making both Dario and Slash playable, have you considered just giving Slash's unique techs to Dario instead? So Dario would have DashSlash as his L3 and WindSlash as his L5. His L7 is already unique. IMO this would make Dario a fully-fledged party member, with a Triple Tech to boot.