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

Pages: [1]
7thHeaven / FF7_GameConverter_7H.exe Review
« on: 2019-05-29 01:24:36 »
Here is my review of the GameConverter. Specifically, the FF7_GameConverter_7H.exe version from the 7th Heaven Modding Tutorial thread.


I have installed "Final Fantasy 7 without 7th Heaven" in two different ways now:

Install method #1: Without GameConverter: I manually installed all of the following: FF7 base install (v1.0), the official 1.02 patch, Aali's 0.8.1b driver patch, laptop keypad patch, modify registry entry, copy movie files over. I took each of these steps slowly to understand what they were doing, and I have a pretty good idea of the individual files that were changed. Result: The game is functional and works great as a baseline without major mods.

Install method #2: With GameConverter: (After uninstalling FF7 and cleaning registry entries.) I just did a fresh FF7 base install (v1.0), then I ran the GameConverter on top of it, then manually copied movies over. By the way, I used git + registry dumps to track which files and registry entries were changed as a result of using GameConverter. Result: There are multiple ff7 exes in the directory now; when I run ff7.exe, I get a popup error and a hint to go look at APP.LOG for more info, but the game starts and is functional except the field music does not work; the APP.LOG contains a few lines of informational logging plus one error line: ""ERROR: couldn't open music file: C:\ff7\/music/vgmstream/OB.ogg".

So here is my review, based on the experience described above.


It inspected the registry, detected my installation location, and correctly detected the version (v1.0 English).

It detected my virtual drive with the FF7DISC1 volume label, and correctly modified the registry setting for DataDrive (changed it from "C:\" to "F:\").

It automatically applied the official v1.02 patch.

It automatically applied Aali's 0.8.1b driver patch (except for the "direct" and "mods" directories, see below).

It automatically applied Aali's 0.8.1b driver registry entries.

It gave me the option to install laptop keyboard patch, I chose yes, and it worked.

It modified the registry to set the movie path (although the directions were incorrect and confusing, see below).


Bug #1: The instructions for the "movies" folder are incorrect and confusing. (Note: My base install directory is "C:\FF7". The installer uses "C:\Games\FF7" in its examples, but does not say that it requires such a path.) The first confusing thing was, it said that it created a "movies" folder under my install directory, but then it asked me to enter the path to it, and gave C:\Games\FF7\data\movies as an example. I checked, and it did not create a movies folder under C:\FF7\movies nor C:\FF7\data\movies. I manually created C:\FF7\data\movies and gave that path to the converter, but when it modified the registry, it just used C:\FF7\movies. Luckily, I was closely watching all of this, so after inspecting the changes it made to the registry, I copied all the avi files from my install discs to C:\FF7\movies, and the movies worked fine after this.

Suggestion: Fix the automatic "movies" folder creation, and fix the directions, and add more information to the user and explain that they are supposed to actually copy the game's video files to that directory. And if the included patches/mods support enhanced/upscaled videos, show off that feature as well.

Bug #2: The field music does not work. Based on looking at the APP.LOG, I'm assuming that it's assuming that the user is going to manually place files such as OB.ogg in the ff7\music\vgmstream directory. But I never saw any such directions. BTW, I'm a musician and eventually would love to get the OGG files on there, but in the short-term, it would be great just to have the MIDI stuff working. But I couldn't even get that to work. I even ran the newly installed RunVIIConfig.exe file and tested the MIDI settings, and the music played fine in the config utility window, but in the game itself, after the opening video's music finished, it was just silent.

Suggestion: Music should not be "broken by default" without any explanation. In an ideal case, the GameConverter should ask the user whether they intend on adding the OGG files, and if so, configure the music to use that accordingly, otherwise, it should let the MIDI stuff work.

Bug #3: When installing Aali's patch, it did not include the "direct" and "mods" directories. Granted, these are not "required", but they are part of Aali's patch, and if the GameConverer does not create those directories, then modders will need to manually create them, in the right places, to take advantage of those mod features. And that means that they will need to manually download Aali's patch and copy only part of it. This seems silly and redundant if GameConverter is supposed to include Aali's patch out-of-the-box.

Suggestion: When installing Aali's patch, include the "direct" and "mods" directories and subdirectories.

Lack of documentation: In general, although the GameConverter is doing a lot of great stuff, and although this forum topic provides a brief list of the stuff that in includes, it doesn't explain a lot of the after-effects. Why did it create ff7_bc.exe and ff7_mo.exe, and when should the user choose one of those over ff7.exe? (A new user won't have a clue that the new exe's are Beacause and the Modal/Window mod.) Why did it create RunVIIConfig.exe and RunVIIConfig.bat, and when should the user choose? (I don't even know the answer to this one.) Why did it create "all those extra files" (from Aali's patch)?

Suggestion: Better documentation.

Also, wanted to share some final thoughts:

I'm looking forward to trying out 7th Heaven, but I haven't even gotten to actually using 7th Heaven yet, and I'm already frustrated. The tutorial says that the GameConverter is required, and the GameConverter forum topic says that the GameConverter is in BETA. From my perspective, this "forces" 7th Heaven to be "BETA" as well, because it has a dependency on GameConverter. And if you're thinking "well, technically, 7th Heaven doesn't require GameConverter, it only needs parts X, Y, Z", well that's great if it's true, but the problem is, there is zero information on how to get 7th Heaven to work without it.

Come to think of it, I think my main complaint is that the GameConverter is trying to do too much. It feels like the original intention was to convert non-English-v1.02 versions to English-v1.02. But now it feels like a bunch of other stuff has been thrown into it, when not all of it is required. I bet most of us would agree that Aali's driver is pretty much "required", but some of the other stuff is just thrown in.

Primary suggestion: We need to be breaking up "big" projects like GameConverter, Reunion, etc., into smaller, modular pieces. At minimum, split GameConverter into "pieces that 7th Heaven absolutely requires" (and consider pulling that functionality into 7th Heaven itself) and "optional pieces" (and consider making those pieces into 7th Heaven IROs themselves). If we don't follow a modular approach, it means less customization and less combinations of options for the user.

Anyway... having said all that, the GameConverter is very impressive in the areas where it's working. But, sorry, I don't like all the extra stuff that's thrown in there, and I'm such a believer in the modular approach that I'd rather find a way to "make 7th Heaven work without GameConverter", at least for now.

Anyone know where I can find source code for reading battle models and animations?

The only program I know that can do this is Ifalna by Ficedula, but all the links I've found so far are either broken or only point to a binary.

Idea #1: Language-agnostic Binary data schema

So... most of our projects involve consuming, editing, and writing binary data like Final Fantasy game asset files.

This community has been awesome as far as bringing people together to reverse engineer the file formats, publish their findings on Wiki, and sharing source code.

So now, it would be super nice if we could go just one step further and to create actual schema definitions, in a structured format. "That way, we could auto-generate documentation. And most importantly, I wouldn't have to develop code to parse the data, because it can just be parsed automatically, by my program, which by the way is written in... uh, my preferred programming language..."

Yeah. Exactly. That's why we don't have schema files. Everyone has different needs, prefers different programming languages, etc.

But still... just imagine the possibilities if we could agree on a language-agnostic schema. This is a common problem and there are solutions for it. For example, perhaps we could use one of these:

Even if the language-agnostic schema isn't super-friendly to your preferred programming language, it would not matter if there were utilities to generate documentation for you to read and understand it in a user-friendly way, and if there were utilities to translate the schema to data structures in your preferred programming language. Right?

Well, for new projects, yeah, that might be fantastic. But... for existing projects... well, suppose we did come up with such a plan and even developed the tools to generate docs and code in everyone's preferred language. Would we expect the authors of existing tools to re-factor their code to use the new auto-generated code? Probably not.

But, if you are such an author, then you probably have some good insight into what kind of features you would want such auto-generated code to have, in your preferred programming language. So, perhaps you would be interested in contributing ideas, or even code, to translating universal schema to "code in my preferred language".

And long-term, imagine the possibilities with future tools!

I'm sure this community has talked about this before numerous times, so my main question is, do we have a forum topic dedicated to this? If not, can we create one? And if there are any individual threads where this has been discussed at length, can you point to them?

Idea #2:

It would be cool to have a tool to auto-reverse-engineer new file formats. The tool could use a repository of known file formats / characteristics (like "magic numbers", other patterns to look for, etc.). It could even be interactive and show different interpretations to the user and let the user guide the tool to choose the right interpretation. Finally, it could output schemas for the user. What format should the schema be in, though? See idea #1 above. (See?! That's another reason we need it!)

General discussion / Wiki
« on: 2019-04-29 20:35:11 »
I just signed up as a new member of the new *.ru Wiki site. It looks like my account was created successfully. And I can access edit pages (haven't tried to submit yet though) and I can see History pages. But, every time I click on a user link on a History page, I get a weird error like "user is not registered", even for Qhimm. Is this expected?

Scripting and Reverse Engineering / Field IDs
« on: 2019-04-04 17:21:01 »
Where in the original game files can I find a mapping of field ID (like 116) to field name (like md1stin)?

Couldn't find this. Looks like it's hard-coded in Makou Reactor. Didn't check Ochu source code yet. I'm guessing maybe in flevel.siz but I couldn't read it.

    Kujata is a suite of tools that translates FF7 assets to web-friendly formats like JSON and glTF, and also provides metadata and statistics.
    • Translates field models to glTF
    • Translates field data to JSON, and field entity/group scripts to Javascript
    • Provides metadata like field map links, op code usage statistics, etc.

    The Kujata webapp is a website that illustrates examples of what could be done with the data.

    Browse every field model in the game:

    Browse every field map in the game:

    See field map details, including links to other maps, field models used in the map, scripts, etc.:

    See op-code statistics, sort and filter by specific fields, and export to CSV.
    Example: See every place $GameMoment is set:

    Edit: Made the screenshots above into links

    So, I know there are a few tools out there that can import FF7 models, and even a couple that can display the animations, but are there any tools that can export the animations to a more popular format like obj or fbx?

    If not, I am seriously considering writing such a tool. Many years ago I already wrote a program, using the great data on this forum about the file formats, that could read FF7 model and animation files and display the animations. So all I'd need to do is learn a popular file format (perhaps obj or fbx) and write the export logic.

    But before I go down this path... are there any tools out there that already do this?

    And if I end up writing such a tool, does anyone have any feature requests?

    Completely unrelated / A new esoteric programming language
    « on: 2017-12-17 15:13:16 »
    There's a breaking new programming language:

    Some basic examples:

    Q-Gears and all FF Tools in general should be immediately re-written in this new language.

    I've created an app that helps people learn Japanese in a fun way by using Final Fantasy VII as examples!

    No need to download or install anything. It's a public web app.

    Home Page:

    Current Version: 1.1

    Newest Features:
    • Added statistics around which kanji strings are the most common in Final Fantasy VII. New as of 1.1
    • Major UI improvements: Much better menu, much cleaner pages in general. (Using Twitter Bootstrap.) New as of 1.1
    • Users can now add comments at the bottom of each page. (Using Disqus.) New as of 1.0
    • On the search results page, you can click on a result to navigate to the corresponding page (dialogue or non-dialogue). New as of Beta 0.11
    • Finally added credits/thanks on the home page, to DLPB, Luksy, Herman1134, Qhimm community. New as of Beta 0.10
    • Search for any text you want in Final Fantasy VII, Japanese or English. New as of Beta 0.10

    Other Features:
    • Explore the full Japanese Hiragana "alphabet" (syllabary). Click on a syllable to see examples where it's used in Final Fantasy VII.
    • Explore the full Japanese Katakana "alphabet" (syllabary). Click on a syllable to see examples where it's used in Final Fantasy VII.
    • Explore the full Japanese Kanji, grades 1-6 & S. Click on a character to see examples where it's used in Final Fantasy VII.
    • Explore the full list of Final Fantasy VII dialogue text.
    • Explore the full list of Final Fantasy VII non-dialogue text.
    • Explore statistics to see which hiragana, katakana and kanji strings appear the most often in Final Fantasy VII.
    • Shows side-by-side the Japanese text, English PSX text, English PC text, and Beacause retranslation text.
    • Shows examples from dialogue text and non-dialogue text. (Non-dialogue refers to names of characters, locations, monsters, abilities, items, menus, etc.
    • Shows screenshots of the Final Fantasy VII Character Naming Screen, which shows how the alphabets are displayed in the game. Look on the hiragana and katakana pages.
    • Shows furigana (pronunciations above each kanji character) on the kanji page.

    Features that might be in a future version:
    • Make the UI more mobile-friendly. The new UI overhaul made a big improvement regarding the menu, but it made some things worse, and this needs to be fixed.
    • Show screenshots of other parts of the game, like character dialogue, menus showing Materia, battle scenes showing monster names, etc.
    • Provide actual lessons to help people learn things in the right order, instead of just exploring. Considering multiple goals, such as "learn a few things to allow me to get pretty far in the FF7 game", as well as, "learn a few things to allow me to actually understand Japanese in the real world as well."
    • Make learning even more fun, perhaps using mini-games or scenarios. Example: You're fighting Jenova Birth, what should you equip to defend against her water-based attacks? (Can you distinguish between the Japanese words for water and fire? Can you locate your Water Ring and/or your Elemental+Leviathan Materia?)
    • Incorporate audio to help with pronunciation and make it more fun and immersive.

    Special thanks to:
    • Luksy and DLPB for the touphScript and Beacause projects and their feedback on this project
    • Herman1134 (Jason Maltz) for his spreadsheet that correlates the Japanese and English dialogue text together
    • The Qhimm community
    • Your name goes here if you provide valuable feedback

    Hope you guys like it! Would love to hear your feedback and suggestions!

    I didn't see any threads about reverse engineering FF7R so far, so I figured I'd get one started.

    Note: Use this thread to discuss reverse engineering FF7R only. If you want to discuss your thoughts on FF7R in general, please do that elsewhere. I say this because we already have plenty of drama in this General thread:

    Now, on to business. 8)

    Q1: Who is interested in reverse engineering FF7R, and/or developing tools for it? On the one hand, many people have already spent valuable time developing fixes and enhancements and hacks for the original FF7, so maybe it kinda sucks that the interest (of players and especially the developers themselves) are now divided and will probably slowly gravitate towards FF7R and away from the original FF7 and from all the hard work put into it. On the other hand, we've been working on FF7 for almost 20 years, and we've done almost everything possible with it, such that the only remaining projects are the really big or difficult ones (like separating out the engine, doing a full HD remake, fixing deep-rooted issues like limitations with FPS/timing, etc.). So, my question for you guys is, are you "committed to the original until death" (DLPB maybe?), or are you "it's WAY too early, I'm not gonna waste time on this now, but hey, if you find any info, please share it with us" (perhaps the majority of us), or are you "I'm excited, let's trailblaze and start proactively pursuing this!"?

    Q2: For those that are planning to get involved, what strategies and ideas do you/we have for reverse engineering FF7R? You may think "it's nowhere near release time so we don't know much yet". But what I'm asking is, what do we know, and what can we do to find out more, sooner, and when will we start thinking about organizing and documenting what we know on Wiki or something? For example, we know it will be released on PS4 first, and it's somewhat likely that the engine will be the same as, or similar to, FFXV, and possibly file formats and such. So, some of us could start trying to reverse engineer FFXV (demo now, releases later) and/or PS4 games, and at the very least we'd learn valuable things from that process, right? And as we hear leaks/rumors, we can track and document those, etc. What other info/ideas do we have?

    General discussion / Vision: Final Fantasy 7 ONLINE
    « on: 2012-06-07 03:51:43 »
    I have a vision for a "Final Fantasy 7 Online" game, and I'd like to share that vision with everyone and to get your feedback.


    IMAGINE... an online game where people can re-live Final Fantasy 7 and play with each other... ONLINE.

    What does that MEAN, exactly?  Well, for instance, one person can play Cloud, and another person can play Tifa, etc., and they can do various things online... TOGETHER.

    "Do what things, exactly?"  THE SKY IS THE LIMIT.  We can play the main story together, PvP against each other, explore the world, roleplay, minigames, and whatever else YOU think would be fun.

    The game might have different modes.  Let's start off with STORY MODE, and PLAY MODE, and BATTLE ARENA MODE.

    With STORY MODE, people can re-live the FF7 story, starting with the Bombing Mission.  But this time around, it's different.  One person plays Cloud while another person plays Barrett!  Once they finish the bombing mission, they have unlocked the next part of the story, and they have also UNLOCKED TIFA ON THEIR ACCOUNTS and can start to play her.

    The BATTLE ARENA MODE is for PvP.  You can pit your ferocious Red XIII against my Yuffie.  Or maybe we can stage some virtual battles against Sephiroth!

    The PLAY MODE is for everything else.  Socialize and ROLE PLAY.  Buy materia/gear for your characters.  Play minigames.  Go out into the world to gain experience.  Have fun while you are "queued up" for a Story Mode instance.  (See, that's where the game pairs you up with other people online to help you advance in the Story.)

    GUYS... THIS IS NOT LIKE ANY OTHER ONLINE GAME.  This isn't FF11 or FF14 or World of Warcraft.  You're not creating some random character that nobody knows.  You are playing a character that you and all your fellow FF7 fans LOVE AND ADORE.  And we're all playing TOGETHER.

    Each player has their own account and their own copy of all the FF7 characters.  A newbie's account might have a Level 7 Cloud, a Level 5 Barrett, and a Level 6 Tifa, and that's it.  An experienced player's account might have unlocked all the FF7 characters with higher levels.  It might even be feasible to let people play other FF7 characters like Sephiroth, Reno, the Don, etc., but only in certain situations.

    Yes, there are logistical challenges.  You don't want two people playing Cloud in the same world instance.  That's solvable.  What happens when your Aeris character... gets to a certain part of the story?  We can work that out.  Another challenge is copyright issues.  That's solvable, too.  We can get past any hurdle.

    The most important question is... WHAT DO YOU GUYS THINK?

    Let's hear your creative ideas, let's hear your criticism, let's discuss it.

    And maybe, just maybe... we can create something awesome.

    Graphical Modding / Understanding model files
    « on: 2012-05-08 02:00:01 »
    Hello everyone, I am new to the forums and a little new to working with FF7 models.

    I'd like to create a new game that uses some of the FF7 models.  To get started, I'd like to create a program that can do basically what Ifalna does: load model data and render 3D models (and ultimately animations) in a window.

    I have successfully used LGPTools to extract (from char.lgp) all the model-related files: *.p, *.a, *.rsd, *.tex

    So now, my question is: Where can I find more information on the file format of these files, and/or source code that reads these files and generates 3D models and animations from them?

    Thanks in advance!

    Pages: [1]