• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 16, 2024, 05:12:43 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Satoh

1
Spriting / Re: Lion's Bizarre Spriting Adventure
October 02, 2017, 06:30:34 pm
I like the third one, but I wonder how it will look with other palettes.
The skirt looks greatly improved.
I like the stripe because it adds some visual interest, but I'm not sure about the stripe under breast area. It looks like it might be conflicting with the shading some. But I like the revision.
2
Help! / Re: Never used FFTPatcher Before - Questions
September 12, 2017, 07:18:19 pm
Yes
Probably
Usually
Exactly as much as it affects players
And yes

When it comes to the patcher its all pretty much what you see is what you get. There's a link on the main site to tutorials, and a subforum filled with them as well, but really experimentation is what's going to give you the best info, when it comes to the patcher.

So long as you don't simply go through and start deleting everything you see, you won't really damage the game too badly by changing something and saving a patch.

You will of course want a backup of your vanilla disc image, since you should always patch a fresh copy, there's no undo function here.

Stats for a job will affect basically all enemies and player units that use that job.

In the ENTD tab you can add Cloud to a battle and check the 'join after battle'. Be aware that there are some sprite limitations that will cause non-crashing visual glitches if you use too many sprites in one battle. (that's why party size is limited to 5 player units in the main game, and why there are few enemy types in battles with guest characters) I believe the limit for sprites is 9, and 5 of that is reserved for the party.

Be aware that there are multiple copies of some jobs, as some special characters have more skills than normal, a prime example is the Story characters who start as squires. Ramza has three different sets of squire job, since he can only learn certain abilities during certain chapters.

I'd suggest browsing the help section to see what others have asked before, as you may find something interesting you want to try.
this thread is your friend http://ffhacktics.com/smf/index.php?topic=9204.0

and I particularly like this tutorial as a basic crash course for getting started on some nifty but simple hacks you can see immediately when starting the game.
http://ffhacktics.com/smf/index.php?topic=9303.0
3
Spriting / Re: Lion's Bizarre Spriting Adventure
September 10, 2017, 10:15:35 pm
I think an orb might not look so good since it wouldn't be animatable, so it would likely look more like a circle than a 'glow'

And realizing my description probably wasn't very clear, I was thinking something like so.. with the light shade having a significant presence on the head.

Working in such a small scale is always a challenge for getting detail or implication of detail across.

EDIT: maybe a scaled down fairy would look good for the dead pose? Like it was using magic to appear bigger or something?
Its a curious question. Chocobos turn to feathers, bobcats turn to skulls.. what does a fairy turn into when it dies...?

Maybe a leaf? or some kind of bellflower blossom?

EDIT2:
Something like this as a general idea
4
Spriting / Re: Lion's Bizarre Spriting Adventure
September 10, 2017, 09:09:52 pm
The hair looks a bit pillowy. My suggestion would be to expand the lightest orange-tan color out a bit to fill more area, and to be less afraid of having a dark color touch a light one without a medium color between. The shiny highlight spot is probably fine how it is.
The gown colors don't seem quite as pillowy/gradient shaded, and I think it may be due to higher contrast between the lights and darks, so you might try just brightening up the brights and darkening the darks in the hair.

To clarify, its not really a bad looking sprite by any means, but it doesn't quite fit the same shading style as FFT classic sprites, which tend to favor wide areas of flat color that transition somewhat sharply into shaded regions, rather than transitioning smoothly.

But that's really the only thing that jumps out at me.
5
Help! / Re: Passive Weapon Leveling
September 10, 2017, 12:40:02 am
Quote from: Elric on September 09, 2017, 06:04:54 pm
That's why I mentioned abilities


*rubs eyes*...So you did. In the very thing I quoted even... Mea culpa.

...Back to looking at potential solutions, I could see something working if you used the event instruction upgrade hack.
You would need a few copies of excalibur, and you'd need to know what ENTD ID Arthur has.
You would then load Arthur's stats, look at his left and right hands' equips, and replace either of them if it is Excalibur, and you would probably need to remove the old one from the player inventory and replace it with the new one.

All of the functions needed for that appear to be readily available in the Event Instruction Upgrade hack.
Personally this seems like the simplest, lowest effort way to achieve a leveled Excalibur.
Event editing seems like it would already be something you'd need to do for this idea anyway.
6
Help! / Re: Passive Weapon Leveling
September 09, 2017, 05:49:20 pm
Quote from: Elric on September 09, 2017, 02:38:11 pm
Ramza is a special case, the main reason he works that way is to make his sprite change and give him a couple more abilities, AFAIK his stats don't actually change in regards to this.

True it is mainly due to his sprites, but his skill sets also change according to chapter. The reason I mentioned it was that in Chapter 2 he can learn a new skill he could not learn in chapter 1, in his Guts skillset: Cheer Up. And once again in chapter 4 he gains 2 extra Guts skills: Scream and Ultima.
At least assuming the skill sets in the patcher are accurate. I assume they are since I haven't modified anything.

Quote from: PigonMuffin123 on September 09, 2017, 01:30:49 pm

I see something in the ASM that is "random unit gear based on progression" in ASM. Is that what you are referring to?


No, random unit gear based on progression is something else. I don't know what exactly it does, so it may or may not be worth looking into, but I suspect it's more directly related to soldiering office recruits.

I was simply saying that 'with enough work you could probably create some ASM hack that would still fit into the game's existing code space, that changed the sword over time.

And secondly, you could modify a damage formula (still technically an ASM hack, but a different kind than I meant before) and give Excalibur that new formula instead of the standard weapon formula. You would likely have to sacrifice an existing formula, as I understand it.

Any way you look at it it seems like you'd need an ASM hack somewhere, but Lionheart's suggestion of having three copies of Excalibur seems the easiest to achieve, since then all you'd need to do is figure out how to swap the character's weapon at the beginning of the chapter.
7
Help! / Re: Passive Weapon Leveling
September 09, 2017, 05:37:21 am
My gut tells me you need multiple copies of the sword with different strengths and you need to manually replace it somehow at varying points in the story.
The reason I say this is because its how Ramza works. They controlled how strong he could be at any given point in time by having multiple copies of him and simply replacing the old Ramza with a new one each chapter.

I mean, in theory you could alter the stats of the weapon somehow with ASM hacks, but it would likely get pretty hairy pretty quick, as you'd have write a routine and link it to an event condition or map instruction, and in that routine you'd have to locate the Excalibur stats (assuming they're even in memory and not just read direct from disc each time) and alter them somehow...

Another option might be possible by formula hacking and making Arthur the only one who can equip it. The skill formula would probably need to be ASM hacked still, and would likely need to be something like Excalibur PWR = (Excalibur Base PWR / 50) * Character's Level
If you could manage that it would give the sword its regular 21 Pwr at level 50, and that would continue to increase damage by one point roughly every 3 levels or so.

But I haven't formula hacked at all so I can't tell you where to start looking for that.

8
That's certainly something I'd like it to do in the future, and I'm continually trying to think through the efficient process of linking all the instructions together intelligently, such that one instruction knows what the previous instruction just did, for linking multiple conditions...

But right now its simply a dumb text parser based on an admittedly messy dictionary setup.
A prototype at best, but one that was more or less usable for smaller things.

I did notice something I forgot to check for in the current r0 release... I didn't check that information typed into those comboboxes at the bottom were proper numbers... so... be responsible and don't just start typing sentences in there for now?

I'm currently working on a more intelligent set of classes to (hopefully) be able to do something more meaningful with the actual WLDCORE...
That said, I can't guarantee I'll succeed, or that I'll be able to show that off anytime soon if I do.
It'll take a while, and the way the WLDCORE headers work is... not what I would consider optimal.
The instruction header is in two stages, which you, Xifanie, are probably aware of...
The first stage is 44 shorts, one for each location in the game, each leading to a point in the second stage of the header. That second stage is a collection of more offsets, each leading to the start of a full map instruction... the list appears to be terminated with a 0x0000 null short...
However, as there is no point in the header structure that actually lists how long any of these lists or instructions are, its a but of a mess trying to confirm those lengths.

If I parse that header iteratively, I'd have to continually be checking that each short I read isn't overlapping somewhere else, just to determine if I've actually reached the end or not...

Which in non-programming/reverse engineering terms, is a pain in the rear.

tl;dr version:
I'm working on it =p

EDIT:
Well I have it all read into a class structure now at least... coded myself into a corner as to how to make it alterable though...
9
Ok, so, all this really does is convert a set of world map instructions in hexadecimal to a readable format.
It has some error checking, but it's probably not the best.

Ideally you would only input properly formatted instructions in and it will convert it to something you can read a little easier.
It also has an instruction formatter, which will guide you through what information is needed for an instruction, and generate the instruction when it has all the info it needs.

It will NOT read the wldcore.bin instruction header or calculate space and offsets for you, you're still better off using a spreadsheet for that for now...
but now you can at least check your work on what you're adding to the spreadsheet to ensure that it is good code.

This is currently a very young version of this project, and time permitting, I may expand and update it. Until then, its one slightly smaller hassle than you had before, if you do story mods.


I'm sure I haven't thought of EVERY possible user error or flawed code entry, but, as far as I've tested, I've worked out all the breakages from proper code entry. Please let me know if you get some huge error.

Everything is hard coded for now, but I may add a config file for customized text output later.
Coded for .NET 3.5, hopefully by now you all have that... unlike 4.6.7 which I had to install a few days ago and was a pain.

EDIT: Just making sure I uploaded the correct release.
10
Its a bit like trying to determine if you have cancer by asking someone on the internet about it.

You haven't provided enough information about what you did, and haven't provided the files after you altered them to diagnose.

And it may be that what you're asking is fundamentally the wrong question. It may not be possible to alter the 'hand' separate from the 'summon' in particular if they're the same file and graphics.

I don't mean any disrespect or rudeness, but the reason no one's given you an entire answer is very likely because you haven't 'asked an entire question' yet.

And I see some have already sort of said that.

I don't foresee anything pleasant happening by continually bumping a thread that's already at a loss for any way to help.

Try asking clearly, thoroughly, and exhaustively, exactly what you need, where you've looked, the tutorials you followed...

Assume you were writing a tutorial, to show other people how to arrive at the problem you have. If you do that, they should be able to at least get to where you are and maybe tell you something you didn't know, or point out a step you missed or something...

As for the hand itself... I'm not exactly sure what you're referring to, but I'm going to go out on a limb here and guess maybe you mean this


If so, open up the game image in Shishi, and on the main tab scroll allllllll the way to the last entry in the dropdown box, that should say TRAP1.
Then just note the palettes it uses, and follow whatever steps you need to edit the image and preserve the palette information in the file when you save it.

If that step fails, you could then ask about that specifically, and maybe provide a file and explain what you did to edit the file...etc as I said before.

As for the original TRAP file. It appears to be contained in the same file as WEP.SPR... as in WEP.SPR contains TRAP as well as other things.
11
My first event went fairly smoothly and I had fewer issues than I expected while writing it.
Now I need to follow that up with another event, which will end by adding a new party member.

I've decided I'm willing to sacrifice the Beowulf/Reis sequence of events to achieve this goal, so those are the event and ENTD IDs I will be using.

I know I'll likely need to modify the ATTACK.OUT, ENTD, and EVT info for this, as I understand they are all closely connected to each other.

My goal is to lead from Chapter 2 World Map, to a conversation event, and the unit joins thereafter, leading back to the World Map.

Things I know should be easy

  • Scripting up the conversation and animations, I feel like I have a decent enough grasp on that part, its like any other scripting.

  • The Unit joining the party. That should just be a checkbox in the ENTD as I understand it.



What I'm less clear on is how to remove the existing Beowulf/Reis triggers (that is, what starts them being processed) and replace them with what I want.
I spent most of the day trying to find some thread about it or some variable on the wiki, but I didn't turn up anything that gave me the last piece of the puzzle.

I don't know if I'm looking for something in ATTACK.OUT, or a spreadsheet, or something in the EVT...

I have the Rumors and Game Progression Workbook spreadsheets, by Raven and Elric.
I have a strong suspicion based on what I do know that the answer is going to involve one of those...
Could someone point me in the right direction?

EDIT:
Ok, I see some things that appear to line up with the World Map 1.00 Editor, on this page http://ffhacktics.com/wiki/Event_Conditions
and it appears that for Lenalia Plateau, it checks variable [Storyline Progression] equal to value 0x000B, and if true, sends the player to event 0x3D, which is Miluda2(setup)... and then it does another 0x0001 instruction on... nothing?
01006E000B0019003D000100

So, assuming I have that right, the instruction I need, to send me to the event I plan to use... I need something like... 03006E000F001900DD010100
if story progression > 0x0F (ch.2 start), load event 0x01DD (477, setup event), and I still don't know what the last 0100 does.
but I'd also need something to test if I don't already have this character. I don't see an instruction here that can do bitmasking so I'd assume I couldn't just check that in 0x00A9 bit 2 (Rescued Reis)...

Edit2:
Resolved for now. I'll reopen this if I have more questions related to it in the future.
12
Thank you very much for the information once again. I'll mark this resolved and start a thread in the appropriate place if I have more questions along this line of thought.

I said BlueRemoveUnit because I had forgotten there were several other commands like RemoveUnit and Erase that all took units off the screen.
13
I see there's unused(seemingly) space at the end (491-499) in EasyVent. I don't see an instruction to specifically note which events loads next, so I'm assuming events have to be in the correct sequential order for one to lead after another, unless I've missed something.

EDIT: My current goal is to interrupt an event and add a short moment of a character presumed dead, standing up and limping away, before continuing the game. I want it to happen after the screen blackens at the end of one scene, but before returning to the map. As I understand it, the screen only blackens at the end of an event... at least as far as I can tell... and the next event needs to begin with a specific instruction...

although I suppose I could add a pair of 'ColorScreen' commands, and 'BlueRemoveUnit' all of the characters I don't need between them...
I'm not sure, maybe should I make a separate thread about that?

(I apologize if I'm skipping around too much or asking too many simple questions. There's a lot of information to look through and I've seen some evidence that some of it may be obsolete. Like some of the sprite replacing tutorial threads seem to have some old stuff that isn't necessary anymore.)
14
I'm referring to this small section of unlabeled jobs. Some other tabs have them too, and the stats listed here all seem to be the same as those listed at the 00 index, which suggests to me there is no data there. However, that may just as likely be some overlap like you suggested items have. I simply don't know what it is.



As for everything else, thank you. Most helpful.
15
Ok, limited title space, lets rephrase.
First off, event hacking. I have EasyVent Editor Super Perfect 2.0, and I've looked at a few events, and at the command documentation some...
My biggest question here is, how do I know if an event is going to fit in the event file,

and if I need more space, how can I find it?

This is mainly a concern when it comes to dialogue. A long long time ago in a galaxy far far away, at least from where it is now, I tried a simple text replacement hack, and wound up corrupting the game because I used too many string characters and overwrote some other part of the game. At least I assume that's what happened... I can't be sure it wasn't a program error, but I assume I did it.


And similarly, for ASM hacking, how do I know what's free space I can jump into and back out of to add a subroutine in the middle of some existing assembly?
I'm assuming I can pick any place here http://ffhacktics.com/wiki/CD_Index listed as 'free space' but I don't know if I have to address my code cave within the same file, or if I can pick any random place on the disc, and that's a valid place to start adding new things.

EDIT: another note about free space,
I notice in the patcher that there are a number of empty spaces between job/skill set/etc indices... are these actually free space that I could put things, or, as I suspect, are they space reserved for something else/overlapping the other entries in the list already?
16
Well now. I'm glad I asked. That's some surprising responses.
And thank you for your assistance.
17
(I apologize for changing the title if that's a problem, but I realized I have more somewhat related questions, that don't seem like they'd warrant a completely different thread)
Informative and concise, thank you.

I suppose in the short term I'll need to create new unique classes.

Spritesets aren't linked to jobs directly, correct?
What I don't understand is the method that allows one spriteset to change jobs, and use that job's sprites.
My instinct is that its hardcoded to the 0x80 and 0x81 spritesets (generic male and female respectively), but I'm not certain on that.

Celia and Lede seem to have a pair of unused spritesets, which strikes me as a bit odd.
In theory I could use those spritesets, change the actual image to that of KnightF with a custom portrait, and change Alicia and Lavian's spriteset index, but not their job, to those spritesets, and that would give them unique portraits, right?
But it would also mean they're permanently locked into looking like a knight, yes? (I can attempt all of this of course, but I'm just checking that I'm thinking in the right direction)

More direct version of that question: I don't have to give a unit a non-generic job to allow it to use a unique spriteset?
18
As it says in the title, I'm interested to know if anyone has figured out how events like the Gariland battle set ordinary generic units to have unique faces.

I had to replay the game to confirm it, but the portrait does appear when hovering over the unit during battle, and is still unique.

I looked all over the FFPatcher and did a few forum searches, but couldn't seem to find any information on this.

As a longterm goal I'd like to harness that to possibly make some unique portraits for generic characters like Alicia and Lavian without changing them to uniques, but for now, just knowing where to look would be nice.