Final Fantasy 7 > Releases

[FF7PC-98/Steam] FF7 Randomiser - Godo

(1/23) > >>

Sega Chief:
[FF7 Randomiser & Game Tuner: Godo]

Main Program[v0.4.4]
Download

Auxiliary Program - Field Script Add-on[v0.2.0]
Download
* 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


[Installation]
Spoiler: show
~~Installation Guide~~
Instructions
) 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.

Instructions
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.

////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.


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

Moderate:
) 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.

Heavy:
) 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.


For PSX
) 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: http://forums.qhimm.com/index.php?topic=11541.0
) 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.
         
Troubleshooting
) Bug reports should be posted here for visibility: http://forums.qhimm.com/index.php?topic=19468.0

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.


[Changelog]
Spoiler: show

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

v0.4.3
Features
*) Added Boss Swarm option to Special Hacks

Fixes
*) 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

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

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

v0.4.0
Features
*) 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.

Fixes
*) 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

Balancing
*) 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.

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

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

v0.3.0
Features
*) 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

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

v0.2.2
*) 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

v0.2.1
Fixes
*) 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.

v0.2.0
Bugs & Issues
Major
*) 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.

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

Balancing
*) 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.

v0.1.0
Initial Release


[Credits]
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.


Donations
Patreon

solid_snake1982:
Found a bug pretty early on when morphing fogger encountered an unexpected error and crashed the game.

Merilan:
I randomly encountered Carry Armor's arms which tried to lift one of my characters, causing a softlock in the battle.

Sega Chief:

--- Quote from: solid_snake1982 on 2020-01-17 21:50:32 ---Found a bug pretty early on when morphing fogger encountered an unexpected error and crashed the game.

--- End quote ---

You mean Smogger? It might be that certain models can't be morphed, so if the enemy had one of those models that might be why. Do you remember what the model looked like/or what enemy it was? Either that or it had an invalid item ID set as its Morph.



--- Quote from: Merilan on 2020-01-17 22:25:28 ---I randomly encountered Carry Armor's arms which tried to lift one of my characters, causing a softlock in the battle.

--- End quote ---

I was hoping the arms would be OK; I ran a test where they seemed to operate properly. Maybe one of the arms is safe and the other isn't, I think they link to each other through animation data. If they aren't safe then I'll need to shuffle them out.

Merilan:

--- Quote from: Sega Chief on 2020-01-17 22:28:43 ---I was hoping the arms would be OK; I ran a test where they seemed to operate properly. Maybe one of the arms is safe and the other isn't, I think they link to each other through animation data. If they aren't safe then I'll need to shuffle them out.

--- End quote ---

If it helps I think there were two right arms, and the 'center' enemy was a Motorball-type enemy (don't know which one if there are multiple).  I wound up just slowing the battle speed enough so I could run away from them

Navigation

[0] Message Index

[#] Next page

Go to full version