• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 16, 2024, 07:44:31 pm

News:

Please use .png instead of .bmp when uploading unfinished sprites to the forum!


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 - Xifanie

81
Ah yeah, sorry. I didn't consider the possibility that is was stored in multiple files.
82
You can just do a hex edit, but it's making your life harder on yourself.

Just search for each character's byte value and you should be able to find its location in WLDHELP.LZW

https://ffhacktics.com/wiki/Font
83
Is there any reason you can't use Tactext? Why does it have to be hex editing?
And Tactext uses a DTE compression method, so the data will change a lot.
84
Mind you I didn't thoroughly test it
86
I'm not sure what you're talking about... because adding more jobs isn't possible.

I can only think of 2 things:
  • My spreadsheet that detects unused/duplicates entries for many things, including jobs
  • RAD 3, which allows more units on the job wheel, but is, by design, a cheat and not something that can be used in a proper mod
87
Balmafula and King Delita are also in there and unused IIRC?
88
It's technically possible, but realistically it would take a lot of effort while having to deal with severe limitations, particularly the VRAM.
89
Hacking/Patching Tools / Font Character Creator
July 30, 2020, 11:42:21 am
This is really old, but it still works!
Please remember that a lot of ASM hacks use kanji space, so you will have to try patching this at the same time as every other hack to make sure there is no conflict.
90
I'd want to make it like JSON, or something. It would improve readability and this type of format could also be extended to event conditionals and world map instructions. Also, this probably won't ever happen as I'm sure it's more than my body can handle. 😅

Example:

Offset = 0x12A000;

UnitIDs = {
   Ramza: 0x02,
   Alma: 0x30,
   Simon: 0x80,
   DeadKnight: 0x81,
   DeadMonk: 0x82,
};

Instructions = {

Camera(
   X: 392, Y: 1272, Z: 1420,
   Angle: 334, Rotation: 480,
   Zoom: 100%,
   Frames: 1
),
WaitForInstruction( WaitFor: Camera ),

UnitAnim( UnitID: Simon, Animation: Dead ),
UnitAnim( UnitID: DeadKnight, Animation: Dead ),
UnitAnim( UnitID: DeadMonk, Animation: Dead ),
WarpUnit( UnitID: Ramza, X: 4, Y: 11, Facing: East ),
WarpUnit( UnitID: Alma, X: 4, Y: 11, Facing: East ),

SpriteMove( UnitID: Ramza, X: -44 ), WaitSpriteMove( UnitID: Ramza ),
SpriteMove( UnitID: Alma, X: -40 ), WaitSpriteMove( UnitID: Alma ),
ColorUnit( UnitID: Ramza, Preset: Shadows ), Wait( Frames: 2 ),
ColorUnit( UnitID: Alma, Preset: Shadows ), Wait( Frames: 2 ),

UseFieldObject ( ObjectID: 0x02 ), WaitFieldObject()

RotateUnit ( UnitID: Simon, Rotation: 8, Speed: 1 ), WaitRotateUnit( UnitID: Simon ),
Unknown_6D(),
ResetPalette( UnitID: Ramza ), ResetPalette( UnitID: Alma ),

LoadEVTCHR( MemoryBlock: 1, Slot: 0x42 ), WaitForInstruction( WaitFor: LoadEVTCHR ), SaveEVTCHR( MemoryBlock: 1 ),

SpriteMove( UnitID: DeadKnight, Z: 8 ),

EVTCHRPalette( UnitID: DeadKnight, MemoryBlock: 1, Palette: 0x02 ),
EVTCHRPalette( UnitID: DeadMonk, MemoryBlock: 1, Palette: 0x02 ),
UnitAnim( UnitID: DeadKnight, Animation: { Type: EVTCHR, MemoryBlock: 1, ID: 2 } ),
UnitAnim( UnitID: DeadMonk, Animation: { Type: EVTCHR, MemoryBlock: 1, ID: 1 } ),
SpriteMove( UnitID: DeadMonk, Z: 8 ), WaitSpriteMove( UnitID: DeadMonk ),

EVTCHRPalette( UnitID: Simon, MemoryBlock: 1, Palette: 0x04 ),
UnitAnim( UnitID: Simon, Animation: { Type: EVTCHR, MemoryBlock: 1, ID: 7 } ),

Instruction_63( UnknownA: 0xC9 ),

[...]

Async({
   Wait( Frames: 10 ),
   SpriteMove( UnitID: Ramza, Frames: 36 ),
   Wait( Frames: 16 ),
   ColorUnit ( UnitID: Ramza, Preset: 0x08, Frames: 4 ),
   WaitSpriteMove( UnitID: Ramza ),
   UnitAnim ( UnitID: Ramza, Animation: Standing ),
   Wait( Frames: 20 ),
   [...]
   UnitAnim ( UnitID: Ramza, Animation: Bow ),   
}),

[...]

DisplayMessage(
   Type: CloseByScript | Regular | Bottom,
   UnitID: Simon,
   MessageID: 0x0003,
   String:
"{font:08}Simon {br}
{font:00}U, ugh...Alma...{br}
Why...are you....here?{end}",
   Y: 12, ArrowX: -4,
   Open: Smooth
),
WaitForInstruction( WaitFor: Dialog ),

DisplayMessage(
   Type: CloseByScript | Regular | Top,
   UnitID: Alma,
   MessageID: 0x0004,
   String:
"{font:08}Alma{br}
{font:00}What happened?{end}",
   X: 18, Y: 28, ArrowX: -4,
   Open: Shock
),
WaitForInstruction( WaitFor: Dialog ),

ChangeDialog(
   DialogID: Bottom,
   MessageID: 0x0005,
   String:
"{font:08}Simon{br}
{font:00}It's dangerous....here.{br}
Hurry....run.   {br}
They...came for the Holy{br}
Stone 'Virgo'...{end}"
),
WaitForInstruction( WaitFor: Dialog ),

ChangeDialog( DialogID: Top, MessageID: Close ),

[...]

};
91
Hacking/Patching Tools / Re: Online Map Viewer
July 07, 2020, 02:28:35 pm
Holy moogle puffs that's impressive 😮
92
Hacking/Patching Tools / Re: FFT Mod Helper v1.02
May 14, 2020, 04:19:02 am
Updated to v1.03

  • Fixed a bug where the Brave Story ENTD loaded from Scenarios was erroneous (incorrect offset)
93
News / Re: FFH's Discord Server
May 03, 2020, 08:48:09 am
Dude, we've had an off-topic section for 4 weeks. What are you talking about?
94
The Lounge / My recommendations for COVID-19
April 22, 2020, 05:42:40 am
If you show symptoms of COVID-19, even if you tested negative (false negatives are very much a thing), please still consider giving a shot to the advice in this topic, for 1-2 weeks to see how it goes
I am not a licensed medical professional, but any information that I provide can be cross-examined.
I would recommend that you take your health into your own hands and research this instead of just blindly following my advice. All this advice won't be the answer for everyone.

Time for this topic to become demonetized!

As many of you already know, I've become a nutritionist by necessity for my own health, and I've helped quite a few people with their own health through the myriad of knowledge that I acquired over the years. And COVID-19 is no exception to me.

I have some suggestions and I'll explain my reasoning for each:

Raw Garlic
Why?
Raw garlic is amazing at boosting oxygenation and insulin sensitivity. It's a performance drug. This means that for shortness of breath, it's effects are undeniable and I can both speak from personal experience with mildew exposure + previous infections and my guinea pig @Elric.

It's also amazing at fighting respiratory tract infections in general, including the flu and fungal infections.

It can be safe to consume up to 1/2 bulb of garlic per day depending on how your body handles it. Even if all you can consume is half a clove a day, it should still help you to breathe tremendously.

How to Prepare
  • Crush/Blend the garlic and let it sit for 10-15min at room temperature (keep away from cats/dogs).
  • Ideally mix it with some lemon juice and refrigerate it for up to 4 days.
  • Once it's fridge cold, swallow the equivalent of 1/3rd of a clove or less at first with some food, including some fats
  • Try to consume this 3-4 times a day. The quantity isn't nearly as important as the frequency! I'd rather you take 1/3rd the total amount twice as often. Allicin has a very short biological half-life.
  • Be especially wary if you have acid reflux, at the same time, try to consume what you can handle.

Zinc (Gluconate)
Why?
Viruses hate zinc. Zinc kills them and it prevents them from reproducing! But you can't overdo this because Zinc toxicity is something that can happen pretty quickly. You want zinc gluconate specifically because it is the form of zinc supplementation available that is by far and away the lowest in Cadmium, which is a toxic heavy metal to the body. And do you want to add the stress of eliminating a heavy metal to your body when you're already sick? Of course not.

How to Take
Normally the Daily Value of zinc is 40mg. 100mg per day was proven very effective in treating autoimmune conditions in general. I suspect that a ratio of 2.5x for autoimmune and 2.5x for viral infections would be closer to ideal in order to be healthier. Take with food, split the amount into 2+ times a day. Oysters can work too, but those can be toxic in larger amounts.

If you experience acid reflux or are otherwise known to have low stomach acid, ideally take your zinc with something highly acidic, such as tomatoes.

Get Some Sun
Why?
Vitamin D3 is a powerful hormone that is also a powerful antioxidant and helps kill viruses. In fact, many viruses only attempt to come out of the cells to multiply more when they detect a low D3 presence in the blood, indicating a weak immune system. For those further up in the North, definitely try to exposure yourself closer to noon, as the UV rays are still minimal at this time of the year. I would recommend 20min/day for normal exposure, and 60min/day (max 30min sessions) if you're sick. This might be bad for those with Irish genes though. If it makes you feel worse, don't do it.

Blood Production Supporting Supplements, Vitamins and Minerals
Why?
The shortness of breath caused by COVID-19 is the result of low blood O2. This means that it's like trying to climb Mt. Kilimanjaro without having trained for it. Thus, anything your body could use to increase your supply of blood could be beneficial, especially if you have a false negative and/or don't expect to be able to receive medical treatment. This is more of a long-term solution to ensure your survival, but still a good strategy nonetheless.

What?
  • Vitamin B12
  • Vitamin B9 (Folate)
  • Vitamin B6 (Folate)
  • Vitamin B3 (Niacin)
  • Iron (ideally heme-iron, from meat)
Try to at least meet your daily requirements, and usually you can multiply the daily amounts of these safely, except for iron which becomes quickly toxic.

Immune Supporting Supplements, Vitamins and Minerals
Why?
They reduce inflammation and support your body's fight... very much what you need while fighting any infection.

What?
  • Vitamin E
  • Vitamin C
  • Vitamin A (from animal fats)
  • Vitamin D
  • Selenium (brazil nuts are high in it)
  • Zinc
Vitamin C is the only one that it's not realistically possible to accumulate a toxic amount of, but it's also pointless to take, say, 50g of the stuff per day. It's just more trouble for your kidneys.
For all this stuff in general, go with amounts that make you feel better. You'll need more of those if you're immunocompromised as well.
95
Help! / Re: Battle Event Editing
April 21, 2020, 11:30:42 am
Quote from: DarthFutuza on April 21, 2020, 10:42:53 amAww darn.  Well I guess that works, how did you guys manage to free additional event slots while also adding more?
Vanilla uses 'setup' events that have no use other than padding in a way that helps avoid otherwise avoidable bugs.
So regular, non-battle events in vanilla always use 2 slots, but they really only need one.

The only issue we encountered was special portraits not rendering properly unless there was an event between a hard save and the event with the special portrait. Or something. Anyway that means 1 event slot freed for every scenario in the game. All the events had to be reorganized, and it took a lot of time and effort.

Gotta thank @Elric for that 💜
96
Data Types
97
Registers
98
Spriting / How to resize your avatar for FFH
April 19, 2020, 03:39:06 am
FFH's avatar standard is 80x96, while in-game portraits are 32x48 stretched to 40x48.

Thus, to reproduce the same effect while minimizing quality loss, we can:
  • Resize to 800%, or to 256x384, with the nearest neighbor option
  • Change the color mode to RGB
  • Resize down to 80x96 (31.25% x 25%), with the regular bicubic option (not smooth or sharp)
  • Upload!
99
In this topic I'm going to share videos I've recorded or streamed about ASM Hacking. The first video was the process of creating a simple formula hack, but I put it in a spoiler tag for now since I figured it was very important for me to go through the basics of ASM first for people to truly appreciate the more complex information I'm putting out there.

Formula hacks are pretty much the easiest thing to create when it comes to ASM, and a great introduction without including the debugger/breakpoints. So, after the basics, this is what this thread will focus on for a while.

Join us on Discord #asm-hacking to know when to expect a live stream to see your questions answered live, or answered in the next video!

Please give me any feedback on how to improve my videos! This isn't just for FFH--I want to make quality videos for my business too.

Kick Formula
100
Help! / Re: R/S/M modding questions.
April 16, 2020, 06:49:02 pm
1) You can enable all of them, but IIRC some with displayed effects might not stack with each other, like Move HP Up and Move JP Up. My Special Snowflakes hack allows you to give all the R/S/M you want to a unit, but this effect only lasts for the duration of the fight.

2) It's buggy to have innate reaction abilities for the player's units (the reaction slot will be overwritten with one of them), but it's totally fine to have multiple on an enemy-only job.

3) I'm not sure/don't remember.