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

Pages: [1]
1
Terraform - Worldmap script editor for Final Fantasy VII
Version: 0.9.2 / 05.04.2020
 

What it is:

This is as far as I know the first tool that can not only read and extract worldmap scripts from world_*.lgp archive into a human-readable language, but also recompile them back to the LGP after you edited the scripts. So it's basically Makou Reactor (a very early, simple version of it) but for worldmap scripts. What can you do with it? Basically you can edit most of the game behavior that happens on the worldmap, including the behavior of Weapons, interactions with vehicles, all the messages that happen on the worldmap, etc.

For example you can make Ruby not really want to fight you, you can make Diamond Weapon approach Midgar faster (part of my Definitive Edition mod), or you can change the colour of your submarine to gold, or you can even set the lightning to a different time of day. The limit is your imagination (and the FF7 engine of course).

How to get it:

This is currently an ALPHA release, which means it's pretty rough around the edges. It's geared towards more technical folk that aren't afraid of command line and have some programming knowledge.

You can currently download this tool from my GitHub repository: https://github.com/maciej-trebacz/ff7-terraform/ (direct download link)

How to use it:

Please make sure to read the README file as it contains some instructions on how to run and use it.

Also make sure to become familiar with how FF7 World scripts work at Qhimm's wiki page: http://wiki.ffrtt.ru/index.php?title=FF7/WorldMap_Module/Script . I did update it with my recent finding and I'll keep updating it when I discover what the remaining unknown opcodes do.

Change Log:
Spoiler: show

0.9.2 [2020-03-24]
- better error handling and messages
- document few unknown opcodes

0.9.1 [2020-03-24]
- add Field ID constants for opcodes that use them

0.9.0 [2020-03-23]
- initial release




Let me know what you think and have fun tinkering with the worldmap :).

PS. Please don't judge the Python code quality, the this tool was meant to be a proof of concept from the beginning ;D. Now that it actually does what it was supposed to do I'll start making the source code more readable and making the tool itself easier to use.

PS 2. If you don't want to download the tool itself and set everything up, but you just want to look at the WorldScript code for the game you can download the disassembled scripts HERE. The archive contains three directories with scripts for three world maps - overworld, underworld and snow fields in Great Glacier. The scripts are best viewed using Sublime Text editor with its syntax highlighting turned on.

2

Final Fantasy VII Definitive Edition
by mav & death_unites_us

What it is:

This point of this mod is to add some quality of life changes to Final Fantasy VII while keeping the game mostly vanilla.
We have fixed and altered parts of the game that were considered the most annoying by players, while keeping all core mechanics intact.

What was changed:

Spoiler: show
- New Game starts on fastest battle/field speed by default
- All movies are skippable by pressing [START] button
- Darkness status now properly applies to physical enemy attacks
- Following scenes are now skippable:
  - Jessie’s train explanation
  - Cloud & Tifa's flashback in 7th Heaven
  - Elmyra's story about Aeris
  - Nibelheim flashback in Kalm
  - Cid’s backstory in Rocket Town
  - Gold Saucer date
  - Cloud and Tifa in Lifestream
- Fixed glitch after Schizo fight where you couldn't escape
  battles afterwards
- Fixed glitch after Shinra HQ 59th floor fight where you
  couldn't escape battle afterwards
- Fixed glitch after Turks fight during Midgar Raid where you
  couldn't escape battle afterwards
- Chocobo breeding assistant - Billy will now tell you how many
  races you need to win with your chocobos before there is
  a guarantee to get higher tier (e.g. green from yellow,
  black from green & blue) chocobo
- Priscilla's CPR minigame takes only one full breath to complete
- In Junon after the parade and presenting in front of Rufus you
  get to choose which reward you want to get (from the ones that
  match your score)
- Fixed walkmesh in Nibelheim reactor so you can’t go off screen
- GP seller in Gold Saucer would appear randomly, now he always
  appears (on Disc 2 after getting Cloud back). He also can sell
  up to 300 GP at a time and doesn’t disappear after
  a transaction
- Temple of Ancients clock room mechanics were changed so you
  can adjust hour and minute clock hands independently, making
  the room easier to use
- Bone Village treasure map - lists every rare item you didn't
  dig up yet and shows you where to dig for it
- Bone Village digging is now faster when you don't hire
  staff - in this case it skips the bomb detonation animation
- Added Cut materia in Great Glacier is now darker and easier
  to spot
- In Holzhoff’s hut you can pick up a “heat pack”, which will
  make you immune to cold so you can explore the Glacier freely
  without passing out
- When guessing the passcode for the Huge Materia Cid will now
  give hints that are actually meaningful, instead of misleading
- Diamond Weapon approaching Midgar now walks 4x faster
- Fixed ladder scripts in several places which could cause
  soft locks
- In North Crater after you send Tifa off she no longer stalls for
  several seconds
- Fixed few instances of Save Points causing soft locks in
  North Crater (in Sector 8 during the raid, in Rocket Town
  and in the North Crater)
- Added a crew member at the bottom of the North Crater who can
  warp you back up to Highwind. After that you can also warp
  back down
- Fixed typos in “Received” text boxes: “Glow Lance”, “Mithril”


Installing / Uninstalling:

This mod currently only works with English version of the PC Steam release of Final Fantasy VII. Support for other versions may come in the future.

To install the mod just download and open the installer. This mod may overwrite any other mods you may have installed, so it's best to just have a fresh install of the game before installing it.

To uninstall the mod simply go to Add & Remove programs section of your Control Panel, find the Final Fantasy VII Definitive Edition item and click "Uninstall". The uninstaller will revert the game files back to their previous state.

Change Log:

version 1.0 / 13.03.2020
  initial release

Credits & Mentions:

Field scripting, engine changes:
  mav

Mod conception, ideas and planning:
  death_unites_us

Beta testing:
  Zuloph, death_unites_us

Darkness status bugfix, help with engine code:
  DLPB

FF7 Tooling, incl. Makou Reactor and Black Chocobo:
  myst6re, sithlord48

lgp/unlgp tools:
  Aali

FF7 reverse engineering and engine documentation
  Qhimm's community

Other tools used:
  Cheat Engine - for real-time data & code inspection
  IDA - assembly source code analysis
  HxD - editing binary files with hex values

Special thanks to:
  3ssjay - for the logo
  petfriendamy - cutscene skip direction

3
Update: simple GUI version released

Hello again!

I promised a while ago that I'll make proggy for handling BIN-GZIP files from FF7 (kernel.bin, window.bin, etc.). So here it is. What is the difference between this and ff7dec program? Well, there are two:

- it contains only two files - an .exe and .dll (for gzip functions) versus all the files from ff7_gzip package
- it correctly handles all files (at least that's what I hope). ff7dec couldn't handle window.bin because of weird bug. In every file header (first 6 bytes) there is an ID for each file. Unfortunately this isn't just a incremental counter. In kernel.bin file it goes from 00 to 09, and then every file has 09 ID. This was handled by ff7dec. In window.bin however id's are as follows: 00, 00, 01. And the game crashes when they are different (ff7dec produces: 00, 01, 02). My program while extracting files from archive creates another file in the directory - [archive].ids - which contains the IDs so they can be imported properly later

It's a command line application written in .NET 1.1 (as my previous apps). I wanted it to be a GUI application, but unfortunately it's hard to make C# GUI apps for Windows under Linux :). But when I get my hands on Visual Studio for Windows I'll maybe update this to be also a GUI app.

As always, here are the links for actual app and it's source code:

GUI version:

Link: BinExplorer 1.1

Command-line version:

Link: BinExplorer 1.0
Link: BinExplorer 1.0 C# source

4
FF7 Tools / [FF7] Scene Edit v1.3.0
« on: 2007-10-19 23:09:57 »
Well, I though that everyone's got the latest version, but it seems that it's not the case. For those who hasn't (and has version with potion bug) here's an update:

Link: Scene Edit v1.3.0

It's considered to be bug-free now, and includes an AI Script viewer/dumper. There are also controls for saving the script, but they do nothing at this time.

As always, comments are welcome.

5
FF7 Tools / [FF7] FF7 SceneFix
« on: 2007-10-18 09:57:43 »
Update: Version 1.1 with PSX support is out!

This little proggy will update kernel.bin file when you edit scene.bin archive. More technical details why it's needed is on the wiki.

I know that similiar program was released a few days ago, but it involved using ff7dec and gunzip, while this is all in one package. Just extract the exe and dll files to your FF7 Game directory and run it. That's it - you're done!

Requires .NET Framework version 1.1.
Tested in-game and working, should it contain any bugs - please report here.

Credits go to kruci who created original FF7StoK program, and to those who found look-up table location.

Link: SceneFix v1.1
Link: SceneFix v1.1 C# source

6
General Discussion / Gears Online, anyone ?
« on: 2005-07-18 19:26:03 »
I just thought about something. Halkun did a very great job with the Gears project, unfortunately it's quite hard to get the latest version of this document lately. And it gets updated very rarely, which I can understand because one man can't handle everything. So I thought that we could make something like Gears, but as a website, where everyone can add something. It would take some work on the beginning, but later website will grow by itself.
Good engine that we could use is MediaWiki, engine of Wikipedia and many more projects like this. I have experience in making dynamic content websites, so I can handle the technical stuff. But I want to know if you guys find this idea useful AND will you be helping me by posting information there.

So... what do you think ?

7
Archive / Scene.Bin editing
« on: 2005-07-15 10:39:40 »
Ok, I got some time today so I wrote this little program.
It let's you edit files from Scene.bin file so you can change monster values such as:

- Monster name
- HP & MP
- Stats: Strength, Defense, Magic Power, Magic Defense
- Exp, AP & Gil for winning
- Win, Steal and Morph Items [updated, see post below]

Here's a screenshot from 1st boss fight, monster name changed to "Skorpionik" and his strength greatly reduced so Scorpion Tail attack did only 7 HP.



Link: Scene Edit v1.0.0
Note: This program works with unpacked scene.bin files. To unpack/repack this archive you can use another program of mine - Scene.Bin Explorer

Suggestions are apprieciated ;).

Edit: Just to see if everything works I opened "Hardcore version" of Scene.Bin from the other project, here are the results, it seems that everything works fine:


8
Archive / Sapphire update [FF7 dialogue editor]
« on: 2005-07-05 11:19:49 »
Hi there,
It's been a long time when I wrote something and my editor had one flaw so I finally decided to fix it. And here it is, version 1.3.0.0, hope it works for you. I tested it a while ago with the most buggy location - Shinra HQ floors 64-68 and they work fine. Hope it helps someone.

[Update: Version upgrade]

Link: Sapphire v1.3.0.3

9
Archive / Cosmo Canyon save patch
« on: 2005-05-19 22:47:52 »
I figured that it would be cool to develop patch for Cosmo Canyon so you mustn't see the animation. It would be a simple patch to change plot progression variable (before going to Bugenhaggen it's 0xD5 and after - 0xED). Unfortunetly, I'm not that good in C++ and I'm writing in Delphi, and I have problem with checksum function:

Qhimm's code:

Code: [Select]
int CFF7File::Checksum( char* b )
{
int i = 0, t, d;
long r = 0xFFFF, len = 4336;
long pbit = 0x8000;

while( len-- ) {
t = b[i++];
r ^= t << 8;
for(d=0;d<8;d++) {
if( r & pbit )
r = ( r << 1 ) ^ 0x1021;
else
r <<= 1;
}
r &= ( 1 << 16 ) - 1;
}
return ~r;
}


My code:

Code: [Select]
 var i, t, d, r, len, pbit: integer;
  content: array of char;
    i := 0;
    while (len >= 0) do begin
      len := len - 1;
      i := i + 1;
      t := ord(content[i]);
      r := r xor (t shl 8);
      for d := 0 to 7 do begin
        if(r and pbit)=0 then
          r := ( r shl 1 ) xor $1021
        else
          r := r shl 1;
        r := r and ((1 shl 16) - 1);
      end;
    end;


Could someone point me what I have done wrong ? Program calculates something, but it's diffrent from the original. Help apprieciated :).

10
Scripting and Reverse Engineering / LZSS Problem (Delphi)
« on: 2005-05-07 15:57:45 »
For long time i used Ficedula's LZSS algorithm in my programs. However it was very slow, so I've searched the internet and I found ChefLZ component. It's written in assembler and it's like... 10 times faster than Fice's in compression/decompression! But there's one problem - it doesn't compress some files correctly - the diffrence is that it produces 4 byte larger files than Fice's algorithm (it adds some bytes at end, rest is same).

My question is - does anyone here know assembler that much so he can help me fix this component ? I really want to use it, because packing & unpacking FF8 with Ficedula's algorithm takes ages...

Here's a link

11
Scripting and Reverse Engineering / FF8 CDs
« on: 2004-08-17 21:45:01 »
Ok, so FF8 has 5 CDs and this sucks. My friend got an idea - if you do full install, Field.fs file which is on every CD is copied on Hard Drive and never used from CD. Movies (.pak files) vary from 200-400, so you can burn 2 of them on one CD. He ended with this:

Install disk: standard as it was

Disk 1:
Code: [Select]
Disc1.pak
Disc2.pak
Disk1
Disk2


Disk 2:
Code: [Select]
Disc3.pak
Disc4.pak
Disk3
Disk4


Disk1-4 are the same files, they contain 0D0Ah.

And now the weird part: He runs up the game, loads save state from CD1, it works. Now he loads save state from CD2 and it doesn't work. Now, he deletes Disk1 from CD and guess what - save state from CD2 works, CD1 obviously not.

We try further - open FF8.exe in hex-editor, go to offset 0x791F2Bh where you can see:

Code: [Select]
DISK1   DISK2   DISK3   DISK4

He changed DISK2 to DISK1, deleted DISK2 from CD and put DISK1. So now on the CD there was three files - two pak files and DISK1 id file. Situation was same as above - save state from CD1 worked, CD2 did not.

Do any of you have an idea how to get it work ?

12
Archive / New FF7 Tool: Scene Reader
« on: 2004-08-14 17:33:25 »
Hello Again!
I wrote another program today, and called it Scene Reader. It can extract every single file from scene.bin archive for you to edit (eg. change some names or enemy stats), and finally it has a function to build new archive from extracted (and modified) files. Here's a proof that program works:



Note that the name I changed was "Guard Scorpion", you can find it in 82th file in archive. Again, I am not 100% sure that it's bugless so please test it and write feedback.
My next step is to write editor so you can change single enemy stats and batch processing (eg. up every stat by 30%). Beware :wicked:.

Link: Scene Reader

13
Hello guys, it's been a while when I've been here.

I didn't have much time to program in past months, but lately it changed. And I wrote something.

First one is next release of my FF8: Archive Commander (a.k.a FF8AC). This release can extract single/many/all files from game archives, replace single and now replace many/all files in archive. You can choose either to (un)compress files you extract/replace or not. It's been heavily tested and it's doing it good. Please write some feedback, so I can make it even better.

Second one is brand new program I called Omega: a TEX file converter. It can convert any 8-bit (I didn't even try to handle 16-bit files because some programs can do it, e.g. Texture Beast) FF8 TEX file to BMP, while you can choose palette (if TEX file has more than one). This one requires only TEX file. Finally, it can convert BMP file to TEX, preserving transparencies and palettes, and it's using original TEX file and modified BMP file. Note that BMP file structure must be exactly as it was when program extracted it. Photoshop is bad, Paint is good :). Again, please send me some feedback and tell what do you think about it.

Disclamer: Even so I tested theese programs heavily, I *DO NOT* guarantee that they will work *PERFECTLY*, so make backups of everything you change!

Links: in the wiki.

14
Scripting and Reverse Engineering / Grandia 2 dialog files
« on: 2004-03-25 18:16:13 »
Hello folks.
I bet you've heard about Grandia 2. I'm interested to hack dialog files of this game. Here's what I know:
- Dialogs are stored in .afs files, which look to me like some sort of archives. They're always beginning with 12 bytes:

Code: [Select]
41 46 53 00 09 00 00 00 00 08 00 00   AFS      
- Example of this afs file: download
- In this archive you can find files that contain texts. However, the text looks compressed by some alghoritm. Here is example of that file.
- I don't know how you see it, but to me, it looks like some LZ** alghoritm (like in FF7 / FF8 field files, except here text isn't encoded, only compressed).

Anybody have an idea how to hack it ? Or know some programs / people who do ?

15
General Discussion / FF7 demo ??
« on: 2003-06-16 20:48:57 »
This maybe sounds weird, but i need demo of FF7 PC. There's two version of them and I need 50 MB version, not Battle Sys demo. Anybody know some link where from I can download it ?

16
General Discussion / FF7 Remake Project (?)
« on: 2003-05-31 22:09:15 »
Hello, can you tell me... Is FF7 Remake project still alive ? And if yes, what's it's current website ?

17
Scripting and Reverse Engineering / FF7 Translation
« on: 2002-12-01 14:25:41 »
Hello. I want to translate FF7 to Polish language. I'm using Ficedula's Cosmo program. However, I have several problems that I can't fix alone. Maybe You can help me... Here is a short list of them:
- Music in Field/Battles is mixed up,
- When you try to go to sleep, there is diffrent music than the 'sleep' one, that hangs the game (because other mids keep playing forever).
- Some locations are mixed up when I'm trying to translate them, for example: tin_1, del2.
- I can't find text's in battles...

Is anyone out there who can help me?? :).

Pages: [1]