How to Switch Dario with a PC
Thanks to Grobycftw
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 example 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!
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)
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 126.96.36.199, strawberry-perl-188.8.131.52-64bit.msi) you can either download it on their main website or from my google drive link (for Windows/I work with Windows):
(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
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)
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
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
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:
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
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 :
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
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
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)
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
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
(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