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.


Messages - ficedula

Pages: 1 [2] 3 4 5 6 7 ... 58
26
FF7 Tools / Re: [FF7] HRC Resizer
« on: 2016-01-22 11:42:47 »
Sure, should be trivial.

How would you intend to input the information? Give a couple of examples of the changes you'd be making.

27
Ultrasound isn't really a mod, so much as a tool for people to create audio mods. The voices team is one group that's using it.

28
Well, there's a couple of issues;

1) Everything's inside an Ultrasound_0_42 folder within the archive; it shouldn't be
2) You'd need to rename 7HModSample.xml to mod.xml because that's what 7th Heaven expects it to be called - and edit the details to reflect the contents of your mod

....but I think you've also misunderstood: the 7H plugin is so you can create your own mod. Just archiving up the standard Ultrasound package doesn't achieve anything useful. The FF7 voices project hasn't released anything for download yet.

29
And voice acting too. I'd be all over that!

Oh really? Challenge accepted :P



Still a work in progress, but we should be able to make it work just the same as in FF7 (as you can tell - I'm reusing the voices/Ultrasound code, because hey, it works already, why rewrite that part of it...)

30
Upload the iro somewhere and send me the link; I'll take a look and work out what the problem is.

Cheers

31
FF8 Tools / Re: FF8 Scripting Language
« on: 2015-12-22 22:18:30 »
Coincidentally, I'm working on something similar for FF7. It's progressing fairly well; it'll turn this:

Code: [Select]
UC Disabled=1 //0x0
MENU2 Disabled=1 //0x2
PTURA PartyID=0, Speed=15, Direction=2 //0x4
IFSW BankValue1=2, BankValue2=0, Value1=0, Value2=999, Comparison=2, Offset=16 //0x8 --> 1f
WINDOW WindowID=1, X=67, Y=137, Width=233, Height=73 //0x10
MESSAGE WindowID=1, DialogueID=121 //0x1a
JMPF Offset=14 //0x1d --> 2c
WINDOW WindowID=1, X=39, Y=153, Width=261, Height=57 //0x1f
MESSAGE WindowID=1, DialogueID=120 //0x29
UC Disabled=0 //0x2c
MENU2 Disabled=0 //0x2e
TURNGEN BankRotation=0, Rotation=164, Direction=2, Steps=15, Calculation=2 //0x30

Into this:

Code: [Select]
string sMyoldmanwas = "“My old man was a miner, but\n he couldn't go to work after monsters \n started appearing in the Mythril Mines.”{New Scr}“Now all he does is sit around\n getting drunk in the bar…”";
string sMydadstill = "“My dad still just sits at the\n bar drinking, even though\n he knows Meteor's coming!”{New Scr}“It's sad. Even though he's an adult,\n he just doesn't want to see\n the world as it really is.\n I dunno what to do.”";

EnableMenuAndMove(False);
TurnToPartyMember(0, 15);
if (PPV > 999) {
ShowMessage(67, 137, 233, 73, sMydadstill);
} else {
ShowMessage(39, 153, 261, 57, sMyoldmanwas);
}
EnableMenuAndMove(True);
TurnSmooth(164, Closest, 15);

It'll extract nested if's and while loops from the instructions; I just really need to finish processing all the various opcodes. Shouldn't take too long, since the code structure is the tricky part, and that's mostly done.

32
Graphical / Re: Final Fantasy VI PC/Steam Modding
« on: 2015-12-21 20:34:14 »
Yeah, I was talking about nyxojaele - sounds like they've managed to decode pretty much everything important about the obb file.

33
Graphical / Re: Final Fantasy VI PC/Steam Modding
« on: 2015-12-21 20:16:47 »
Sounds like you already got the most important bits worked out - I won't spend any time trying to decode the archive, then, since you've already managed it!

34
Graphical / Re: Final Fantasy VI PC/Steam Modding
« on: 2015-12-19 20:33:02 »
Interestingly, despite those filenames referencing .gz data, none of the data files in the obb archive (or any data within the exe) appears to have a valid .gz header.

Doesn't mean they haven't used gzip anywhere, but if they have, it's not using standard headers, or is otherwise obfuscated.

35
Graphical / Re: Final Fantasy VI PC/Steam Modding
« on: 2015-12-19 18:32:47 »
I'll take a look - although like Covarr, I won't have much opportunity to do a lot until after Christmas (albeit I'm short on time rather than funds...)


UPDATE: Made some progress; the OBB file, despite the name, isn't actually an obb file. (Probably due to Google's distribution rules; subsidiary data and patches are always named .obb regardless of file type). It's a fairly simple archive file format containing ~4900 data files. The data inside is far too repetitive to be compressed or encrypted (which surprises me, nowadays, if this is the exact same data that was distributed in the Android release - which seems likely - they didn't even apply LZ4 or something similar? Guess they don't care about wasting space on customer's phones.)

The archive doesn't appear to contain filenames: they may be encoded into the exe; or possibly that's the (only!) part of the archive that's obfuscated in some way.

Many of the data files have suspiciously regular file sizes; just over 512KB, you say? Sounds an awful lot like a 256x512x32bit graphic, to me (also not compressed at all - not even PNG?!).

In fact, feeding those files into a raw image viewer gives us data like:



Looks an awful lot like some world map data, doesn't it? Albeit the colours are screwed, so it's not stored in straight RGBA.

Disappointingly it looks like a lot of the game data (all the dialogue?) is encoded into the EXE file, not stored in the OBB archive. That's a little annoying.

More to follow, presumably ;)

36
I'm running the latest version of Windows 10; FF7 runs fine. So whatever the problem is, I wouldn't assume it's anything to do with W10 updates.

I'd suggest making sure you have a sound driver selected; if you don't (and upgrading your sound drivers could have caused FF7 to lose the selected output device) FF7 won't start.

37
FF7 Tools / Re: [FF7PC] Mod manager - 7thHeaven (v1.50)
« on: 2015-12-13 12:15:54 »
Brilliant, that's just what I needed. I've added 7H plugin support to Ultrasound so it's easier to distribute mods using it (needed some manual setup to get things working, previously.)

38
v0.42: http://www.ficedula.co.uk/voices/Ultrasound_0_42.zip

Only change is that I've implemented a 7H plugin, so Ultrasound mods can be distributed & run through 7H without needing to install and run Ultrasound manually first. There's an example mod XML in the download, but let me know if anyone wants to do this, so I can help get it working.

@Kaldarasha: Sorry, didn't see your message before. Will take a look.

39
It's not that bad an idea; in a sense, it's how Ultrasound and some other mods work (replace just this function - to change/add sound effects - leave the rest of the game intact).

Not sure I'd count on ever rewriting the whole thing that way, though.

40
General Discussion / Re: Japan holiday.
« on: 2015-10-08 12:16:49 »
Just got back from 2 weeks in Japan, so I have a few suggestions ;) Even if OP is going to LA instead, for anyone else who wants suggestions for Japan:

Tokyo:  http://www.ninjaakasaka.com/top_main.html   - Not cheap, but the food is brilliant. Also, ninja.

Stay in a traditional ryokan for a night. We stayed in Ryokan Izuyasu which also had brilliant food.

Kyoto: http://www.samurai-kembu.jp/ 

We went to a sumo wrestling tournament, too - surprisingly good fun. (Probably helped that they had a good few girls with barrels strapped to their back wandering around to ensure a constant supply of beer...)

http://www.gnavi.co.jp/en/ is your friend for finding izakaya, which you want to do.

One tip I would give is always have more things lined up for a day, than you think will be needed. That way if you get somewhere and decide 'actually, this isn't as amazing as I thought', you've got an alternative place to go / things to do - rather than just being stuck somewhere with nothing interesting going on. Guess that applies outside of Japan, too ;)

41
Scripting and Reverse Engineering / Re: Hacking info
« on: 2015-06-18 17:29:18 »
Yeah, that's why I didn't want to search for the time value - I had a feeling it might still update, whereas the gil value was fixed (and if I needed to narrow the locations down further, it'd be pretty trivial earn or spend some to get a different value).

42
Scripting and Reverse Engineering / Hacking info
« on: 2015-06-18 06:52:51 »
Hey guys,

Thought it might be useful to document the process I've used to extract some info from the game, so I've set up a blog and posted how I tracked down the dialogue choices for Ultrasound.

Doubt it'll be comprehensible unless you've got a programming background already, but if you're already familiar with hex / pointers and just don't know where to start at hacking the game, it could be useful to get you going.

I intend to make more posts, not necessarily all FF7 related, but certainly some will be.

Cheers

43
But it will also dump information I dont need? I have no time to hunt down for information I do need.

OK, but Dbgview does have a filter, so if you set the filter to only display messages containing "not overridden", you'll only see output about sound effects that are being played and haven't been replaced by Ultrasound.

44
New version v0.2: http://www.ficedula.co.uk/Conformer/Conformer_0_2.zip

Main new feature is that there's effectively real time debugging of the scripts while FF7 is running.

To use this:

-Copy Conformer.debug.dll into your FF7\DLL_in folder (so, you need to be running the appropriate driver/setup for DLL_in to work!)
-Compile your AI script making sure "Compile in debug mode" is ticked
-Insert the AI script into the scene.bin using Proud Clod
-Run FF7
-Click the 'Debug' button, which will pop up the debugger interface for the current script;



Once the debugger is ready you can set a breakpoint by clicking in the left hand margin (see line 9 in the screenshot). When the AI script gets to that point, it'll pause. You can see the value of any variables in the right hand window, and step through the code using the debug menu (there are shortcuts for step / continue). The current line is highlighted with the shaded background.

Still kind of experimental, but it works on the test script, so it seems basically usable...

Note: Every time you compile a script, it gets a new unique ID and the debugger requires the IDs to match in order to debug it. So, once you've inserted a script into the scene.bin don't compile that script again as you'll then lose the ability to debug it. I'll be making this better in the next version.

45
Second: Is it possible to dump the current played sound with its ID? Ideally it will ignore sound which is already replaced by the tool. This way it's easier for me to find specific sounds.

If you run DbgView while the game is running (with Ultrasound), it logs sounds to the debug output along with a note saying whether the sound is being replaced by Ultrasound or not. You should see lines like:

Code: [Select]
Sound 0 0 102 64...not overridden, allowing default proc
The third number is the sound ID.

46
Victory; http://www.ficedula.co.uk/voices/Ultrasound_0_41.zip

Only change is that dialogue choices can be voiced now. The tags needed to trigger that in the files are:

Code: [Select]
  <Entry File="elm\103a.wav" ID="103" Part="a">“Then let me explain  how to use the world map.”</Entry>
  <Entry File="elm\103b.wav" ID="103" Part="b">“Well then,what do you want to know?” Changing camera angles Map indicators Operating the buttons</Entry>
  <Entry File="elm\103b_0.wav" ID="103" Part="b" Choice="0"></Entry>
  <Entry File="elm\103b_1.wav" ID="103" Part="b" Choice="1"></Entry>
  <Entry File="elm\103b_2.wav" ID="103" Part="b" Choice="2"></Entry>

Note the first two tags are for 'regular' dialogue; the last three are for the 3 options that are displayed as part of dialogue 103b.

When the prompt is first brought up, whichever option is initially selected will be played after the current 'regular' dialogue has finished speaking. Moving to another option will voice that choice (cancelling any existing choice file that's playing). Selecting an option doesn't automatically silence the choice, but any other dialogue being played will replace the choice (so in practice, selecting a choice usually will silence it since you almost always move onto another dialogue box!)

47
Hm, interesting. I'll try and implement that and see if it works.

48
New version: http://www.ficedula.co.uk/voices/Ultrasound_0_40.zip

Changes:
-Use OpenAL output & buffer cache to try and reduce latency
-Support OGG files
-Support selecting voice files based on party members

For the last feature, it lets you change which audio file is played depending on whether a particular character is in the party or not.

The way to set that up in the XML is like this:

Code: [Select]
  <Entry File="elm\tifa1.wav" ID="119" Part="a" Char1="2">...</Entry>
  <Entry File="elm\tifa2.wav" ID="119" Part="a" Char2="2">...</Entry>
  <Entry File="elm\tifa3.wav" ID="119" Part="a" Char3="2">...</Entry>
  <Entry File="elm\vincent.ogg" ID="119" Part="a" CharAny="7">...</Entry>

What says is that when dialogue 119a is played:
-If the character in position 1 in the party is Tifa, play tifa1.wav
-If the character in position 2 in the party is Tifa, play tifa2.wav
-If the character in position 3 in the party is Tifa, play tifa3.wav
-If Vincent is anywhere in the party, play vincent.ogg

(In the game, Tifa uses character ID 2, and Vincent is ID 7. The IDs are the same as in the savegames, see http://wiki.qhimm.com/view/FF7/Savemap)

That means you can cope with dialogue that includes the {PARTYx} tags by recording multiple versions and having the correct version play back.

Shard - can't remember if we ever discussed this, but how do you want to handle choices? Although Ultrasound doesn't currently support it, it would be possible to work out which option was selected, and play an audio file based on that. The only issue is that of course once the player hits Enter to confirm which option they want, the game (usually!) goes straight onto the next piece of dialog, so you'd have the audio playing 'behind' what was on the screen.

Options I can think of:
-We don't care, we aren't going to voice choices
-Voice the option and just delay any audio for the following window until the option audio is done playing
-...any other suggestions...?

49
Random thought: of the built in formula, X5 is pretty simple [base of Damage = (Actor's (M)Attack + Actor's Level) * 6 + (Attack's Power * 22) - which doesn't take many things into account].

It's possible in theory to change the actor's attack and level from an AI script, so you could set your attacks to always use formula 5 with some standard attack power, and then from within the AI script, alter the enemy's Attack value to whatever you wanted to effectively implement your own formula without having to alter the exe. Want to do different damage when the player is level 50+? Check for that in your AI script and increase the enemy attack accordingly.

For that matter, you could also alter the enemy's defence values in their setup scripts based on player level if you wanted to tune how easy they are to harm.

(Plug: that's something I'd like to build support for into Conformer to make it easier to do.... ;)

Of course this is all based on the enemy's AI. I'm not familiar with how much of this, if any, you can do from the player's side of things.

50
Interesting, but not really useful for me since I'm not intending to disassemble any of the existing AI (most of it is so simple there's no point).

Pages: 1 [2] 3 4 5 6 7 ... 58