Please login or register.

Login with username, password and session length
Advanced search  


Don't be hasty to start your own mod; all our FFT modding projects are greatly understaffed. Find out how you can help in the Recruitment section.

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.

Topics - nitwit

Pages: [1] 2
... to navigate to files and load them?

PSX FFT Hacking / RetDec, a retargetable decompiler
« on: March 02, 2018, 09:18:54 PM »
RetDec is a retargetable machine-code decompiler based on LLVM.

The decompiler is not limited to any particular target architecture, operating system, or executable file format:

* Supported file formats: ELF, PE, Mach-O, COFF, AR (archive), Intel HEX, and raw machine code.
* Supported architectures (32b only): Intel x86, ARM, MIPS, PIC32, and PowerPC.


* Static analysis of executable files with detailed information.
* Compiler and packer detection.
* Loading and instruction decoding.
* Signature-based removal of statically linked library code.
* Extraction and utilization of debugging information (DWARF, PDB).
* Reconstruction of instruction idioms.
* Detection and reconstruction of C++ class hierarchies (RTTI, vtables).
* Demangling of symbols from C++ binaries (GCC, MSVC, Borland).
* Reconstruction of functions, types, and high-level constructs.
* Integrated disassembler.
* Output in two high-level languages: C and a Python-like language.
* Generation of call graphs, control-flow graphs, and various statistics.

You can try all of these features by using our online decompilation service.

It can only handle files smaller than 10 megabytes, but I wonder what it would output from BATTLE.BIN or the SCUS?

Help! / Tools to improve hacking workflow?
« on: July 29, 2017, 10:04:11 AM »
I was thinking earlier about how much effort it would take to actually rewrite a set of routines, like reactions or forumulas.  Most of the difficulty even for an expert assembly programmer isn't in the programming itself, it's in managing all the information.  Everything you need to know is spread across hundreds of pages on the wiki, so first you need to manually copy and paste all those pages into a bunch of text files and come up with a system to document them and how they all fit together.  When you're done with that you must develop a build cycle so you can compile all these things, put them in the right place, and then get them into a disc image and test them.

This is suboptimal.  It's like trying to develop using build methods and techniques from the 1950s.  It's insane that we still do this in an era of free online source hosting with automated build tools.

Please note that I intend this thread as a discussion on the nature of these problems, and potential best practices and solutions.  I will present my opinion in replies to this.  I encourage everyone - hacker or not - to do the same.  My goal is to create a system where we can do the best hacking and programming with the least effort.  Do not be afraid to comment!

1. What is the ideal build cycle for an average assembly hacker?

2. What is the ideal build cycle for someone who wants to rewrite and optimize large portions of the game mechanics?

3. What is your current build cycle?

4. What tools exist to improve our build cycles?

5. What is the gap between the tools that exist and what would be ideal?

6. What tools, techniques, and protocols would lower the entrance barrier for assembly hacking?

7. What non-coding obstacles prevent you from setting up your ideal build environment?

8. Why did previous attempts at rewrites fail?

The Lounge / FFH image assets?
« on: July 17, 2017, 06:24:32 AM »
Where can I find the image assets from the previous incarnations of FFH?  Specifically the one where the area outside of posts replicated the FFT formation menu?

Help! / [Solved] Is the Heaven Thunder Back formula correct?
« on: December 05, 2016, 05:34:55 AM »*%28100-TarF%29*%28MA%2BY%29*MA/2%29#Hit.28Rdm.281.2CX.29.29

This gets some very weird results (72000 damage) when I feed it 70 faith for both parties and 5 MA.


Should be divided by 10,000 (or 100, twice), since the (100 - caster faith) and (100 - target faith) are actually percentages.

Help! / Does the weapon/item type in FFTPatcher determine forumula used?
« on: October 30, 2016, 01:40:24 AM »
If I change a specific knife to a sword-type in FFTPatcher would the formula it uses change as well?  Or are the formulas hardcoded to the specific item slots?

I'm pretty sure that only the equipped-in-body-slot is hardcoded (you can't turn a hat/helmet/ribbon into an armor/clothing/robe).

Help! / Wiki Attention Thread
« on: September 22, 2016, 03:18:17 PM »
I'm doing a bit of work since I have free time due to insomnia.  I'm adding links to every documented subroutine call (jal 0x????????) where it is called.

I do this by going to any formula or routine, ctrl + f jal, finding the address it jumps and links to, and then ctrl + f that address on the Routine Locations wiki page:

Generally a good idea to include on every subroutine what jal's to that page, but that's less important since you can use the Special Page "What Links Here" on the left sidebar under the tools menu to find the same information.

If you see anything that needs attention in the wiki make a post.

Question for asm hackers and wiki admins - why does the Return Locations section in those subroutines that are jal'd to contain the start of that routine as the address listed, instead of the address to which it would return after that routine?
The above page jumps and links to the below page 3 times:

Data Nullifying displays the addresses to which the jal subroutine calls in Current Action Data Nulling return.  Other wiki pages instead display the first address of the routine from which they are called, and not the addresses to which they return on completion.  Which should I use?

Something else, I've found several duplicate pages, with different titles and different comments on the disassembly.  I assume that these are parameterized, but shouldn't these duplicate pages acknowledge one another?

Help! / Allowing FFTPatcher to edit unknown bytes?
« on: September 10, 2016, 05:43:19 PM »

While scrolling through this page in the wiki, I noticed that there are a few unused/unknown bytes in several data tables.

Code: [Select]
80062eb8 - Item Data Start (12 bytes each)
0x00 - Palette
0x01 - Sprite ID
0x02 - Required Level (for random generation)
0x03: Type Flags
0x80 - Weapon
0x40 - Shield
0x20 - Headgear
0x10 - Armor
0x08 - Accessory
0x04 -
0x02 - Rare
0x01 -
0x04 - Second Table ID
0x05: Item Type
01 - Knife
02 - Ninja Blade
03 - Sword
04 - Knight Sword
05 - Katana
06 - Axe
07 - Rod
08 - Staff
09 - Flail
0a - Gun
0b - Crossbow
0c - Bow
0d - Instrument
0e - Book
0f - Polearm
10 - Pole
11 - Bag
12 - Cloth
13 - Shield
14 - Helmet
15 - Hat
16 - Hair Adornment
17 - Armor
18 - Clothing
19 - Robe
1a - Shoes
1b - Armguard
1c - Ring
1d - Armlet
1e - Cloak
1f - Perfume
20 - Throwing
21 - Bomb
22 - Item
0x06 -                         //unknown/unused
0x07 - Item Attributes
0x08 - Price
0x0a - Shop Availability
0x0b -                         //unknown/unused

Code: [Select]
80063ab8 - Weapon Secondary Data
0x00 - Range
0x01 - Attack Flags
0x80 - Striking
0x40 - Lunging
0x20 - Direct
0x10 - Arc
0x08 - 2 Swords
0x04 - 2 Hands
0x02 - Throwable
0x01 - Forced 2 Hands
0x02 - Formula
0x03 -                         //unknown/unused
0x04 - Weapon Power
0x05 - Evade
0x06: Element
0x80 - Fire
0x40 - Lightning
0x20 - Ice
0x10 - Wind
0x08 - Earth
0x04 - Water
0x02 - Holy
0x01 - Dark
0x07 - Inflict Status/Cast Spell

Help! / Need formulas or spreadsheets to calculate stat gains and damage
« on: September 06, 2016, 08:02:59 PM »
I saw them somewhere, but I don't recall where.

I need something that will calculate stats at level 1, 99, and somewhere in between for given raw stats and class growths and multipliers.  If I can then select an ability or a formula and the x/y values for it and have the damage at various levels that would be cool too.

statBonus at any given level = [currentRawStat / (Growth + Level)]

I know there's some math function - probably related to either sequences or series - that deals with this sort of thing, but I can't remember it.  I could easily write a loop to figure this out, or even a recursive function... if only I had paid attention in discrete math 2!


Screw it, I can make a command line program to do the calculations for me.

RAM -> File
-0x67000 -> WLDCORE.bin
-0x67000 -> Battle.bin
-0xE0000 -> World.bin
-0xF800 -> SCUS

800610b8 - 0x518B8 - Job Data
Code: [Select]
0x00 - Skillset
0x01 - Innate Ability 1
0x03 - Innate Ability 2
0x05 - Innate Ability 3
0x07 - Innate Ability 4
0x09 - Equippable Items 1
0x0a - Equippable Items 2
0x0b - Equippable Items 3
0x0c - Equippable Items 4
0x0d - HP Growth
0x0e - HP Multiplier
0x0f - MP Growth
0x10 - MP Multiplier
0x11 - Speed Growth
0x12 - Speed Multiplier
0x13 - PA Growth
0x14 - PA Multiplier
0x15 - MA Growth
0x16 - MA Multiplier
0x17 - Move
0x18 - Jump
0x19 - C-EV
0x1a - Innate Statuses 1
0x1b - Innate Statuses 2
0x1c - Innate Statuses 3
0x1d - Innate Statuses 4
0x1e - Innate Statuses 5
0x1f - Status Immunity 1
0x20 - Status Immunity 2
0x21 - Status Immunity 3
0x22 - Status Immunity 4
0x23 - Status Imminity 5
0x24 - Starting Statuses 1
0x25 - Starting Statuses 2
0x26 - Starting Statuses 3
0x27 - Starting Statuses 4
0x28 - Starting Statuses 5
0x29 - Absorbed Elements
0x2a - Nullified Elements
0x2b - Halved Elements
0x2c - Elemental Weakness
0x2d - Monster Portrait
0x2e - Monster Palette
0x2f - Monster Graphic[\code]

8005fbf0 - 0x503F0 - Ability Data 2
Code: [Select]
0x00 - Range
0x01 - Effect Area
0x02 - Vertical
0x03: Flags 1
0x04: Flags 2
0x05: Flags 3
0x06: Flags 4
0x07 - Element
0x08 - Formula
0x09 - X
0x0a - Y
0x0b - Inflict Status
0x0c - CT
0x0d - MP Cost

8005e90c - 0x4F10C - Base Data (12 bytes each, 4 total)
   Order: 0 = Male, 1 = Female, 2 = Ramza, 3 = Monster
Code: [Select]
0x00 - HP (these * 16384 = Min Raw)
0x01 - MP
0x02 - SP
0x03 - PA
0x04 - MA
0x05 - Helmet
0x06 - Armor
0x07 - Accessory
0x08 - RH Weapon
0x09 - RH Shield
0x0a - LH Weapon
0x0b - LH Shield

rawStats.csv (4 entries - male, female, ramza, monster)
hp, mp, sp, pa, ma

jobs.csv (0x9a entries - squire 0x00 to 0x9a ultima demon)

0x0d - HP Growth
0x0e - HP Multiplier
0x0f - MP Growth
0x10 - MP Multiplier
0x11 - Speed Growth
0x12 - Speed Multiplier
0x13 - PA Growth
0x14 - PA Multiplier
0x15 - MA Growth
0x16 - MA Multiplier

abilities.csv (0x001 cure to 0x164 parasite)

0x08 - Formula
0x09 - X
0x0a - Y

Help! / How are exit tiles chosen in the Deep Dungeon?
« on: September 06, 2016, 04:57:47 AM »
The png maps of the Deep Dungeon by jekoln at GameFAQs indicate that each map has 1 exit tile out of 5 possible tiles.  Is this a table, and has anyone located it?  Also what does the event scripting of the DD differ from other maps?

The Lounge / How do I use hexchat?
« on: July 24, 2016, 12:51:27 AM »
I hate using firefox to access the web client.

Bugs and Suggestions / Possible to change the CSS for code tags?
« on: July 24, 2016, 12:47:05 AM »
If possible, I'd like the code tag to not expand horizontally, but i would like it to expand vertically.  By expand, I mean it will not use a scrollbar and will instead take up enough of the webpage as is needed to fit the tagged text.

Because this is really dumb:

Does anyone have an account to ask here:

PSX FFT Hacking / this is crap
« on: July 24, 2016, 12:44:23 AM »
delete me

Help! / Linux alternatives to CD Mage or cdprog?
« on: July 05, 2016, 12:55:14 PM »
They won't work with every version of wine I installed, and I can't get wine to compile.

Help! / How do you build a PS1 disc image from a collection of files?
« on: June 17, 2016, 10:39:49 PM »
Also what are the various ways that PS1 games load files into memory?  Is there are built-in function that does that automagically or does it need to know which sector a file is in?

If I move files around in a disc image, will the game still work?

If this is true, then the best way to deal with most games would be to dissect the disc image into files, modify those files, and then reassemble the files into a disc image.

The Lounge / What are the simplest components of a tactical RPG?
« on: June 05, 2016, 12:09:05 AM »
I must make a project of my own, and I think I should make either a Steam game or an Android app.  I'd like to make a tactical RPG, but I'm one person and there's only so much I can do.  I'm thinking that procedural generation could be a very good mechanic to reduce the amount of work involved, but I'm not sure what sort of mechanics should be involved.  What tactical RPGs do you recommend I study to find interesting mechanics that are suited to procedural generation?  What are the most basic mechanics a tactical RPG should have?

The Lounge / Galaxy Mage, a tactical RPG
« on: June 05, 2016, 12:04:30 AM »

GalaxyMage is a free, open-source tactical/strategic RPG for Windows, Linux, and Macintosh, with online multiplayer support. A tactical RPG is a type of role-playing game where turn-based battles are fought on a 3D map. Examples of commercial tactical RPGs include Final Fantasy Tactics, Vandal Hearts, and Disgaea: Hour of Darkness. Our goal is to make GalaxyMage a game that is relatively simple to pick up and play -- you can dive right in without getting bogged down in the details of the battle mechanics -- but to also allow for a lot of character development and customization. We also intend to create a unique, advanced AI system that allows enemy units to work together as a team and employ a wide variety of strategies.

Hacking/Patching Tools / Looking for bugs
« on: February 01, 2016, 09:44:05 PM »
I and my group mates need to fix bugs for a class.  Are there any programs that have bugs?  Where is the latest source code hosted?

Pages: [1] 2