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 - Sega Chief

Pages: [1] 2 3
7th Heaven / Jessie Mod Compatibility
« on: 2020-02-11 10:51:13 »
Primarily affects NT, but will also affect any other mod altering the encounter table in Reactor #1.

This IRO corrects the issue by removing the encounter chunk that the Jessie mod doesn't need for anything:

Alyza, would appreciate it if you could replace the one currently held in the catalog with this one because I keep getting bug reports about it and Grimmy handed his FinalMix+ project over to someone else so I'm assuming he's withdrawn from modding for the time being.

Releases / [FF7PC-98/Steam] FF7 Randomiser - Godo
« on: 2020-01-17 20:12:19 »
[FF7 Randomiser & Game Tuner: Godo]

Main Program[v0.4.4]

Auxiliary Program - Field Script Add-on[v0.2.0]
* This tool is in Alpha and targets the game's flevel; it's based on Iros' 7h Program and complies with the licence that tool is supplied under.

[Feature List]
Spoiler: show

~~Features Overview~~
Below is an overview of each feature offered by the mod, broken down into section.
More detail of the changes can be found on the respective feature's page.

Randomisation Options
   + Attack Data (Spells)
   + Item Data
   + Weapon/Armour/Accessory Data
        + Materia Data

        + Character Stat Growths
        + Limit IDs/Unlock/Gauge Divisor (Damage taken to fill)

        + Character IDs
        + Starting Stats
        + Character HP/MP
        + Equipped Weapon/Armour/Accessory
        + Equipped Materia
        + RNG Table

        + Battle Background
        + Camera

        + Enemy Models
        + Enemy Names/Attack Names
        + Enemy Stats/HP/MP/EXP/Gil/AP
        + Enemy Attack Data
        + Add Random Element to Attacks
        + Add Random Status to Attacks (Safe & Unsafe)
        + Elemental Affinity/Status Immunities
        + Held Items

-) Special Hacks:
   + Enemy Swarm: Fills each formation to 6 enemies (some exceptions).
        + Boss Swarm: Same, but for bosses
   + Disable Escapes
   + Poverty Mode: All fight rewards limited, enemy items removed
        + Spellspring: All MP costs set to 0 for player/enemies

-) Balance Tuning:
   + Stronger Enemies
   + Weaker Enemies
   + Max Drop/Steal Rates

-) Restriction Rules:
   + No Physical Attacks
   + No Limit Breaks
   + No Spells
        + No Summons
        + No Items
        + No Materia
        + No Exp
        + No Gil
        + No AP
        + Initial Equipment Only

-) Random Seed:
   + Seed is generated when applying changes (always unique)
   + Seeds are collected in a time-stamped catalogue to be reused later

Spoiler: show

~~Installation Guide~~
) Before starting, make sure to right-click the .EXE and, in Properties, select Unblock if it appears.
) Whitelist in antivirus if it has trouble running/patching.
) If the randomised files crash on game launch, try a different seed; if problem persists, report it.

For PC
) Contained within the Download is the application .EXE file and two folders; Default Files and Output Files.
) Acquire a Scene.bin and Kernel.bin from your FF7 installation and place them in the Default Files folder.

By default, the FF7 files should be (depending on version):

FF7/data/battle/scene.bin (1998/7th Heaven)
FF7/data/kernel/kernel.bin (1998/7th Heaven)

FF7/data/battle/lang-en/battle/scene.bin (2012/Steam)
FF7/data/lang-en/kernel/kernel.bin (2012/Steam)

) Run the Godo application and select the desired options.

At the top of the application window are a series of drop-down Menus.
Click into one and set the options you want and their parameters (if applicable).
Some of these parameters are %-based, some represent a range (0-25 for instance).

////Quick Options
These apply most of the changes found in the Options forms, with a predefined set of parameters.
It's primarily for speed and convenience, and behaves in a similar way to the earlier non-configurable builds of Godo.

A set of tailored changes that are applied to the game.
) Base player equipment/spells are unchanged, but the character stats/starting equipment are changed.
) Enemy stats are changed, but not their attacks or Model

) Most spells are unchanged, but Enemy Skills, Equipment, and Items are changed.
) Character stats and starting equipment are changed.
) Enemy Stats and Attacks are changed, but Model is not swapped.

) Player's entire arsenal changed, along with stats, etc.
) Enemy stats and attacks randomised, with Model Swap

Extreme: Changes everything in the character/enemy data with maxed parameters
) All filters are off, everything is randomised (this will likely be unstable)

A seed can also be entered to replicate changes across different users; this requires that the same options be enabled.
If no seed is entered, one will be generated from the current System.Time.
All seeds are recorded into a notepad file within the application folder.

When ready, click Apply. If successful, a message will appear confirming this along with the seed used/created.
If an error occurs, it will appear on screen mentioning the section/location of the error.

Take the files from the Output Files folder and put them back into FF7; the game should be ready to play.
Remember that a New Game will be needed for some of the options to take effect, such as character starting stats.
A pre-existing save file can be used with the randomised files but there may be some visual glitches with the EXP gauge.

) You will require a tool to extract files from a CD/ISO/BIN/IMG; CDMage version 1-02-1B5 is recommended.
) Open the FF7 Disc as a M2 track (not the M1 default)
) Extract the Scene + Kernel from BATTLE and INIT folders respectively
) Randomise them as per above steps

) A patch is needed to expand the Scene + Kernel space, available here:
) This patch moves the Scene + Kernel to the Movies folder on the disc, allowing for unlimited space
) Once the patch is applied to the disc, import your randomised Scene + Kernel to the Movie folder.
) When prompted, confirm to pad the files with 0s.

Note: The PSX version is more prone to failure depending on what options are selected.
For stability, it is recommended not to use Model Swap and especially not Enemy Swarm.
) Bug reports should be posted here for visibility:

This application was built on .NET Framework 4.7.2 and uses DotNetZip as a dependency;
it will not work on Windows XP or older.

Godo targets folders/files by name; do not rename the folders/files within the application.
The intended folders/files are:
Godo/Default Files/Scene.bin
Godo/Default Files/Kernel.bin

Godo/Output Files/Scene.bin
Godo/Output Files/Kernel.bin

Internal Error Messages
) Valid Directory Required: Make sure that the Scene.bin and Kernel.bin are in the Default Files folder and that all
file and folder names are correct. If so, and using fresh files doesn't help, report as a bug along with options.

) Scene ID: # has failed to randomise: The scene mentioned is skipped and left as default. If using default files and
this error appears, report along with options used. If modded files are used, then just proceed.

) Kernel Section: # has failed to randomise: Same as above, but for the Kernel section. Same rules apply.

) External Windows Error Message: Something has failed within the tool itself, this will be context sensitive to the
message you receive. Report it.

In-game Errors
) Game fails to launch
Sometimes randomised files will not launch with the game; if this occurs, the only way to proceed is to re-randomise on
a fresh seed and try again. This may be due to an inconsistency with the GZipping algorithm or a problem with the assigned
data that hasn't been caught yet.

) Battle fails to load/crashes on swirl: This is a formation problem, and hints at an invalid BattleBG, camera, or similar
issue. Report it as a Battle Swirl crash along with location and options.

) Battle loads but no enemies/characters: This is an invalid Enemy ID has been set to the formation.

) Battle stops but game is still running/no actions can be taken: This is a softlock and can be caused either by an attack
ID being wrong, an animation error, or similar. Context is important so try to describe what happened prior to the crash
and what enemy model was being fought.

In general, any kind of progression-blocking problem should be reported so I can more accurately update the logic/filters
to get rid of problems for the future.

Spoiler: show

*) Issue where enemies were being allocated vast amounts of HP has been fixed.

*) Added Boss Swarm option to Special Hacks

*) Fixed major issue with items having their data mis-allocated
*) Aeris has been locked from Limit Break reassignment pending tests
*) Enemy Swarm HP reduction no longer applied to bosses
*) Drop/Steal Rate values corrected

*) Formation IDs weren't being updated with Model Swapped ones, resulting in empty battles

*) Exemptions for Enemy Swarm corrected to exclude Icicle Battles
*) Added Max AP under Balancing
*) Checked Item Behaviour and corrected it

*) No longer required to move files from Default Files to Target Files for a fresh randomisation; this is now done automatically. Default Files are used on every run and randomised files are written to the Output Files folder, overwriting any previous files inside.

*) Model Swapping has been modified to only allow 'safe' swaps until AI editing is added (to eliminate a cause of instability in certain swaps)
*) Serious bug where enemy data was being misaligned, leading to unassigned enemies/invalid enemy data (sky-high AP was a sideffect of it as this is where the misalignment occurred).
*) Materia AP reassignment only modifies existing levels, instead of adding new 'empty' ones
*) Some underflow assignment problems for Gil, etc. corrected
*) Enemy Swarm fixed

*) Enemy balancing has been re-done; more potent Damage Formulas excluded from the assignment pool in Enemy Attacks
*) Spells now only use Magic-based Formula, and Weapons only use Physical-based formula; this will change when Description generation is added.

*) Parameters for customisation options weren't being initialised properly, resulting in Nulls

*) Profile options non-operational due to an array being set with to the wrong size
*) Confirm button on Challenges form not hooked up

*) Added UI options to customise the randomisation options
*) Profiles added to quickly generate a pre-defined set of randomisations with parameters from Light to Extreme
*) Quick Options retained from previous versions to randomise sections

*) BattleBG for Final Sephiroth battle removed from the pool (buggy)
*) Supernova excluded from Animation assignment

*) Escape and Remove now correctly filtered out (wrong IDs were assigned)
*) Magic Pot added to excluded models list (no valid attack anims)
*) Aero-Combatant added to excluded models list
*) Grangalan added to excluded models list (along with Jnr and Jnr Jnr)
*) Icicle formations added to Excluded Scenes list
*) Checks added for stat randomisation to prevent C# data overflow setting stat to 0

*) Materia Section was failing to randomise.
*) Issue in which non-changed models were having their animations re-assigned as if a model swap had occurred, causing soft-locks.
*) Improvement made to animation allocation for greater stability.

Bugs & Issues
*) Model Filters issue where risky models with multiple idles and hurt animations were being swapped out.
*) Model filters refined and a new option (Risky Swap) added to handle enemies with special requirements.
*) Issue where enemies could have FF assigned as their animation IDs in excluded scenes.
*) Issue where Limit Break ID wasn't skipping Tifa, Cait Sith, and Vincent for assignment.
*) Added some spell animation IDs which could cause softlocks without their special flags to the exception list.
*) No Spells/Summons/Items implementation changed; Menu Commands will now not open their respective Menus.
*) Some Kernel options were improved to reduce likelihood of hard-crash on game launch.

*) Fixed wrong placement for an enemy in one of the Swarm formations.

*) Added rules for the first Reactor and the early battles to reduce risk of unwinnable battles.
*) Refined the randomisation rules for reassigning stats, weapon formulae, enemy attacks, & Exp/Gil/AP.

Initial Release

Spoiler: show

Thanks to NFITC1 for helping me understand the compression format for both the scene.bin and the kernel.bin; the Wiki resource put together by the community was also enormously helpful.

Special thanks to Uprisen, Strife98, Death_Unites_Us, and iDerek759 for helping to test the mod prior to release; and to Tsuna for spreading the word. Also thanks to AntiqueChrono for running output files through his unit tests.

Thanks to Eswoogi, CalebHart, and others for bug reports & support.


Releases / [FF8PC - Steam] New Threat Mod (v0.3)
« on: 2019-02-21 22:00:30 »
[New Threat Mod v0.3]*



*Note: This mod is currently still in beta and only Disc 1 has been released; consider everything you see a WIP and keep an eye out for balancing issues or bugs.

[Feature List]
Spoiler: show

Stock no longer influences the % of the stat boost given by a spell; 1 stock of a spell acts in the same way as 100 stock, giving 100% of the intended stat boost. This allows players to freely make use of their Magic inventory and allows for setting up for more of a resource management system without sabotaging the player character's stats.

The other key change is that spells no longer have a 'best' stat to be junctioned to. Instead, spells have a hierarchy where spells will give higher/lower stat gains than each other. An example is given below:
Scan: +4
Fire: +6
Blizzard: +8
Thunder: +10
Cure: +11 or +200HP

These spells can only be equipped to the primary attributes (Strength, Vitality, Magic, or Spirit). This means you have to decide which stat is going to get the 'best' available stat boost, and which stats are going to get the weaker spells. Placing Thunder on Strength and Blizzard on Vitality will let you hit harder and take more damage, but it leaves your Magic/Spirit stat with Fire and Scan both of which give lower stat gains.

Restorative spells are different in that they generally provide a hefty stat boost, but are also the only spells that can be junctioned to raise MaxHP. This means you can sacrifice a MaxHP boost for an additional boost to your primary attributes. Status magic like Blind, Protect, etc. function in a similar way but are reserved for the secondary stats such as Hit, Evasion, Speed, and Luck.

As you progress through the game, you'll gain access to stronger spells with better stat boosts and shuffle out your older junctioned spells (Scan will typically be the first to go as it provides the lowest boost of all the primary-attribute spells). The difference between spells starts small at +2, but at higher tiers will grow to +4 and +8 difference, making your junction choices more significant.

This has been changed slightly in that a successful Draw will always give at least 9 stock of a spell, and has no upper limit (up to 100 can be drawn, assuming Magic stat is high enough and spell resistance is low). However, spell acquisition is more heavily focused on Refine/Drops/Field Draws than in-battle Draws; the goal is to make in-battle Draws more of a convenience for restocking basic elemental/curative magic, and less of a time-sink.

It should also be noted that GFs no longer need Draw to be acquired in-battle. The GF will be given to the player following the end of the battle, which will allow the Command menu slot to be freed up for other commands like Item, etc.

Draw Points have also been changed; they now offer a choice of two different spells and once a selection is made this spell is 'locked' into the Draw Point. Most Draw Points are also one-draw only and they are to provide useful spells earlier than they might be freely available or to top up useful magic such as Protect and Shell. It pays to think ahead when selecting what spell to Draw.

The required materials and results for Refine abilities have been adjusted. An effort has been made to achieve a sense of balance and eliminate exploits like infinite Gil, but this part of the mod should be considered a Work In Progress; adjustments will likely be made based on feedback. Some of the refines may be too powerful, others may not be worthwhile.

[Limit Breaks]
Limits have had the RNG removed from their check, meaning that milling turns will no longer have an effect. If a Limit does not proc when the character's ATB gauge fills, it means they cannot get a Limit until the battle conditions change (HP is lost, status is inflicted). This works both ways, and means that if a Limit does proc it will be available even if you swap control to another character and back again.

The Limit commands themselves, however, have not been made harder to proc. Instead, they're much more common. In mods where enemy damage is higher, Limits are riskier to use as they often require critical HP to proc and the Aura effect is very rare in this mod. By having Limits proc at around the 50% HP mark (varies by character and other conditions such as status ailments), they become more like character-specific abilities to vary up your approach to the fight.

Base damage & effects of Limits has been adjusted to account for this, so while they will deal more damage than your standard attacks (particularly if Crisis Level reaches 4 and you throw caution to the wind), they won't completely obliterate everything in your path like the base game Limits would.

Each character has had their base stats and growths adjusted, so that they have some favoured stats and weaknesses:
   Squall: All-rounder, with solid stats; spends the majority of the game in the party so he can be built using Junctions more easily.
   Zell: Effective but one-dimensional; has strong showings in Strength, Vitality, and Speed but abysmal Magic and Spirit.
   Selphie: Glass-cannon with solid Strength & Magic + the highest Speed stat in the team. Durability is overall low.
   Rinoa: Highest magic stat in the party and strong Spirit. Is one of the weakest party members defensively and early Limits are strength-based.
   Quistis: Strongest overall defences on the team with decent Strength & Magic to take advantage of Blue Magic. Is also the slowest party member, however.
   Irvine: Luck-based physical damage dealer, reasonable stats across the board but nothing special. High crit rate thanks to absurd Luck stat.
Weapons have been adjusted slightly, but not drastically. Instead of using a Strength bonus, a base power is used which starts at 20 and ends at 40 for ultimate weapons. Some have crit modifiers and rising/falling levels of accuracy. These three stats are now stated in the description from their respective weapon magazines.

With a few exceptions, all enemies have had their AI adjusted and their attacks unlocked/altered. Bosses have had a more drastic overhaul, sporting new attacks and behaviour. Stats have also been changed as you'd expect.

Random encounters typically have a fixed level, whereas bosses scale directly from the party level with a slight + modifier. This may be changed based on feedback as there are several ways to set up enemy level based on individual formations.

Regarding formations, enemies that appear alone tend to be higher level than the ones that appear in groups.

[GFs, Spells, & Commands]
Base power and some effects have been altered across the board. Some spells like Pain and Break have been given a base power so they can act as single-target elemental damage options for Earth and Poison (they still inflict status ailments, but Pain only inflicts Poison now). Meteor and Flare were also set up with Earth and Fire elements respectively to differentiate them a bit. Elemental/Status junction effects were adjusted; it'll be tricky to get elemental defence above 100% without multiple slots in Elem-Def.

Some statuses, particularly buffs, have had their timers extended so that they don't need to be reapplied as often. This was done because applying buffs can be time-consuming due to most spells only being single-target.

GFs have had their base power lowered, but their level mod is higher than before; increasing their levels will have a greater impact on their base damage (overall it is higher than what it was in the base game). The way in which Affinity works has been given a twist; you start with 1000 affinity for each GF, but this affinity falls each time you summon the GF in-battle. Excessive use will leave GFs weakened for later in the game, but affinity can be slowly recovered by the use of elemental spells. Using consumables will also raise affinity.

AP requirements for almost all abilties were halved and some quality-of-life abilities start off as learned such as Encounter-None (held by Siren).

Some command abilities have been altered to cover gaps in elemental offence for late-game or to provide a bit
more utility. These abilities typically unlock for learning at GF Lv.50 (lower/higher in certain cases):
   Recover: Merged with Treatment; heals 25% HP and has a built-in Esuna.
   Fortify: Adds Haste, Double, Triple; but as a drawback adds Vit0 and first incoming hit will be a back-attack.
   Aqua Breath: Replaces Treatment, inflicts heavy water damage
   Mad Rush: Unchanged
   Freeze: Replaces Doom, heavy Ice damage with Slow + Petrifying
   Shock: Replaces Absorb, deals heavy Thunder damage with Darkness
   Mini-Flare: Non-elemental damage that ignores Spirit
   Judgeray: Holy elemental damage, inflicts Stop
   Devour: Unchanged
   Card: Unchanged
   Galeforce: Replaces Defend, inflicts heavy Wind damage and inflicts Confusion
   Darkside: Power adjustment for x2 damage instead of x3 damage and HP loss is 20% instead of 10%.
   Kamikaze: Power adjustment for x3 damage modifier instead of x6
   Cover: Does not reduce damage when used

[Field Scripts & Dialogue]
A number of adjustments have been made to the game's scripted events and dialogue text.
-) General dialogue revamp: this should be considered an ongoing WIP until later builds finalise it.
-) Small adjustments + tweaks to certain scenes for better facing, etc.
-) Majority of scripted tutorials have been replaced with a few windows of text going over NT-specific information.
-) Restoration of deactivated story scenes
-) Various quality-of-life additions such as sequence skips (Opening FMV for instance can be skipped)

-) Included is a UV fix for the textures on the world map; this should be particularly effective if Linear Filtering
   is disabled in the FF8 Steam Launcher settings (a black line seam issue can be seen if linear filtering is on).

Spoiler: show

[Quick Version]
1) Install Roses and Wine (R07) or drop the FF8_EN.exe in the emergency folder into the FF8 folder.
2) Put all the files in the lang-en folder into the FF8\Data\lang-en folder
3) Read the bottom of this guide for steps to check that game is patched when playing, and also
   start from a new game rather than a vanilla-made save file.

[Long Version]
For an optimal experience, it's recommended to play the mod using the Steam version of the game. The mod is untested with the original 1998 FF8 PC but should work with it; just bear in mind that the original version of the game is unstable on modern machines without maintenance.

The Steam version uses MIDI files for its music rather than the MP3/OGG that FF7 Steam uses. It's highly recommended to download and install Roses and Wine for FF8 to resolve this, it's an Audio mod that replaces the game's music with .OGG:

It runs from an installer. Make sure to have unblocked/set admin priveleges for the installer before running it. This mod also provides an .EXE modifying feature that FF8 NT uses to apply changes to the FF8_EN.exe.

Now for installing FF8 NT itself:
Locate your FF8\Data\lang-en folder; it'll typically be in a location like:
D:\Steam\steamapps\common\FINAL FANTASY VIII\Data\lang-en

*Note that if your version of the game is not in English, the lang-xx folder may have a different
   name. Chances are that the mod will not work with the french, spanish, and german versions.
   Compatibility for these versions can be provided if a user sends me the files for these versions.

In the FF8\Data\lang-en folder, make a back-up of the following files:

These archives contain the enemy files, field event scripts/dialogue, system data (magic, character stats, etc.) and refine values/text respectively. Store these archives in a folder so you can revert to the default game in the future without having to reinstall the game/verify the files.

Once the back-ups are made and stored safely, add the FF8 NT versions of these files into the game's folder.

The next step is to patch the game's .EXE. Go to the Roses & Wine folder (called RaW) and go to this directory:
   D:\Steam\steamapps\common\FINAL FANTASY VIII\RaW\GLOBAL\Hext
Place the FF8_NT_EXE.txt file into this folder. What this will do is apply the mod's executable changes to your executable at run-time, leaving it unaltered for vanilla runs. If this part of the process doesn't work, use the FF8_EN.exe provided with the FF8 NT download; just remember to make a back-up of your default FF8_EN.exe.

To confirm that the game has been patched successfully, make the following checks:
1) Field Script Check: On starting a new game, a 'Welcome to FF8 NT' message should be displayed.
   Other parts of the game's dialogue is different as well.
2) Battle Check: Bite Bugs on the world map will make use of their 2 special attacks; Barf and Needle.
   The Ifrit boss fight will include new mechanics/attacks.
3) Menu Check: In your Refine menus, M-Pebbles should refine into 3 of a basic elemental spell instead of 5 and
   the text shown should be updated to reflect this.
4) .EXE Check: Junctioned spells should be giving 100% of their stat boost regardless of stock, Draw will always
   be a minimum of 9 spells and can exceed this limit.
5) Kernel Check: Squall's listed weapon accuracy in the menu should be 100% instead of 255%.

If all of these checks are met, then the game is patched and should perform as expected. But report any oddities and glitches you encounter (along with any additional mods you use, if any).

FF8 NT is a gameplay overhaul mod that's aiming to rebalance the game's systems while introducing new/revised content. The level of difficulty is intended to be accessible to all players, with grinding being optional rather than mandatory. Random enemies and boss battles have been revised with new mechanics, story scenes are tweaked with some deactivated scenes renovated for use, and some quality of life additions have been made. The central idea to the mod is to make the game a fresh experience but to also make it 'more of itself'; that means trying to maintain as much of the core game as possible but with adjustments to make the different gameplay elements work together better.

Feedback is always welcome, especially now as the mod is still in its formative stages. The current build extends to Disc 1 only, and while initial impressions have been positive on streams there are a lot of issues to be addressed and changes to be made. Any suggestions or bug reports would be appreciated.

Spoiler: show

-) Release

-) Hext file adjusted and now works with Roses & Wine's hext folder
-) HP adjustment for Biggs & Wedge, Elvoret, X-ATM082, and Gerogero
-) Physical damage downtuned for Ifrit, Biggs & Wedge, and X-ATM082
-) Debug routine removed from Tomb of the Unknown King Draw Point

Current Issues:
-) Refine text (and some results) are incorrect/misparsed - Fixed
-) Card Level Lock for Card Mod is not working
-) Squall's weapon accuracy is treated as 255%, even with Blind applied

-) Refine Text fixed
-) Revisions made to card refines (temporary measure as level-locking didn't work imbalances most likely still exist)
-) Restorative/Cure spells now ignore Shell
-) Diablos revamped
-) Multiple enemies revised that were missed in first wave; AI, attacks, etc.
-) Abyss Worm & Chimera modded
-) Added skip option to Opening FMV and to Train Briefing scene
-) Shunsq's controller buttons display mod was added as a variant for the Hext files
-) Revisions made to Selphie's Slots spells
-) Blind status no longer affects Crisis Level
-) Some dialogue revisions
-) Fixed in-battle Seifer line

Current Issues
-) Zell's Duel uses duplicate entries of commands to fill action list
-) Squall's accuracy ignores what the value is set to, so this has been returned to 255% for the time being; magazines still list the 'old' accuracy value

Big thanks to the FF8 modding community for producing their tools, coming up with info/assembly hacks, and maintaining the old/new wiki:
-) Mystre's Field Editor & Archive Extractor/Packer, Deling
-) Gjoerulv's Enemy Editor, Ifrit
-) JeMaCheHi's Formation Editor, Cactilio
-) Maki, JWP & AlexFilth's Kernel Editor, Doomtrain
-) JWP's init.out Editor, Quezacotl
-) JWP's AI Extension for Ifrit tool
-) Alexfilth's mwepon.bin editor, JunkShop

And thanks again to JWP for helping me out with assembly hacks and to Maki for giving info about how the field files work. Thanks to Callisto for advice on using the menu text editor.

Also a big thanks to streamers like Ysangwen, Uprisen, Strife98, Strongbow, Redmon, and others for broadcasting the mod on release; the feedback was invaluable and the support was much appreciated.

This is a tool written in C# for modifying the stat bonuses/penalties given by Materia. It can modify an ff7.exe, ff7_en.exe, or a ff7.iso/bin/img from the PAL/NTSC regions.

Materia Keeper v1.3

Source: Github Repository

-) PC with .NET (most PCs with a modern OS will have this)

-) Can modify ff7.exe, ff7_en.exe, or a .bin, .img, .iso file
-) Option to revert an opened file's values back to the default
-) Print a hext-edit ready .txt document listing all offsets + hex values (PC & PSX)

Potential Issues
-) The file validation is fairly basic; avoid using this tool on files it wasn't designed to be used on.

I put this together as a coding project to get more familiar with making tools and moving onto more complex projects (plus it helps with my programming). Any feedback on how the tool functions and the code itself would be welcome; I stuck with a method I was familiar with from college but there's likely better ways to go about it. I definitely need some pointers on file verification because the way the tool currently checks for a valid file isn't strong enough (especially for PSX files).

Thanks to RedXIV & DLPB on the Discord for testing the tool out and providing feedback.

Hi all,

I'm planning to implement some scripts and while the Deling tool does highlight which variable addresses are in use and which aren't, I suspect it doesn't covers vars that might be used outside of the field module (similar to the makou reactor tool).

I want to avoid using vars that are then used elsewhere; does anyone know of any vars (or a list of them) that are confirmed as unused?

Hi all,

Is there a handy tract of space in the FF8 exe for new code that can be used? I know there's a debug section of sorts in there somewhere, but for FF7's exe a similar region needed to have read/write permissions re-enabled before it could be used.

If anyone's interested in what it's for, I'm planning to try and write something that restricts Limit Breaks to 4 uses per battle (across party) with the first being Crisis Level 4, then decrementing each time until it hits 0 and 'locks' the use of Limits for the rest of the battle. I'm going to put a jump to it where the check for crisis level 4 is (49431E).

As for resetting the counter, I'm a little less sure of where to put it but was thinking the battle results screen as even when escaping that screen tends to come up. Does anyone know where that section starts from?

Hi all,

I recently returned to working on an FF8 gameplay mod, and way back one of the things I tried doing was adding a new enemy with its own unique ID. Unfortunately it crashed the game when a formation containing it was loaded.

My only guess is that each enemy has its own unique Scan text entry (and maybe other data that is loaded with specific IDs) and the game couldn't find one for the new ID, causing the crash. Does anyone know how scan stuff is loaded up when a battle starts or is the issue(s) maybe elsewhere?

Announcements and site development / Qhimm Wiki is down?
« on: 2017-12-19 18:00:48 »
Been checking the Qhimm wiki the last few days but it seems to be down; I asked a few people and they get the same error, a 403 Forbidden access problem. Anyone know what's up with it?

Hi all,

I'm about to release an alpha demo of an FF8 mod I've been working on, but unlike FF7 PC I've never owned the original FF8 PC, only the Steam game. Could someone tell me what the file/folder names & structure for it are? I'd like the mod to be compatible with both versions.

It changes the .EXE, field.fs, battle.fs, main.fs, menu.fs. Are there any fundamental differences in the files between FF8 PC and Steam that I need to be aware of?

The other thing was the archive and this is what got me worried that FF8 PC and FF8 Steam might be different; in another thread (2nd post:, it was suggested that grabbing the archive from the field folder and transplanting that into another field's archive would allow for field models to be used on a different screen. But opening FF8 Steam's field.fs in Deling, I can only get to a 'dummy' version of this archive:

I'm not able to navigate to it on FF8 Steam, and it's listing folders like Field which aren't in the steam installation. Were they all bundled together into a single archive? Any info or suggestions on retrieving a from the FF8 Steam fields would be appreciated.

I was trying to edit Battle #136 (the last fight on Disc 1) to include both Edea and Seifer but I've encountered 2 issues:

1) Seifer's Gunblade isn't synched to his animations; he'll attack but the sword stays in place + no SFX plays when physicals are used. The two actors aren't synched with each other.

2) The end of the battle causes a freeze after Edea's 'death quote' (unknown cause). A freeze also occurs if Seifer is in the 1st spot instead of Edea, with the game loading one of his text dialogues when Rinoa + Irvine show up.

In the formation editor Cactilo, I've been looking at the other formations where Seifer appears, including the one where both him and Edea are present at the end of Disc 2 and taking note of the flags used there. I also tried shuffling the order of the enemies in the formation but that caused other issues (Rinoa and Irvine are scripted to enter the battle at the start, I'm not sure where this is set from).

The three pics of their formation data:
Spoiler: show

I'm thinking it's either those unknown values in the bottom-right (not sure what they are, but the Gunblade ones seem to be consistent across every Seifer encounter except for the final Disc 2 one which uses a different 'actor') or it's some kind of hard-coded deal. I also see 2e5 used in the top two sometimes, or 209. Any info on how this works would be appreciated.

Edit: By chance, I used the wrong Seifer during a test and was surprised to see it working fine (used the Disc 2 version of him, where he fights the party alone). No text displayed when Rinoa & Irvine appeared but it otherwise seemed to be OK. I'm checking & comparing their AI at the mo.

Just to clarify, here's how it's going down now:
I've got the formation set up as 1) Seifer, 2) Gunblade, 3) Edea (using Edea's default flags and flags taken from Seifer #1 in Formation #195)

If I use Seifer #1 (Disc 1 Seifer) in that slot then only he will load, Gunblade + Edea won't be visible, and he himself will run his Death script as Rinoa + Irvine run in before the game hangs. But if I use Seifer #2 (Disc 2, Fight 1) then the fight loads correctly with gunblade synch, etc. albeit with the initial Rinoa/Irvine text missing (I think this might be run from Edea, but if she's not in the 1st spot of the formation it maybe doesn't play or something; don't know how the game triggers this as there's nothing in Edea's AI for it as far as I can see).

Support / FF8 - Importing an FF8 Enemy Texture
« on: 2017-09-06 22:55:12 »
Hi all, I've been trying to alter an FF8 enemy texture as a test (palette swap); I was able to extract it as a PNG using Deling and have the omega tool for a TEX conversion, but not sure how to get it back into its comxxx.dat file.

I've been meaning to do tests with this, but how reliable is this debug function? Does it completely reset every value in the game or does it just reset a few specific ones/doesn't work properly? If it's only partial, which values/variables does it reset? Just to be specific, its the one you can access from the first debug room by talking to Yuffie.

General Discussion / Japanese Modding
« on: 2017-03-24 15:20:22 »
Got curious about this recently, but is there a modding scene for FF7 in Japan? I'm wondering if they have gameplay mods and stuff.

A user was having an issue with patching FF7 Steam on Windows 10, but not having the OS myself I'm limited in what I can do to trouble-shoot the problem. We tried skipping the patch altogether and directly replacing the files but, again, the game was not modded when ran and seemingly had reverted back to default.

Is there any kind of file verification going on with either Steam or Windows 10 that people have encountered in the past, and/or potential fixes for it? I thought it might have been a language thing but they've confirmed it to be the English version.

I've had a few people asking for certain spell effects to have their volume reduced, notably Ultima; is there a way to do this in-game or with the .EXE by adjusting volume channels or can I do it by unpacking the SFX and tuning the volume of the .wav files?

General Discussion / FF7 backgrounds - Ben Nicholas
« on: 2016-10-18 01:04:09 »

He's an artist who did work for 343, and might be making more of these as a project.

Got two questions that are sorta linked to each other:

1) I want to change the items/quantity that Cards refine into; are these stored in the .EXE and, if so, what address do they start from? Info on their format would also be handy (so I can tell where data for one card ends and the next one begins).

2) When using Doomtrain, I noticed that changing the values given for abilities like Spr+20% are updated correctly but their in-menu text remains the same. I'm assuming this would also be the case for any changes made to the items given by Card Refinement. Can these be changed with a hex editor as well or are they static icons?

Releases / [FF7PC-98/Steam] - True Necrosis Mod
« on: 2016-06-15 02:44:02 »
FF7 True Necrosis Installer - v1.21

FF7 True Necrosis 7H IRO - v1.21

So I had this notion to put into motion an idea I had for a quick mod. There's a not so well known challenge for FF7 called Necrosis MO, devised by a Gamefaqs user called Necrosis and other FF7 challenge runners, which has the player survive on mandatory Inns/restoration (no optional healing) with just Magic attacks and certain Materia at their disposal.

The True Necrosis mod (TN), takes a different spin on this. First, the player is free to use any attacks they want (Limits, etc.) and will start the game with 9999HP and 999MP for every character. However, I've tried to remove any possible sources of healing from the game so that the player needs to make this HP/MP pool last for the entire game. Any damage you take is permanent, and any MP you spend on spells is gone.

That's the general idea, anyway.

There are a couple of Materia restrictions and changes to make this work:
-) HP/MP Absorb have been removed.

-) Elemental Materia has been restricted to Nullify damage (rather than Absorb).

-) Armour & Accessories have also had their Absorb flags downgraded to Nullify.

-) Cat's Bell is unobtainable.

-) Every character nullifies the Restorative element in their AI as well; most curative spells are able to retain their original flags because of this (so that enemies can use them).

-) The Magic menu was disabled in the party menu to prevent healing with Cure, Life, etc. outside of battle; equipped spells can be checked through the Materia menu instead.

-) Curative items cannot be used in field screens (in-battle, they should heal 0).

-) Sources were disabled and cannot be used.

If you find a way to circumvent any of these, or if one of these fails, then let me know so I can get it patched up.

Installation is identical to using FF7 NT's installer; direct the patcher to the game's data folder (should be compatible with 1998 and Steam). The files being changed are the flevel and kernel/kernel2. For 7H, import the IRO via the library tab in the 7H tool and activate it.

If you do give it a whirl, feedback would be appreciated along with some updates on your progress (how much HP/MP you have at certain points of the game for instance, annoying/dangerous fights, bugs, etc). And remember to make a back-up of your data folder (or just the field and lang-en/kernel folder) before patching if using the non-7H version. Happy zombie-ing.

Hi all, so there's a variable the game sets (set word?) to enable the Materia option in the Menu, toggle PHS, etc. But I was wondering what I would enter as a value if I wanted to disable the Magic menu; it's for a quick mod I'm putting together.

Edit: Figured it out by accident just after I made the thread :l

Troubleshooting / Locked Data Folder?
« on: 2016-04-11 15:49:15 »
Someone on ID reported that they couldn't access their Data folder for FF7 Steam, that it caused some kind of hard lock on their computer. They've tried reinstalling the game, but to no avail. Has anyone heard of something like this happening before? I thought it might be memory corruption, or some sort of security issue.

Scripting and Reverse Engineering / FF7 Steam: Languages
« on: 2016-03-18 20:59:35 »
Need some quick info on the names used by the French, Spanish, and German versions of FF7 for:

'lang-##' folder

I know it's called 'fflevel.lgp' for the french version, and I'm going with the naming convention used for the minigame files but if anyone can let me know for sure what these are called for those three versions (and if there's any other language versions with different names) I'd appreciate it.

Scripting and Reverse Engineering / AI Proofreading
« on: 2016-02-27 08:44:44 »
Hey all, I'm approaching the end of getting NT's last major build overhaul finished but I've a very important AI to roll out to most of the enemies in the game that's going to be handling a lot of NT's stat adjustments, Arrange Mode tweaks, and the SP system. I'd like to get a few sets of eyes to have a look at this script and tell me if they spot any errors or have ideas on how to make it more efficient:

Code: [Select]
12 0260
60 00
12 0280
60 01
12 02A0
60 02
13 0220
02 0260
02 4100
60 02
12 0260
12 4100
03 0220
13 0220
02 0260
02 4110
60 02
12 0260
12 4100
03 0220
13 0220
02 0280
02 4100
60 02
12 0280
12 4100
03 0220
13 0220
02 0280
02 4110
60 02
12 0280
12 4100
03 0220
13 0220
02 02A0
02 4100
60 02
12 02A0
12 4100
03 0220
13 0220
02 02A0
02 4110
60 02
12 02A0
12 4100
03 0220
02 0260
01 4048
60 09
02 0280
01 4048
60 09
02 02A0
01 4048
60 09
70 00E7
11 02C0
60 01
93 Level Check Debug
02 0260
01 4048
60 2C
70 00FE
12 0260
11 4048
60 2C
02 0280
01 4048
60 2C
70 0115
12 0280
11 4048
60 2C
02 02A0
01 4048
60 2C
70 012C
12 02A0
11 4048
60 2C
01 2010
60 01
70 0161
12 2060
11 4048
02 2060
01 4048
60 05
11 0220
60 01
93 Arrange Mode Debug

Code: [Select]
0x000LocalVar:0260 <- FlagBit(0)
0x007LocalVar:0280 <- FlagBit(1)
0x00ELocalVar:02A0 <- FlagBit(2)
0x015LocalVar:0220 <- LocalVar:0260.PhysDefense * 2
0x023LocalVar:0260.PhysDefense <- LocalVar:0220
0x02ELocalVar:0220 <- LocalVar:0260.MagDefense * 2
0x03CLocalVar:0260.PhysDefense <- LocalVar:0220
0x047LocalVar:0220 <- LocalVar:0280.PhysDefense * 2
0x055LocalVar:0280.PhysDefense <- LocalVar:0220
0x060LocalVar:0220 <- LocalVar:0280.MagDefense * 2
0x06ELocalVar:0280.PhysDefense <- LocalVar:0220
0x079LocalVar:0220 <- LocalVar:02A0.PhysDefense * 2
0x087LocalVar:02A0.PhysDefense <- LocalVar:0220
0x092LocalVar:0220 <- LocalVar:02A0.MagDefense * 2
0x0A0LocalVar:02A0.PhysDefense <- LocalVar:0220
0x0AB If ( ( ( (LocalVar:0260.Level < 9)  And  (LocalVar:0280.Level < 9) )  And  (LocalVar:02A0.Level < 9) ) )
0x0AB {
0x0CE LocalVar:02C0 <- 1
0x0D4 Display String: "Level Check Debug"
0x0E7 If ( (LocalVar:0260.Level > 44) )
0x0E7 {
0x0F4 LocalVar:0260.Level <- 44
0x0FE If ( (LocalVar:0280.Level > 44) )
0x0FE {
0x10B LocalVar:0280.Level <- 44
0x115 If ( (LocalVar:02A0.Level > 44) )
0x115 {
0x122 LocalVar:02A0.Level <- 44
0x12C If ( (GlobalAddress == 1) )
0x12C {
0x135 Self.Level <- Self.Level + 5
0x147 LocalVar:0220 <- 1
0x14D Display String: "Arrange Mode Debug"

In the older build, defensive values for characters get doubled through the character AI in the kernel and the level synch is made there as well. This created a problem of limited space for innate ability AI, but it's now also made it tougher to dole out SP based on the character's level compared to the enemy level as Pre-Battle seems to be processed based on the actor bit (so chara AI, and therefore level, is always set first which buggers any Level check I want to make later on).

So my plan is to move all of this into the enemy AI where there's a lot more room (hopefully, I don't know if the scene.bin has an upper ceiling on how big it can be before problems arise). But as this means copying the AI into every single enemy, I wanted to get some second opinions on how this AI looks, if there's any problems with it I've missed, or suggestions on a more efficient way to arrange it all. It'll take a while to implement it into each enemy's pre-battle as I've got to get rid of the old one and navigate around any other scripts they have so just want to make sure I've got it right.

One thing I'd really like is a way to improve the level comparison at 0x0AB so that the game reads the enemy level and correctly compares it to the character level. I've tried it a few different ways, like loading the monster's bit, but I can't seem to get it to work; changing the compared number to match the monster's level every time will be a huge time sink so I'd appreciate it if anyone knows of a way to do this. It might be that I'm using the wrong set of codes, I was never 100% sure when to use 03, 02, or 01 for these things.

Troubleshooting / Chocobo Encounters w/ no Lure?
« on: 2016-02-12 01:12:38 »
I was wondering if this is normal? I just encountered three chocobo formations in a row on the Isle of Mideel with no Lure equipped. I checked the effect of the Materia on Caves of Narshe and it said 'increases chocobo encounter rate by 2x; does this mean it's possible to find chocobos without the Lure?

Troubleshooting / Transparent/Faded Enemy Textures
« on: 2016-02-04 19:04:07 »
A while back I asked folk about ways to fix the transparent texture issue that appears on certain enemies:

It was then fixed in a release of Aali's Driver, but because that fix also made textures on the field/world map opaque it was dropped from later releases. Is there a more direct way to fix it through Kimera or similar?

Troubleshooting / FF7/PSX - Patch Testing
« on: 2016-01-25 17:00:08 »
Hey all,

I took on a dude's request recently to get myself some experience making patches for the PS1 version of the game, but he seems to be having trouble getting it to run on either emulator or console. It works on my end, and it seems to work for another guy who tested it as well, but I'd appreciate it if some people could give this patch a whirl:

It doesn't do anything exciting; it's a piecemeal patch that's supposed to disable critical hits (except for Tifa's Reels) on Disc 1 of the USA/NTSC version. If folk with PSX modding experience spot any problems with this patch, and if there's any special steps to making it console-ready, then I'd appreciate the info.

Pages: [1] 2 3